大伟
作者大伟·2016-11-16 11:05
其它·某银行

虚拟化环境下的存储变革

字数 4197阅读 4349评论 0赞 2

云计算、大数据、移动和社交是当今IT发展的四大趋势,云计算技术应用的前提就是实现虚拟化。早在2000年,业界便开始了虚拟化技术的研究和应用,我们虽然起步较晚,但增速较快,仅用半年的时间便在生产、灾备、开发测试等环境搭建出了不同功能和规模的虚拟化平台。目前整个平台已经稳定运行三年,现在我将这三年我们的一些经历和经验分享给大家。

一、我们的过去和现在

回忆一下,10年前的机房是什么样子。那时银行的系统数量不多,基本是一套系统两台主机,直连一个盘阵,偶尔会有几台小型的光纤交换机。一个机房有这么十几套环境,结构简单,故障也好定位。

7年前银行、电信等行业都开始建设存储集中,一是数据安全性的地位被迅速提升,各家都开始用高端存储替代原先的中低端存储;二是存储整合后在架构和功能上都能满足监管部门要求建设两地三中心的灾备模式。

5年前各个银行开始大规模建设虚拟化、云。主机的利用率明显提升,一方面是系统资源利用率提升、一方面则是机房占地空间减少。与此同时存储的需求也呈现指数级增长,原因很简单,虚拟化之前原本存在本地硬盘上的数据,现在都迁移到了共享存储上。因此从某种意义上讲存储的可用性直接决定着数据中心的可用性。

一般的企业级高端存储我们会配置高转速的FC硬盘或SAS硬盘,用RAID10做数据保护,牺牲空间得到性能及数据安全性。现在机房内服务器的相对数量在逐渐减少,存储设备,包括磁盘存储以及光纤交换机的数量在迅速增加。我们银行行的虚拟化平台目前有上百台物理主机,通过存储虚拟化网关,分别接到后端高端以及中端存储设备上,应用根据不同的级别放置在不同等级的存储设备上。现在整个平台承载着上千台的虚拟机。

二、我们遇到的问题及解决之道

我们把虚拟化前的时期叫做虚拟化前传阶段,这个阶段,设备数量少,也没有灾备环境,结构清晰。哪里出问题直接去查,故障很好定位。

之后便是虚拟化初期阶段。我们的虚拟化平台建立开始,后端只有一台高端EMC存储设备,配置的都是高转速的FC硬盘,因为没有太多经验可参考,就大致估了一个性能和容量的需求。当平台上线后我们发现,存储的空间消耗极其迅速,在做虚拟化之前,我们存放在共享存储上的数据增长量大约是每年几十TB,而虚拟化后就变成每年上百TB的增长。原因很简单,按照虚拟化前的系统架构,那些不需要共享存储的系统,所有的数据都存放在每一台物理主机上,现在虚拟化后,所有的资源都在共享存储上,大量的安装需求使得存储的可用空间迅速消耗殆尽。此时最简单的解决办法就是扩容。但是当完成第二次扩容的时候,我突然意识到一个很严重的问题,我们这台存储即将达到它所能扩充的极限了,也就是所谓的满配状态。但当时虚拟机的增长趋势远超存储还可扩充的容量,只能新买一台设备了,但是机房没有地方放置。高端存储都有个共性,就是占地空间大,基本都是独立机柜,并且挨着放。经过与厂商、同行等各种渠道的技术交流,发现存储分层技术是解决当前困境的最有效最快速的方法。用我自己的一句话解释下分层概念:在一台高端存储上形成由高性能的SSD闪盘、传统高转速的硬盘和大容量低成本的硬盘组成的虚拟化硬盘池,根据应用的访问频度,数据可在不同类型磁盘之间自动迁移。于是我们经过充分的测试后,在最后一次对该存储扩容时增加了SSD硬盘和SATA硬盘,以及相应的分层软件,存储可用空间比配置相同数量的FC硬盘提升了3倍。我们相应配置了两种数据迁移策略,分别叫金级和银及。金级就是让数据在SSD和FC硬盘之间做迁移、银级就是数据在FC和SATA硬盘之间做迁移。这样做完后我们进行过一段时间的性能监控,得到的结论就是在没有影响用户体验的情况下,单台存储的可用空间得到了大幅提升。当时的存储空间紧张的问题暂时得到了缓解。

下面进入虚拟化的发展阶段,也就是虚拟化产生规模效应的阶段。虚拟机数量还在持续增加,这必然造成存储性能压力集中。虚拟机负载千奇百怪,随机小I/O数明显增多,经过持续性能分析已经看到esxi主机上的大容量Datastore的IOPS非常高,响应速度也在缓慢下降。而且类似于虚拟桌面这种应用,会产生很多重复数据(比如虚拟机Image文件)。之前提到我们那台高端存储已达到满配状态,且由于存储在整个虚拟化平台的重要地位,我也尽量避免给生产环境使用码放灵活的中低端存储,所以我又开始探索,有没有设备能提供高端存储的稳定性和性能、低端存储的灵活性和占地空间,同时对虚拟化平台的特点有着特殊的优化。那么,很幸运,当前被炒的很热的全闪存阵列刚好能解决我这个痛点。我们在4月初刚刚完成全闪存阵列的测试,现在就把一些结果分享给大家。

(1)以相同类型的I/O(相同块大小、读写比例等)进行持续的性能测试,全闪存阵列响应时间始终在1ms以下,传统阵列大约在5ms以内;

(2)可集成VMware VAAI,使得创建虚拟机和同存储内Storage vMotion时间缩短20倍;

(3)阵列总体压缩去重比约为5:1,也就是10TB可用空间的盘阵,实际能存放大约50TB的有效数据;

