Patentable/Patents/US-10540165
US-10540165

Virtualized file server rolling upgrade

PublishedJanuary 21, 2020
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

In one embodiment, a system for managing a virtualization environment includes a set of host machines, each of which includes a hypervisor, virtual machines, and a virtual machine controller, one or more virtual disks comprising a plurality of storage devices and accessible by the virtual machine controllers, and a deployment system configured to receive a request to upgrade a virtualized file server on a plurality of host machines from a first program code version to a second program code version, and, for each host machine, request an upgrade token. When the host machine acquires the upgrade token, the deployment system is configured to generate a snapshot of a code image associated with the second program code version, and provide the snapshot to the host machine via the virtual disk. The virtual machine controller located on the host machine stores the snapshot on a storage device associated with the host machine.

Patent Claims
14 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A system comprising: a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines; a deployment server configured to upgrade the VFS from a first code version to a second code version by performing actions comprising: generating a snapshot of a code image associated with the second program code version; providing the snapshot to a selected user VM of the one or more user VMs when the selected user VM has acquired an upgrade token, the upgrade token configured for association with a single one of the user VMs at a time; detaching an existing code image from the selected user VM, wherein the selected user VM is located on a host machine; attaching the snapshot to the selected user VM; and causing the selected user VM to boot from the snapshot.

Plain English Translation

This invention relates to upgrading a virtualized file server (VFS) in a distributed computing environment. The problem addressed is minimizing downtime and ensuring seamless upgrades for a VFS that provides file services to multiple virtual machines (VMs) across one or more host machines. The system includes a VFS with multiple user VMs and a deployment server responsible for upgrading the VFS from one code version to another. The deployment server generates a snapshot of the new code version and selectively provides it to a user VM that has acquired an upgrade token, which ensures only one VM receives the upgrade at a time. The deployment server detaches the existing code image from the selected VM, attaches the snapshot, and boots the VM from the snapshot. This staggered approach allows the VFS to remain operational during the upgrade process, as only one VM is upgraded at a time, reducing disruption to file services. The system ensures compatibility and continuity by using snapshots and controlled token-based upgrades, preventing conflicts and maintaining service availability.

Claim 2

Original Legal Text

2. The system of claim 1 , wherein when the snapshot has been attached to the selected user VM, the deployment server is further configured to release the upgrade token acquired by the selected user VM.

Plain English Translation

A system for managing virtual machine (VM) upgrades in a cloud computing environment addresses the challenge of ensuring seamless and secure VM upgrades without disrupting user operations. The system includes a deployment server that coordinates the upgrade process, a snapshot manager that creates and attaches snapshots of VMs, and a token manager that controls access to upgrade resources. When a user VM is selected for an upgrade, the deployment server acquires an upgrade token to reserve resources for the upgrade. The snapshot manager creates a snapshot of the selected VM, which is then attached to the VM to facilitate the upgrade process. Once the snapshot is successfully attached, the deployment server releases the upgrade token, making it available for other VMs. This ensures efficient resource utilization and prevents conflicts during concurrent upgrades. The system also includes a monitoring module to track the status of upgrades and a rollback mechanism to revert changes if an upgrade fails. The overall solution enhances the reliability and efficiency of VM upgrades in cloud environments by automating the process and managing resource allocation dynamically.

Claim 3

Original Legal Text

3. The system of claim 1 , wherein the snapshot comprises metadata identifying one or more locations of blocks of the code image on a first storage device associated with the host machine.

Plain English Translation

A system for managing code images in a computing environment addresses the challenge of efficiently tracking and restoring code execution states. The system captures snapshots of code images, which are executable programs or software components, to enable quick recovery or analysis. These snapshots include metadata that identifies the storage locations of the code image blocks on a first storage device connected to the host machine running the code. This metadata allows the system to precisely locate and retrieve the necessary blocks during restoration or debugging, improving efficiency and accuracy. The system may also support additional features such as versioning, compression, or encryption of the snapshots to enhance security and storage optimization. By maintaining detailed metadata about the code image's storage layout, the system ensures reliable and fast access to the code blocks, reducing downtime and improving system resilience. This approach is particularly useful in environments where rapid recovery or forensic analysis of code execution is critical.

Claim 4

Original Legal Text

4. The system of claim 1 , wherein the snapshot comprises metadata identifying a location of at least one block of the a code image on a second storage device associated with a server host machine.

Plain English Translation

