挣扎在架构漩涡中的数据中心存储存储与灾备
最近似乎来到了数据中心安全事故频发期,从支付宝、携程,到Amazon香港,数据中心安全性再度引起业内的关注。5个9,还是6个9,可靠性的话题重提,什么样的可靠性才能够满足需求呢?
在我看来,不能因为支付宝、携程事件就因此否定互联网所采用的分布式系统架构,这应该个别企业的容灾策略和运维管理问题,而非技术问题,让技术架构背黑锅有失公平,不客观。 对于存储也是如此。我们知道,为了解决DAS存储(直连存储)存在资源共享问题,将磁盘从服务器中剥离出来进行集中的管理和控制,从而构成了外部存储的应用。成百上千的磁盘,通过存储机头控制和管理。
磁盘的短板不在于容量,而在于I/O的处理速度。通过条带化等技术手段,众多磁盘并行工作来满足OLTP等关键业务应用对于响应速度的需求。换句话说,数据是被分散部署在成百上千的磁盘中,这些磁盘全部通过机头的控制器集中管理调度。
对于系统来说,控制机头就是神经的中枢,可靠性至关重要。在传统磁盘阵列的设计中,多采用冗余控制器设计,也就是双控制器,其中每个控制器分别与前端网络和后端的磁盘链接,但其中的一个控制器出现故障,另外一个控制器就可以接替工作,保障业务的连续性,系统不中断。 双控制器设计很好满足了数据存储对于可靠性的需要。
但随着数据需求和业务的不断发展,传统的双控制器设计渐渐难以满足应用的需求。首先在2012年底,3PAR发布了StoreServer 7000中端存储真四控设计,开启多控设计的时代。今年,华为 OceanStor 18000 V3 以及浪潮的AS18000高端存储都采用了多控制器设计。
对于多控制器设计,是谨慎过了头吗?毕竟可靠性与成本需要平衡,我们究竟需要多少个9呢? 在我看来,可靠性只是一个方面。实际上,随着磁盘I/O性能的攀升,以及存储规模的不断扩大,控制器的性能也是一个挑战。尽管单控制器性能不断提升,但多控制器并行,从架构设计入手,也是提高处理性能的主要方法。
所谓殊途同归。实际上,处理器也是采用并行的方式提高性能。从双核,到多核,核心之间的连接,也从系统总线,发展到交换,也就是从Hub到Switch,效果立竿见影。处理器核心可以这样做,存储的控制器之间也可以这样,这是很容易想到的。现在的问题在于,我们需要采用多少个控制器核心?4个就足够了吗?