(4)破坏性测试后全闪存阵列的可用性同传统高端盘阵相当;

(5)最重要的一点,占地空间大幅减少。

经过我们简单的计算,全闪存阵列单位TB的投资比传统高端盘阵低。

可能有人会说,我在现有的高端存储上还有可扩容的空间,增加一些SSD盘不也可以么?其实还是有很多区别的,这里只说最重要的两点。第一,现有的高端存储一般不提供针对虚拟化特点的压缩和消重功能,也就是有多少空间你的虚拟机只能用那么多;第二,高端存储的SSD盘和其他类型的硬盘是会争抢资源的,造成的后果就是访问SSD盘的I/O会把你存储的控制器、前后端口等资源消耗完,那些需要访问FC和SATA硬盘的I/O只能等待,严重影响其他系统的用户体验。

又有人会说,我们空间不是问题,I/O也没那么大,这东西还有意义吗?那你有没有遇到过或者试想过这样的场景,你的一台esxi主机宕机,上面有30多个虚拟机自然也挂起了,由于VMWARE的HA机制,这些虚拟机会在其他的主机上同时启动,形成启动风暴。再或者,你的企业使用虚拟桌面,大家会在早上上班前的一个很集中的时间同时登录系统。那么这些情况下的IOPS输出是一个很恐怖的数字,这个大家可以自己评估一下,你现有的存储能不能扛得住这种压力,这个存储上的别的虚拟机会不会受影响。

所以,从目前我们的测试情况看,全闪存阵列的优点还是比较突出的。

监管部门要求的两地三中心的灾备架构一直都没有放松,生产环境增加多少台主机,扩容多少存储,在同城和异地的数据中心都要对等实现。这样,我们的虚拟化和存储管理员的运维压力便迅速提升。存储管理员从以前的几天做一次配置,到现在的一天做几次配置。

有什么办法么?建设自动化吧。如果换一个高大上的词,就是软件定义存储。这个事情我们也正在探索,负责小机的兄弟们正在测PowerVC,我这边正在做vipr。一个是IBM自己Power平台的工具,一个是EMC for VMware平台的。大体功能差不多,都是能管理虚拟化平台下所有的软硬件,点几下鼠标,zone、存储、虚拟机就都创建好了。但是,我有点认同《存储前沿趋势开讲啦》这个节目第十期农行那位兄弟的观点,就是监控可以整合,配置还是登上设备敲键盘做。为什么这么说?因为自动化软件的配置规则会完全颠覆你的使用习惯或者是规范,给你查找问题增加很多麻烦,而且你需要把所有设备的最高权限都开放给这个自动化软件,感觉挺危险的。从我们目前的测试情况来看,确实自动,以前创建一个虚拟机最快也得一二十分钟,算上规划的时间怎么也得1小时,现在1分钟搞定。但是你登上存储和光纤交换机一看,慌了,一堆看不懂的zone名和卷名.....因为自动化工具的命名规则你改不了,至少目前不行。软件定义存储是把双刃剑,但也是趋势。用的话最好能有个独立的环境,也就是这个环境里的主机、光纤交换机、存储全由自动化软件管理,而现有的环境,以前怎么维护现在还怎么维护。这样井水不犯河水,出问题后各查各的。

下面进入虚拟化的高可用研究阶段。

这个问题可能不是所有人都能遇到。因为不是每个行业都有灾备的需求。传统的靠存储复制技术的灾备模式,能不能用在虚拟化环境?答案是,绝对能!但是,当前IT系统的架构已经非常复杂了,灾备系统相当于再复制出一套一摸一样的系统,还要处理生产与灾备数据中心之间的网络和数据一致性问题,其复杂程度增加了数倍,进行一次切换所耗费的人力、物力、财力是巨大的。如果不是遇到大的灾难(比如地震,机房失火,恐怖袭击等)是不会进行切换的。前面说过,虚拟化后几乎所有风险都集中到了存储上,有时一台核心存储设备的故障,无异于一个数据中心发生了灾难。我们的存储底层架构再怎么健壮,多少个控制器,多少个引擎,部件如何的冗余,宏观的看这就是一个单点故障,也是整个虚拟化平台唯一的一个单点故障。那怎么办?存储双活。具体靠什么实现?存储虚拟化网关。这不是什么新技术了,有些银行已经走在前面了。优点自然就是消除一切单点故障,缺点是增加投入成本,需要接受那么一点点的性能损失。因为每个IO写到存储上都会变成双份,而且要等两边都给出返回值。性能损失会有多大?这个不好说,就好比总会有人问两台存储虚拟化网关能支持的最远距离是多少一样,这完全取决于两台设备之间的光纤质量,而非距离,可能是50米,也可能是50公里。测试方法也简单,两边SAN网的设备持续用fcping命令,然后观察延时的输出数据。 Oracle rac对这种延时很敏感,要想知道你们单位的系统适不适合做存储双活,最好拿设备实地去测试。

最后谈下我们以后会是什么样。

早年间银行业的特点就是别人家用剩下的,漫山遍野都是解决方案的技术,我们才开始小心翼翼的试用,因为要求稳,求安全。而近几年被各种各样的云推动着我们必须去尝试一些新技术,拨开云雾寻找适合自己的出路,否则就会迷失在云雾中。写这篇文章,是想给大家一些经验,一些信心,让那些还在犹豫的企业敢于尝试那些新技术,用的人多了,新技术自然就变得成熟了。我今天提到的存储分层、全闪存阵列、存储虚拟化网关的双活、自动化运维工具、软件定义存储等等,每一项技术我们都是有着或深或浅的切身使用体验,我也希望有更多的用户能去尝试这些技术,帮助它们更快的成长,这样也能让他们为我们提供更好的服务。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

相关文章

相关问题

相关资料

X社区推广