This invention relates to a system for managing code images in a computing environment, particularly focusing on efficient storage and retrieval of code snapshots. The system addresses the challenge of tracking and accessing code blocks across distributed storage devices, ensuring consistency and reducing redundancy. The core system includes a snapshot mechanism that captures a point-in-time representation of a code image, which is a collection of executable instructions or data used by a computing system. The snapshot is stored on a primary storage device associated with a client machine, while the system also manages the distribution of code blocks across secondary storage devices linked to server host machines. The snapshot includes metadata that identifies the storage location of at least one block of the code image on these secondary storage devices. This metadata enables the system to efficiently locate and retrieve code blocks from the appropriate storage devices, optimizing performance and minimizing storage overhead. The system ensures that the snapshot remains synchronized with the distributed code blocks, allowing for accurate and reliable code execution. By leveraging metadata to track block locations, the system enhances scalability and simplifies the management of code images in distributed computing environments.

Claim 5

Original Legal Text

5. One or more computer-readable non-transitory storage media, the media encoded with instructions for performing operations comprising: receiving a request to upgrade a virtualized file server, the virtualized file server comprising a plurality of user virtual machines (VMs) configured to provide file services to additional virtual machines hosted by one or more host machines, from a first program code version to a second program code version; generating a snapshot of a code image associated with the second program code version; providing the snapshot to a selected user VM of the multiple user VMs when the selected user VM has acquired an upgrade token, the upgrade token configuration for association with a single one of the user VMs at a time; detaching an existing code image from the selected user VM, wherein the user VM is located on a host machine; attaching the snapshot to the selected user VM; and causing the selected user VM to boot from the snapshot.

Plain English Translation

This invention relates to upgrading virtualized file servers in a distributed computing environment. The problem addressed is the need to upgrade file server software across multiple user virtual machines (VMs) while minimizing downtime and ensuring consistency. The solution involves a controlled, sequential upgrade process that uses snapshots of the new program code version to replace existing code images on individual user VMs. The system receives a request to upgrade a virtualized file server from an older to a newer program code version. The file server comprises multiple user VMs that provide file services to other VMs hosted by one or more host machines. A snapshot of the new code image is generated and stored. When a user VM acquires an upgrade token—a mechanism that ensures only one VM is upgraded at a time—the system provides the snapshot to that VM. The existing code image is detached from the VM, the snapshot is attached, and the VM is rebooted from the snapshot. This process repeats for each user VM until all have been upgraded. The token-based approach prevents conflicts and ensures a smooth transition. The method reduces downtime by upgrading VMs individually rather than the entire system at once.

Claim 6

Original Legal Text

6. The media of claim 5 , wherein the operations further comprise, when the snapshot has been attached to the user VM on the host machine, releasing the upgrade token acquired by the selected user VM.

Plain English Translation

A system and method for managing virtual machine (VM) upgrades in a cloud computing environment. The technology addresses the challenge of performing non-disruptive upgrades of virtual machines while ensuring data consistency and minimizing downtime. The system involves acquiring an upgrade token by a selected user VM to prevent concurrent upgrades, creating a snapshot of the VM's state, and attaching the snapshot to the user VM on the host machine. Once the snapshot is successfully attached, the upgrade token is released, allowing other VMs to proceed with upgrades. This ensures that only one VM undergoes an upgrade at a time, preventing conflicts and maintaining system stability. The snapshot mechanism preserves the VM's state before the upgrade, enabling rollback if necessary. The system is designed to work within a host machine environment where multiple VMs may require upgrades, ensuring orderly and conflict-free execution of upgrade processes. The method improves reliability and reduces the risk of data corruption during upgrades.

Claim 7

Original Legal Text

7. The media of claim 5 , wherein the snapshot comprises metadata identifying one or more locations of blocks of the code image on a first storage device associated with the host machine.

Plain English Translation

A system and method for managing code images in a computing environment involves capturing and storing snapshots of code images to facilitate debugging and analysis. The technology addresses the challenge of efficiently tracking and retrieving code states, particularly in distributed or virtualized systems where code execution may be dynamic or transient. The system captures snapshots of code images, which include executable code and associated data, and stores these snapshots in a storage system. The snapshots are used to reconstruct or analyze the state of the code at a specific point in time, aiding in debugging, forensics, or performance optimization. The snapshot includes metadata that identifies the locations of blocks of the code image on a first storage device associated with the host machine. This metadata allows the system to precisely locate and retrieve the relevant portions of the code image from storage, ensuring accurate reconstruction or analysis. The metadata may include block addresses, offsets, or other identifiers that map to the physical or logical storage locations of the code blocks. This feature enables efficient retrieval and reduces the overhead of scanning or searching for the code blocks during analysis. The system may also support multiple storage devices or distributed storage, allowing snapshots to be stored across different storage systems for redundancy or performance optimization. The metadata ensures that the system can correctly identify and access the code blocks regardless of their storage location. This approach enhances the reliability and usability of the snapshots for debugging and analysis purposes.

