Patents Assigned to Parallels Holdings, Ltd.
  • Patent number: 7941510
    Abstract: A system, method and computer program product for providing centralized management of multiple Virtual Execution Environments (VEEs) implemented on multiple physical servers. Each VEE is a virtual server. Multiple virtual servers of various types and formats are implemented on multiple physical servers. The physical servers are connected into a network. An intuitive user interface of a central console for remote management and administration of a plurality of virtual servers and multiple physical servers is provided. The system includes server managers controlled from a common control center. The system also includes a database containing configuration data and data related to operation formats of the physical and virtual servers. The database is updated based on configuration parameters acquired from the physical and virtual servers. A server system can be a plurality of physical servers and VEEs implemented on them or it can be a plurality of VEEs executed on one physical server.
    Type: Grant
    Filed: June 2, 2008
    Date of Patent: May 10, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexander G. Tormasov, Oleg K. Shaikharatov
  • Patent number: 7941552
    Abstract: A system, method and computer program product for controlling virtual servers includes a plurality of virtual servers running on a host computer. An address and a unique identifier can be associated with each virtual server. A control procedure(s) is within each corresponding virtual server, and can be used to control that virtual server in response to control commands. A control interface is outside the virtual servers and can be used for control of the virtual servers in response to control commands. The virtual server can be a Virtual server. The control command can be executable by both the control procedure(s) and the control interface, or can be executable by the control interface if the control procedure(s) is unreachable, or can be executable by the control interface if the virtual server has failed, or can be executable even if the virtual server is inaccessible. The control interface can be accessible by using multiple addresses and identifiers.
    Type: Grant
    Filed: February 26, 2009
    Date of Patent: May 10, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Stanislav S. Protassov, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7930382
    Abstract: A system for distributed file storage includes a plurality of servers providing, to a plurality of clients, file access services for accessing files stored on the plurality of servers. A list of neighbor servers is maintained by each server. The neighbor servers are a subset of the plurality of servers. At least one server of the plurality of servers is switched into a neighbor group of servers based on network distance. Each file is stored in the form of a plurality of N pieces on N servers, the pieces being generated from the file. The list is used to obtain information for reconstructing files stored on the neighbor servers, such that any K out of the N pieces can be used to reconstruct any file.
    Type: Grant
    Filed: August 11, 2009
    Date of Patent: April 19, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexander Tormasov, Yury Pudgorodsky, Serguei Beloussov, Stanislav Protassov
  • Patent number: 7925818
    Abstract: A system, method and computer program product for virtualizing a processor and its memory, including a host operating system (OS); and virtualization software that maintains a virtualization environment for running a Virtual Machine (VM) without system level privileges and having a guest operating system running within the Virtual Machine. A plurality of processes are running within the host OS, each process having its own virtual memory, wherein the virtualization software is one of the processes. An image file is stored in persistent storage and maintained by the host operating system. The image file represents virtualized physical memory of the VM. A plurality of memory pages are aggregated into blocks, the blocks being stored in the image file and addressable in block form. The virtualization software manages the blocks so that blocks can be mapped to the virtualization software process virtual memory and released when the blocks are no longer necessary.
    Type: Grant
    Filed: February 2, 2010
    Date of Patent: April 12, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexey B. Koryakin, Anna L. Vorobyova, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7904901
    Abstract: A method of controlling operation of an installed component includes the steps of generating auxiliary information relating to the installed component in user space; launching a control program in operating system space for controlling operation of the installed component; and controlling, from the operating system space, the operation of the installed component using the auxiliary information. The installed component can be an operating system component running in a Virtual Private Server, or a component of third party software. The auxiliary information can be, e.g., time stamps, CRC, access control information, function names, function address offsets and function parameter passing information derived from the debug file. The controlling step can monitor behavior of the installed component. The auxiliary information can be generated based on a debug file, which can be a pdb file.
    Type: Grant
    Filed: November 2, 2005
    Date of Patent: March 8, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexander G. Tormasov, Stanislav S. Protassov, Serguei M. Beloussov
  • Patent number: 7890605
    Abstract: A system, method and computer program product for managing Virtual Private Servers, including launching a plurality of active Virtual Private Servers (VPSs) in user space of a computing system; generating a plurality of inactive VPSs, wherein data related to the inactive VPS comprises a set of files and links stored in a dedicated container; upon request from a user for a VPS, activating one of the inactive VPSs using the dedicated container using data related to the inactive VPS that comprises a set of files and links stored in a dedicated container; and configuring the activated VPS based on user parameters. The configuring step can include configuring any of URL names, IP addresses, passwords, resource allocations, DNS names, hostnames, VPS administrative functions, and VPS user password. The generating step optionally runs as a background process, or at a time of low system load.
    Type: Grant
    Filed: November 2, 2005
    Date of Patent: February 15, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Stanislav S. Protassov, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7886016
    Abstract: The present invention provides a highly scalable system for fault tolerant distributed data file storage over a set of functionally equal network servers linked through a local network with network servers and client computers. Data files are represented as a set of transactional records, each record is disassembled into redundant, functionally identical data pieces with original file reassembly dependent only upon the number of data file pieces and not on the presence or absence of any particular data file piece. Local algorithms generate unique data file identifiers upon file creation and disassembly. Changes to the data file storage system are ranked by creation time and stored as separate records with unique transaction identifiers in addition to unique data file identifiers. A transactional data file record is stored by disassembling the transactional file into pieces placed at the network servers. Low-level transactional files are collected to reassemble the data file contents.
    Type: Grant
    Filed: November 13, 2002
    Date of Patent: February 8, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventor: Alexander Tormasov
  • Patent number: 7877411
    Abstract: A method and system for managing files in a server environment includes launching a plurality of Virtual Private Servers (VPSs) in a computing system; copying a content of a file of a VPS to a shared space; providing access to the file copy in the shared space when the VPS attempts to access the file; detecting files with the same content in other VPSs; and providing access to the file copy in the shared space from the other VPSs when they attempt to access their files with the identical content.
    Type: Grant
    Filed: August 18, 2009
    Date of Patent: January 25, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Stanislav S. Protassov, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7865893
    Abstract: A computer system includes a Hypervisor having the highest privilege level; a Primary Virtual Machine Monitor (VMM) running with the same or fewer privileges than the Hypervisor; and a Primary Virtual Machine (PVM) without system level privileges and having a Primary operating system (POS) running within it. The POS can be the same operating system that ran on the computer system prior to activation of the Hypervisor. The POS can have hardware drivers used by other components for accessing hardware through the POS. The Hypervisor can have hardware drivers used by other components for accessing hardware through the Hypervisor. Alternatively, the POS can have some hardware drivers used by other components for accessing hardware, and the Hypervisor can have other hardware drivers used by the other components for accessing other hardware through the Hypervisor. The POS can have direct access to at least some real hardware devices.
    Type: Grant
    Filed: February 7, 2006
    Date of Patent: January 4, 2011
    Assignee: Parallels Holdings, Ltd.
    Inventors: Andrey A. Omelyanchuk, Nikolay N. Dobrovolskiy, Alexey B. Koryakin, Alexander G. Tormasov, Stanislav S. Protassov, Serguei M. Beloussov
  • Patent number: 7856542
    Abstract: A system, method and computer program product for virtualizing a processor include a virtualization system running on a computer system and controlling memory paging through hardware support for maintaining real paging structures. A Virtual Machine (VM) is running guest code and has at least one set of guest paging structures that correspond to guest physical pages in guest virtualized linear address space. At least some of the guest paging structures are mapped to the real paging structures. For each guest physical page that is mapped to the real paging structures, paging means for handling a connection structure between the guest physical page and a real physical address of the guest physical page. A cache of connection structures represents cached paths to the real paging structures. Each path is described by guest paging structure descriptors and by tie descriptors. Each path includes a plurality of nodes connected by the tie descriptors.
    Type: Grant
    Filed: September 15, 2009
    Date of Patent: December 21, 2010
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexey B. Koryakin, Mikhail A. Ershov, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7856547
    Abstract: A method and system for handling of potential unsafe instructions and/or for handling transfers of control in a Virtual Machine, that includes generating a frame composed of pages of analyzed code based on original guest code; identifying instructions within the frame that transfer control (or are otherwise unsafe); replacing instructions that transfer the control with an interrupt that transfers control to a stub in non-privileged code; wherein the stub checks whether the control transfer (or instruction) is safe or unsafe, and (i) for unsafe control transfers/unsafe instructions, switches the context to Virtual Machine Monitor; and (ii) for safe control transfers, executes the control transfer in non-privileged mode. The instructions that transfer control can include any of JMP, CALL, RET and RET(n). The instructions that transfer control can also include interrupts.
    Type: Grant
    Filed: July 29, 2009
    Date of Patent: December 21, 2010
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexey B. Koryakin, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Maxim A. Kuzkin, Alexander G. Tormasov, Serguei M. Beloussov, Stanislav S. Protassov
  • Patent number: 7831643
    Abstract: A method of accessing a shareable computer file includes receiving a request to access the shareable computer file, retrieving a file ID from a stub file corresponding to the shareable computer file, retrieving a file name from a database corresponding to the file ID, accessing the shareable computer file if a user has not modified the shareable computer file, and accessing a modified copy of the shareable file stored in the stub file if the user has modified the shareable computer file. A database is generated in operating system space or accessed using the operating system, and includes file IDs and their corresponding file names for shareable computer files. The stub file is generated locally to correspond to the shareable computer file, and includes a modified copy of the shareable computer file if the shareable computer file has been modified, and a link to the shareable computer file if the shareable computer file has not been modified.
    Type: Grant
    Filed: March 7, 2010
    Date of Patent: November 9, 2010
    Assignee: Parallels Holdings, Ltd.
    Inventors: Serguei M. Beloussov, Stanislav S. Protassov, Alexander G. Tormasov
  • Patent number: 7823009
    Abstract: Data sets and blocks are stored in a set of independent, functionally equivalent chunks. These chunks are placed on different elements of a distributed network to achieve pre-defined level of fault tolerance. Terms of fault tolerance are defined in terms of amount of unavailable sites in the network allowing receipt and access to the data block. Maximal and minimal number of chunks available are variable method parameters. The minimal amount of data chunks K needed to restore a data block is defined. The size of each chunk is approximately 1/K of the original block size. The maximal amounts of chunks are defined during distribution operation and depend upon a requested fault tolerance level. Redundancy in data storage is minimized and varies dynamically by changing the total amount of chunks available. Significant increase in data transfer rate is possible because all block chunks could be transferred in parallel and independently.
    Type: Grant
    Filed: June 21, 2010
    Date of Patent: October 26, 2010
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexander G. Tormasov, Serguei M. Beloussov, Stanislav S. Protassov
  • Patent number: 7783665
    Abstract: A system, method and computer program product for sharing files among users of multiple Virtual Environments (VEs). Each VE user has private objects, such as files or directories, that contain links to selected shareable files or directories in a common memory storage area. Each VE user also has a private file area to store files. If a VE user wishes to access a shareable file to perform an action that does not modify the shareable file, then the VE user private file allows the VE user to access the sharable file in a common memory storage area. The VE user private file contains a metadata attribute specifying the link to the shareable file. If the VE user wishes to access a shareable file and perform an operation that modifies the shareable file, the system makes a copy of the shareable file and places the copy in the VE user's private file area.
    Type: Grant
    Filed: July 17, 2007
    Date of Patent: August 24, 2010
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexander G. Tormasov, Stanislav S. Protassov, Serguei M. Beloussov
  • Patent number: 7743275
    Abstract: Data sets and blocks are stored in a set of independent, functionally equivalent chunks. These chunks are placed on different elements of a distributed network to achieve pre-defined level of fault tolerance. Terms of fault tolerance are defined in terms of amount of unavailable sites in the network allowing receipt and access to the data block. Maximal and minimal number of chunks available are variable method parameters. The minimal amount of data chunks K needed to restore a data block is defined. The size of each chunk is approximately 1/K of the original block size. The maximal amounts of chunks are defined during distribution operation and depend upon a requested fault tolerance level. Redundancy in data storage is minimized and varies dynamically by changing the total amount of chunks available. Significant increase in data transfer rate is possible because all block chunks could be transferred in parallel and independently.
    Type: Grant
    Filed: August 12, 2008
    Date of Patent: June 22, 2010
    Assignee: Parallels Holdings, Ltd.
    Inventors: Alexander G. Tormasov, Vitali A. Obernikhin
  • Patent number: 7613793
    Abstract: A method and system for providing a Web service by a plurality of Web domains hosted by a computer, through a single IP address, is disclosed. A server having a unique domain name and the same IP address is allocated for each of the domains, while a software module intermediates between a client of the service and each of the servers. Upon receiving a request for connecting the client to one of the servers in order to provide the service, the target domain name of the request is identified by interacting between the client and the software module via standard communication protocol. The software module communicates with the server providing the service associated with the target domain name also by the standard protocol. A communication channel is then established between the server and the client, so that the server is allowed to provide the desired service to the client.
    Type: Grant
    Filed: February 23, 2004
    Date of Patent: November 3, 2009
    Assignee: Parallels Holdings, Ltd.
    Inventors: Gregory Bondar, Nir Baram