私有云存储系统搭建与应用
上QQ阅读APP看书,第一时间看更新

1.3 心中的存储系统

在了解了存储系统的演变历程,感受了一波概念的冲击之后,我们不禁要问:什么样的存储系统才算好呢?

可能有些读者会说:对于存储服务,要求无非就是稳定、稳定再稳定。如何理解和细化所谓的稳定呢?本书以为,首先考虑的应该就是所谓的高可用性(HA)和可扩展性;其次,在性能满足的前提下,还隐含了一个低成本的要求;再次,作为一个软件定义存储,开源和标准接口(API)也是至关重要的。

1.高可用(HA)

通俗点讲,高可用性(High Availability,HA)就是说系统的停用时间短,可供使用的时间长。业界通常的做法,也是非常有效的做法,就是采用集群系统(Cluster),将各个主机系统通过网络或其他手段有机地组成一个群体,共同对外提供服务。

创建集群系统,通过高可用性的软件将高可用性的硬件结合起来,消除单点故障。例如:当一台主机出现故障时,服务出口将自动转移到其他正常使用的主机上,总体不会影响服务的对外提供。

2.可扩展

对于存储系统,可扩展性就是基于扩展系统的存储容量,即当系统的存储空间不够时,能够平滑地扩容。扩展通常包括两种:纵向扩展(Scale-up)和横向扩展(Scale-out)。

纵向扩展可以理解为节点能力的扩展,例如:存储不够时,添加一块硬盘;横向扩展就是集群中节点数量的扩展,例如:存储不够时,再添加一台主机。

图1-3所示是存储服务横向扩展示意。

图1-3 存储服务横向扩展示意

图1-3中,横向扩展方式非常适用于按“池”的方式来进行资源的统合管理。显而易见,考虑到设备硬件限制(例如扩展插槽和老化回收),横向扩展更加能够满足系统的扩展性。

3.低成本

通过图1-1和图1-2,不难看出,存储系统的成本主要体现在那些“高大上”的硬件设备上面。所以,如果存储系统能够支持通用的商用硬件,那么无疑会大大降低部署成本。

4.开源

当前很多互联网公司(例如亚马逊、阿里巴巴等)都提供了商业化的云存储服务,而要搭建企业自己的私有云,则需要走开源路线。OpenStack Swift项目正是一个成熟的开源项目,采用Apache 2.0许可协议,可用来开发商用系统。

5.对开发的支持

按照软件定义存储(SDS)的要求,目标系统应该提供标准接口(API)来管理和维护存储设备和服务。例如使用标准HTTP方法或特定语言的API等。

标准接口的好处显而易见:能够被开发者更好地使用,从而可以更好地引入到实际的项目中去。