Claim 8

Original Legal Text

8. The media of claim 5 , wherein the snapshot comprises metadata identifying a location of at least one block of a code image on a second storage device associated with a server host machine.

Plain English Translation

This invention relates to a system for managing code images in a computing environment, particularly for tracking and retrieving code snapshots stored across multiple storage devices. The problem addressed is the difficulty in efficiently locating and accessing specific blocks of code images stored on distributed storage systems, which can hinder debugging, version control, and system recovery processes. The system involves storing a snapshot of a code image, where the snapshot includes metadata that identifies the storage location of at least one block of the code image on a second storage device associated with a server host machine. This metadata allows the system to quickly retrieve the relevant code blocks from the distributed storage, improving access efficiency and reducing latency. The snapshot may also include additional metadata, such as timestamps or version identifiers, to further aid in tracking and managing the code image. The invention ensures that code images can be accurately and efficiently retrieved from distributed storage systems, supporting tasks such as debugging, system recovery, and version control. By maintaining metadata that maps code blocks to their storage locations, the system simplifies the process of locating and accessing the necessary code components, even when they are distributed across multiple storage devices. This approach enhances system reliability and performance in environments where code images are frequently updated or accessed.

Claim 9

Original Legal Text

9. A method comprising: receiving a request to upgrade a virtualized file server, the virtualized file server comprising a plurality of user virtual machines (VMs) configured to provide file services to additional virtual machines hosted by one or more host machines, from a first program code version to a second program code version; generating a snapshot of a code image associated with the second program code version; and providing the snapshot to a selected user VM of the plurality of user VMs when the selected user VM has acquired an upgrade token, the upgrade token configuration for association with a single one of the user VM at a time; detaching an existing code image from the selected user VM, wherein the selected user VM is located on a host machine; and attaching the snapshot to the selected user VM; and causing the selected user VM to boot from the snapshot.

Plain English Translation

This invention relates to upgrading virtualized file servers in a distributed computing environment. The problem addressed is the need to upgrade file server software across multiple virtual machines (VMs) without disrupting service availability. The solution involves a controlled, sequential upgrade process that minimizes downtime and ensures stability. The method begins by receiving a request to upgrade a virtualized file server from an older program code version to a newer one. The file server comprises multiple user VMs that provide file services to other VMs hosted on one or more physical machines. To facilitate the upgrade, a snapshot of the new code image is generated. This snapshot is then provided to a selected user VM only when it has acquired an upgrade token, which ensures that only one VM is upgraded at a time. Once the selected VM has the token, the existing code image is detached from it, and the snapshot of the new code image is attached. The VM is then instructed to boot from this snapshot, effectively upgrading its software. This process is repeated sequentially for each user VM, allowing the file server to remain operational during the upgrade. The token-based approach prevents conflicts and ensures a smooth transition to the new software version.

Claim 10

Original Legal Text

10. The method of claim 9 , further comprising: when the snapshot has been attached to the selected user VM on the host machine, releasing the upgrade token acquired by the selected user VM.

Plain English Translation

A method for managing virtual machine (VM) upgrades in a computing environment involves attaching a snapshot to a selected user VM on a host machine. The snapshot contains a pre-upgraded version of the VM, allowing the user VM to transition to the upgraded state. The method includes acquiring an upgrade token by the selected user VM to ensure exclusive access to the upgrade process. Once the snapshot is successfully attached to the user VM, the upgrade token is released, indicating that the upgrade process is complete and the token is available for other operations. This approach ensures that only one VM can perform the upgrade at a time, preventing conflicts and maintaining system stability during the upgrade process. The method may also involve verifying the snapshot's integrity before attachment and ensuring the user VM is in a compatible state for the upgrade. The release of the upgrade token allows the system to proceed with other tasks or upgrades for different VMs. This technique is particularly useful in cloud computing or virtualized environments where multiple VMs may require upgrades while maintaining system reliability and performance.

Claim 11

Original Legal Text

11. The method of claim 9 , wherein the snapshot comprises metadata identifying one or more locations of blocks of the code image on a first storage device associated with the host machine.

Plain English Translation

A method for managing code images in a computing system involves capturing and storing snapshots of code images to facilitate debugging and analysis. The method addresses the challenge of efficiently tracking and accessing code image data across different storage devices, particularly in distributed or virtualized environments where code execution may span multiple storage locations. The snapshot includes metadata that identifies the specific storage locations of individual blocks of the code image on a first storage device associated with the host machine. This metadata allows for precise reconstruction or analysis of the code image by mapping its components to their respective storage locations. The method ensures that the snapshot can be used to accurately reference the original code image blocks, even if they are distributed across different storage devices or if the storage configuration changes over time. By maintaining this metadata, the system enables efficient debugging, version control, and forensic analysis of code execution. The approach is particularly useful in environments where code images are dynamically loaded, modified, or migrated between storage devices, ensuring that the integrity and traceability of the code image are preserved.

