Virtualized Block Storage Service Local Boot and Merging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge in providing virtualized block storage services in a provider substrate extension is the difficulty in initializing the block storage service from a boot volume when there are no operational block storage servers present, and the reliance on remote block storage servers introduces latency issues, making it inefficient for on-premises deployments.
Innovation Solution
The solution involves virtualizing the block storage service to run within a compute instance, allowing a single server to host both compute and block storage, and implementing local boot techniques to load a boot volume from data stored in the provider network, enabling the launch of instances even without a local block storage service, and decoupling failure domains from a per-server basis to improve resource utilization and redundancy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If block storage service is remote from compute instance, then service can be provided from provider network data centers, but latency increases and is not optimal for on-premises deployments
Solution Approach 1:
The patent merges the block storage service and compute instance into the same on-premises server environment. The block storage service runs as a virtual machine or container alongside the compute instance, eliminating remote access latency by providing local block storage capabilities within the customer's data center.
Solution Approach 2:
The patent transitions the block storage service from a remote cloud-based dimension to a local on-premises dimension. By deploying the service within the customer's infrastructure rather than accessing it over the network, the system changes the spatial dimension of service delivery to achieve lower latency.
2Productivity
If block storage service is virtualized to run within compute instance, then resource utilization improves and single server can host both services, but initialization becomes difficult when no operational block storage servers are present
Solution Approach 1:
The patent implements preliminary action by providing a boot volume that is pre-configured with the block storage service binary and initialization scripts. This allows the block storage service to be initialized automatically during the virtual machine boot process, even when no other block storage servers are present in the environment.
Solution Approach 2:
The block storage service is designed to be self-initializing through automated scripts that run during VM startup. The service automatically detects available storage devices, configures itself, and begins operation without requiring manual intervention or pre-existing block storage infrastructure.
3Reliability
If failure domains are decoupled from per-server basis, then resource utilization and redundancy improve, but system architecture becomes more complex
Solution Approach 1:
The patent segments the failure domain from the server level to the virtual machine or storage volume level. By virtualizing storage resources and allowing multiple virtual storage instances to share physical hardware, the system creates finer-grained failure domains that improve redundancy while managing complexity through virtualization abstractions.
Solution Approach 2:
The patent creates universal storage resources that can serve multiple compute instances simultaneously. The block storage service provides multi-functional capabilities, allowing a single physical storage system to support multiple virtual storage volumes and clients, thereby improving resource utilization and redundancy without proportionally increasing architecture complexity.
Data Source
AI summary
A first request to create a first storage volume to store a first portion of a first logical volume is received by a first block storage server instance. A second request to create a second storage volume to store a second portion of the first logical volume is received by a second block storage server instance. A third request is sent to a third block storage server instance to create a third storage volume to store the second portion of the first logical volume. The second portion of the first logical volume is stored by the third block storage server instance to the third storage volume. A data store containing an identification of each block storage server instance hosting a portion of the first logical volume is updated to remove an identification of the second block storage server instance and add an identification of the third block storage server instance.


