IP Library Granted Patent US 11,385,981
Granted Patent B1
US 11,385,981 · App. 16/234,940 · Granted Jul 12, 2022

System and method for deploying servers in a distributed storage to improve fault tolerance

Inventors: Denis Silakov (Moscow, RU); Pavel Emelyanov (Moscow, RU); Alexey Kobets (Seattle, WA)
Assignee: Virtuozzo International GmbH
G06F11/2094G06F9/4408G06F9/4411G06F13/1668G06F13/4221H04L67/1097G06F8/61G06F2201/815G06F2213/0036
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,385,981
App. No.
16/234,940
Granted
Jul 12, 2022
Kind
B1
Abstract

Disclosed herein are systems and method for deploying servers in a distributed storage to improve fault tolerance. In one aspect, an exemplary method comprises, on a hardware server, installing an OS on a virtual disk, putting the virtual disk on the distributed storage, configuring the hardware server so that at least two physical block devices of the hardware server are bootable by putting, on each physical block device of the at least two physical block devices, a boot component, and configuring the boot component on any one physical block device of the at least two physical block devices, the configuration of the boot component including enabling the boot component to perform at least one of: mounting the virtual disk as a root file system of the OS, and booting the OS from the mounted virtual disk during a booting of the hardware server.

Claims (35)

1. A method for deploying servers in a distributed storage to improve fault tolerance, comprising:

on a hardware server belonging to the distributed storage, installing an OS on a virtual disk, wherein a virtual disk is represented by a file;

putting the file representing the virtual disk on which the OS is installed on the distributed storage;

configuring the hardware server belonging to the distributed storage so that at least two or more physical block devices of the hardware server are bootable by putting, on each physical block device of the two or more of the physical block devices, a boot component, and storing at least one replica of the file representing the virtual disk on which the OS is installed on the hardware server, wherein the OS handles at least tasks for synchronizing replicas of the file representing the virtual disk on which the OS is installed; and

configuring the boot component on any one physical block device of the two or more of the physical block devices, the configuration of the boot component including enabling the boot component to perform at least accessing the distributed storage, retrieving the file representing the virtual disk on which the OS is installed from the distributed storage, mounting the virtual disk on which the OS is installed as a root file system of the OS and booting the OS from the mounted virtual disk during a booting of the hardware server.

2. The method of claim 1 , wherein the virtual disk of the OS installed on the hardware server is stored on the distributed storage.

3. The method of claim 1 , wherein the OS is configured to perform at least one of: serving requests sent to the distributed storage, and running storage services including one of: metadata services, chunk services, data replication services and backup services.

4. The method of claim 1 , wherein the OS, as a part of the distributed storage, handles further tasks associated with the virtual disk on which the OS is installed.

5. The method of claim 1 , wherein the boot component accesses the virtual disk on the distributed storage using an Internet Small Computer Systems Interface (iSCSI) storage networking standard.

6. The method of claim 1 , wherein the boot component comprises an OS kernel.

7. The method of claim 6 , wherein the boot component further comprises an OS loader and an initial root file system bound to the OS kernel.

8. The method of claim 6 , wherein the OS kernel comprises a file containing a code, and the code while running, runs in a processor privileged mode.

9. The method of claim 1 , wherein the virtual disk is a loop back block device or a raw disk image.

10. The method of claim 1 , wherein the hardware server that belongs to the distributed storage contains at least two physical block devices, and each physical block device of the at least two block devices contains a first part for storing the boot component and a second part for storing data in accordance to operations of the distributed storage.

11. The method of claim 1 , wherein the configuring of the boot component further includes enabling the boot component to perform at least one of: initializing hardware needed to start the OS, loading drivers needed to connect to the distributed storage and to work with the virtual disk, loading an image of the virtual disk of the OS from the distributed storage onto a Random Access Memory (RAM) or to a partition on any number of physical block devices, delegating control to the OS initialization process in a mounted image file.

12. A system for deploying servers in a distributed storage to improve fault tolerance, the system comprising an installer implemented in a computing device comprising a processor, and any number of servers of the distributed storage, each server including at least one physical block device, the processor configured to:

on a hardware server belonging to the distributed storage, install an OS on a virtual disk, wherein a virtual disk is represented by a file;

put the file representing the virtual disk on which the OS is installed on the distributed storage;

configure the hardware server belonging to the distributed storage so that two or more of the physical block devices of the hardware server are bootable by putting, on each physical block device of the two or more of the physical block devices, a boot component, and store at least one replica of the file representing the virtual disk on which the OS is installed on the hardware server, wherein the OS handles at least tasks for synchronizing replicas of the file representing the virtual disk on which the OS is installed; and