Claim 12

Original Legal Text

12. The system method of claim 9 , wherein the snapshot comprises metadata identifying a location of at least one block of a code image on a second storage device associated with a server host machine.

Plain English Translation

Technical Summary: This invention relates to a system and method for managing code images in a computing environment, particularly focusing on snapshot functionality for efficient storage and retrieval. The system addresses the challenge of tracking and accessing code images across distributed storage devices, ensuring data integrity and reducing redundancy. The method involves creating a snapshot of a code image, where the snapshot includes metadata that identifies the physical or logical location of at least one block of the code image on a second storage device. This second storage device is associated with a server host machine, which may be part of a distributed or cloud-based computing infrastructure. The metadata allows the system to quickly locate and retrieve specific blocks of the code image without scanning the entire storage device, improving performance and reducing latency. The snapshot may also include additional metadata, such as timestamps, version information, or checksums, to ensure data consistency and enable version control. The system can use this metadata to verify the integrity of the code image and detect any corruption or unauthorized modifications. By storing the snapshot on a separate storage device, the system minimizes the risk of data loss due to hardware failures or other disruptions. This approach is particularly useful in environments where code images are frequently updated or deployed across multiple servers, as it allows for efficient rollback, replication, and disaster recovery. The system can also optimize storage usage by deduplicating common blocks across multiple snapshots, further reducing the overall storage footprint.

Claim 13

Original Legal Text

13. A system comprising: a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the VFS configured to provide file services to additional virtual machines hosted by one or more host machines; a deployment server configured to upgrade one or more user VMs of the VFS from a first code version to a second code version by performing actions comprising: generating a snapshot of a code image associated with the second program code version; providing the snapshot to a selected user VM of the one or more user VMs when the selected user VM has acquired an upgrade token, the upgrade token configured for association with a single one of the user VMs at a time, wherein during at least a portion of detaching an existing code image from the selected user VM located on a host machine and attaching the snapshot to the selected user VM, a storage device and IP address of the host machine are replaced by a storage device and IP address of another host machine.

Plain English Translation

A virtualized file server (VFS) system provides file services to multiple virtual machines (VMs) hosted across one or more host machines. The system includes a deployment server that upgrades user VMs within the VFS from an older code version to a newer one. The upgrade process involves generating a snapshot of the new code image and distributing it to selected user VMs. Each VM must acquire an upgrade token before receiving the snapshot, ensuring only one VM is upgraded at a time. During the upgrade, the selected VM detaches its existing code image and attaches the new snapshot. This process includes temporarily replacing the storage device and IP address of the original host machine with those of another host machine, ensuring seamless continuity of services. The system ensures minimal disruption by controlling the upgrade sequence and managing resource allocation dynamically. This approach improves scalability and reliability in virtualized environments by automating upgrades while maintaining service availability.

Claim 14

Original Legal Text

14. A method comprising: receiving a request to upgrade a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the VFS configured to provide file services to additional virtual machines hosted by one or more host machines, from a first program code version to a second program code version; generating a snapshot of a code image associated with the second program code version; and providing the snapshot to a selected user VM of the multiple user VMs when the selected user VM has acquired an upgrade token, the upgrade token configuration for association with a single one of the user VM at a time; wherein during at least a portion of detaching an existing code image and attaching the snapshot to the selected user VM on a host machine, a storage device and IP address of the host machine are replaced by a storage device and IP address of another host machine.

Plain English Translation

This invention relates to upgrading a virtualized file server (VFS) that provides file services to multiple virtual machines (VMs) hosted across one or more host machines. The problem addressed is minimizing downtime and ensuring seamless upgrades while maintaining service availability. The method involves receiving a request to upgrade the VFS from one program code version to another. A snapshot of the new code image is generated, and this snapshot is provided to a selected user VM when it acquires an upgrade token, which ensures only one VM is upgraded at a time. During the upgrade process, the selected VM detaches its existing code image and attaches the new snapshot. To maintain service continuity, the storage device and IP address of the host machine are temporarily replaced with those of another host machine during this transition. This approach allows for incremental upgrades without disrupting the entire system, ensuring high availability and reliability. The method is particularly useful in environments where uninterrupted file services are critical.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 1, 2017

Publication Date

January 21, 2020

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Virtualized file server rolling upgrade” (US-10540165). https://patentable.app/patents/US-10540165

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-10540165. See llms.txt for full attribution policy.

Virtualized file server rolling upgrade