| Cloud block storage serves as the fundamental infrastructure of modern cloud computing services,providing virtual disks for cloud computing instances.Large-scale cloud block storage usually adopts a layered architecture,including a client layer,a forwarding layer,and a storage layer to handle heterogeneous disk devices and reduce development costs.In particular,the forwarding layer is based on a unified distributed storage engine,and provides cloud disk abstraction for the application layer.However,as all I/O traffics go through the servers in the forwarding layer,there may be severe traffic imbalance between the servers in the forwarding layer,and finally degrades the performance of cloud disks.The existing load balancing algorithms are mainly designed for cloud computing tasks,whose characteristics are quite different from those of virtual cloud disks,making it difficult to apply directly.Besides,the forwarding layer needs to manage the index mapping from logical to physical addresses of the virtual cloud disk,but the current index structure,which is optimized for write operations only,is not friendly for reading and needs to be optimized.In this paper,we focus on three problems in large-scale block storage systems:trace analysis,traffic balancing,and optimization for searching indexes.The main research contents and contributions are as follows:(1)Traffic analysis of a large-scale block storage systemCloud Block storage is a common cloud storage service.However,the traffic characteristics of the various components of the system have not been analyzed in detail in the academia and industry.Academia and industry are more focused on the CPU and memory characteristics of compute clusters,but less on the traffic characteristics of storage clusters.To investigate the traffic imbalance problem in the forwarding layer,we first conduct an in-depth analysis on the workload traces of a large-scale cloud block storage system in production,so as to understand the traffic characteristics of cloud block storage.We find that both the traffics of individual cloud disks and the aggregated traffics of cloud disks at forwarding layer servers are highly skewed and fluctuate violently and frequently at a fine-grained time granularity.It thus causes severe traffic imbalance and in turn increases system latency and reduces system resource utilization.(2)Traffic balancing algorithm for large-scale block storage systemAlthough the three-layer structure of cloud block storage system can improve resource utilization,the forwarding layer tends to be the traffic bottleneck of the system,since all I/O traffics must go through these servers in the forwarding layer.Traditional load balancing algorithms are mainly focused on cloud computing tasks,whose characteristics are quite different from those of virtual cloud disks.The long persistence of virtual cloud disks makes the migration algorithm focus on secondary migration,which makes it difficult to apply traditional task scheduling algorithms to cloud disk migration.To address the traffic imbalance issue,we then develop an efficient migration algorithm,weighted partial migration(WPM),and conduct simulation analysis via trace replay to study its effectiveness.Experiments under real-world workloads show that,for 84.3%storage clusters,WPM can make the imbalance factor of write traffic between forwarding layer servers smaller than 3(i.e.,the maximum traffic at a proxy server is within 3×of the median traffic),with a very small migration cost by migrating only smaller than 0.1%metadata.(3)Read index performance optimization for block storage systemTo optimize the dominant write traffic,block storage systems use an write-friendly LSM-Tree structure to manage the mapping from the logical address to the physical address of virtual disks.However,this append-only structure may lead to multiple accesses to the index while reading blocks,and thus increase the read latency.However,this append-only write structure is optimized for writes only and lacks optimization for read processes.Considering that the LSM-Tree structure of a block storage system differs from that of a general key-value storage system,the effectiveness of optimization means for LSM-Tree on a block storage system is still unclear.Therefore,we optimize the read process by learned index based on the Greedy-PLR algorithm,and perform a theoretical and an experimental analysis of its effectiveness.The theoretical analysis shows that the learned index based on Greedy-PLR achieves better results when the input data size is equal to or slightly larger than an integer power of 2.The experimental analysis shows that the learned index based on Greedy-PLR can improve the lookup speed by 14%to 23%while occupying only up to 3.8%of the index size. |