configure the boot component on any one physical block device of the two or more of the physical block devices, the configuration of the boot component including enabling the boot component to perform at least accessing the distributed storage, retrieving the file representing the virtual disk on which the OS is installed from the distributed storage, mounting the virtual disk on which the OS is installed as a root file system of the OS, and booting the OS from the mounted virtual disk during a booting of the hardware server.

13. The system of claim 12 , wherein the virtual disk of the OS installed on the hardware server is stored on the distributed storage.

14. The system of claim 12 , wherein the OS is configured to perform at least one of: serving requests sent to the distributed storage, and running storage services including one of: metadata services, chunk services, data replication services and backup services.

15. The system of claim 12 , wherein the OS, as a part of the distributed storage, handles further tasks associated with the virtual disk on which the OS is installed.

16. The system of claim 12 , wherein the boot component accesses the virtual disk on the distributed storage using an Internet Small Computer Systems Interface (iSCSI) storage networking standard.

17. The system of claim 12 , wherein the boot component comprises an OS kernel.

18. The system of claim 17 , wherein the boot component further comprises an OS loader and an initial root file system bound to the OS kernel.

19. The system of claim 17 , wherein the OS kernel comprises a file containing a code, and the code while running, runs in a processor privileged mode.

20. The system of claim 12 , wherein the virtual disk is a loop back block device or a raw disk image.

21. The system of claim 12 , wherein the hardware server that belongs to the distributed storage contains a at least two physical block devices, and each physical block device of the at least two block devices contains a first part for storing the boot component and a second part for storing data in accordance to operations of the distributed storage.

22. The system of claim 12 , wherein the configuring of the boot component further includes enabling the boot component to perform at least one of: initializing hardware needed to start the OS, loading drivers needed to connect to the distributed storage and to work with the virtual disk, loading an image of the virtual disk of the OS from the distributed storage onto a Random Access Memory (RAM) or to a partition on any number of physical block devices, delegating control to the OS initialization process in a mounted image file.

23. A non-transitory computer readable medium storing thereon computer executable instructions for deploying servers in a distributed storage to improve fault tolerance, including instructions for:

on a hardware server belonging to the distributed storage, installing an OS on a virtual disk, wherein a virtual disk is represented by a file;

putting the file representing the virtual disk on which the OS is installed on the distributed storage;

configuring the hardware server belonging to the distributed storage so that two or more of the physical block devices of the hardware server are bootable by putting, on each physical block device of the two or more of the physical block devices, a boot component, and storing at least one replica of the file representing the virtual disk on which the OS is installed on the hardware server, wherein the OS handles at least tasks for synchronizing replicas of the file representing the virtual disk on which the OS is installed; and

configuring the boot component on any one physical block device of the two or more of the physical block devices, the configuration of the boot component including enabling the boot component to perform at least accessing the distributed storage, retrieving the file representing the virtual disk on which the OS is installed from the distributed storage, mounting the virtual disk on which the OS is installed as a root file system of the OS, and booting the OS from the mounted virtual disk during a booting of the hardware server.

Assignments (7)
SECURITY INTEREST IN TRADEMARK, PATENT, AND COPYRIGHT RIGHTS Recorded Dec 22, 2022
From: VIRTUOZZO INTERNATIONAL GMBH; ONAPP LIMITED
To: WILMINGTON TRUST (LONDON) LIMITED
Reel/Frame 062206/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2022
From: SILAKOV, DENIS; EMELYANOV, PAVEL
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 062102/0967 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE ADDRESS PREVIOUSLY RECORDED AT REEL: 057102 FRAME: 0987. ASSIGNOR(S) HEREBY CONFIRMS THE EMPLOYMENT AGREEMENT . Recorded Dec 15, 2022
From: PARALLELS INC.
To: VIRTUOZZO INC
Reel/Frame 062133/0823 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2022
From: VIRTUOZZO INC
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 062100/0322 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE ADDRESS PREVIOUSLY RECORDED AT REEL: 057050 FRAME: 0538. ASSIGNOR(S) HEREBY CONFIRMS THE EMPLOYMENT AGREEMENT . Recorded Dec 15, 2022
From: KOBETS, ALEXEY
To: PARALLELS INC.
Reel/Frame 062133/0898 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2021
From: PARALLELS INC.
To: VIRTUOZZO INC
Reel/Frame 057102/0987 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2021
From: KOBETS, ALEXEY
To: PARALLELS INC.
Reel/Frame 057050/0538 →
Cited By (2)
US 12,699,671 US 12,705,085