Swift云存储环境下基于I/O负载均衡的读取策略
2013-09-10孙雪涛
蒋 溢,孙雪涛,杨 川
(1.重庆邮电大学 计算机科学与技术学院,重庆400065;2.中国电信股份有限公司泸州分公司,四川 泸州646000)
0 引 言
云存储通过集群技术、网格技术或分布式文件系统等,将网络中不同类型的存储设备协同起来,共同对外提供数据存储和业务访问服务。云存储提出后,得到了众多厂商的支持和关注。Amazon推出了EC2[1](弹性计算云)云存储产品S3[2],旨在为用户提供互联网服务形式同时提供更强的存储和计算功能。随后微软也已经推出了提供网络移动 硬 盘 服 务 的 Windows Live SkyDrive[3]。Apache 根 据Google的 GFS[4]和 Bigtable[5]也 先 后 推 出 了 HDFS[6]和HBase[7],为云计算环境提供计算和存储的支持。
本文基于开源Openstack[8]的对象存储环境,首先分析了Openstack的Swift[9]对象存储架构,针对其对象存储没有元数据中心节点、系统数据读写通过哈希一致性算法[10]完成,并没有充分利用对象存储系统的备份机制来改善系统数据读取速度的现状,给出了一种能够均衡存储设备I/O负载的策略,并在文章最后给出了相关实验过程,实验结果验证了本文给出的策略的有效性。
1 Swift对象存储架构
1.1 swift简介
OpenStack Object Storage (Swift)是 OpenStack开 源云计算项目的子项目之一,被称为对象存储。Swift适用于永久类型的静态数据的长期存储,尤其适合存储虚拟机镜像、图片存储、邮件存储和存档备份等类型的数据。
1.2 Swift架构概述
Swift主要有4个组成部分:Proxy Server(代理服务)、Storage Server (存储服 务)、Consistency Server (一致性服务)、Ring(环状结构)文件,结构如图1所示。

图1 Swift组件结构
其中,Proxy Server是提供Swift API的服务器进程,负责Swift其余组件间的相互通信;Storage Server提供了磁盘设备上的存储服务;……
