为什么需要自动化?
这个问题也可以换个方式问:为什么不呢?
如果有条件,为什么不实施自动化呢?
在笔者看来,除了思考、情感、爱好(其实也是一种情感,是人对物或某一种活动的情感)、体验、探索、好奇这些人类活动之外,其他的没有什么不可以自动化的。
时至今日,很少有人能够真正摆脱自动化带来的好处。其实,人类已经享受了许多自动化的好处,小到生活中常见的全自动照相机、洗衣机、电饭煲、饮水机、自动取款机(ATM)、自动控制的红绿灯、自动门;大到一些行业里,使用了自动化控制系统的供水、供电、生产流水线(例如,在汽车行业,工厂任务的80%都是自动化)、无人驾驶……
先来看一则2015年5月25日凤凰网的新闻《昆山富士康建机器人生产线两年裁员5万》:“当地媒体报道,在其中的一个生产流程中,15台设备在3名工人的看护下,一天就可以生产130万件中间产品,完全颠覆了以往几百名工人,在同一条生产线上接力作业的印象。智能化生产以后,已经建厂23年的富士康昆山工厂,由2013年的约11万人,裁减成6万人。富士康方面介绍说,减员的原因,一方面是公司发展战略的考虑,另一个很重要的原因是由于劳动力成本攀升, 使用机器人不仅降低成本,更能获得高效 。机器人可以24小时工作, 误差小,成品率更高 。据企业官方统计,自2010年至今富士康投入3亿元对昆山厂区车间进行自动化改造,采用自主研发机械手臂2000余台。”
2015年5月,谷歌宣称,“我们的Lexus混合动力汽车现在已经自动行驶了160多万公里,我们的无人驾驶汽车没有引发任何交通意外。这种汽车安全地使用电脑导航”。谷歌也证实,尽管在过去6年中,其无人驾驶汽车共卷入11起交通意外中,但这些意外都是人类失误引发的。
2015年5月,我国深圳的长盈精密技术公司,宣布将使用90%机器人代替1800名基本流水线员工,而这种情况也逐渐成为中国南方制造业的趋势。
2015年6月,新华网报道,英国牛津大学一项研究显示,在美国, 未来10年至20年,将有47%的工作岗位将自动化 ,意味着将有大批基础岗位工作人员失业。
2016年1月19日,世界经济论坛在其官网上,以“5 million jobs to be lost by 2020”为标题指出,自动化(包括机器人和人工智能兴起等因素)将导致15个领先的国家在未来5年里减少500万份工作(图2-10)。
图2-10 世界经济论坛:自动化到2020年将减少500万份工作
自动化让人类从那些机械重复的、简单的劳动中解放出来,帮助人类提高效率,提供方便,增加灵活性,降低人工出错率,并且节省成本。虽然它带来的变革,可能导致部分人失业,但从大局、从长远来看,它能够帮助或者迫使人们用更多的时间去思考,从事更多有价值的事情。
软件定义存储、软件定义数据中心的自动化是什么?有何意义呢?
笔者以为,软件定义存储的自动化是指:SDS能够根据业务应用的SLA、合规性、高可用性、工作负载等要求,通过 存储API ,自动地按需部署存储资源(例如,块存储逻辑单元甚至RAID子设备、文件系统共享、存储对象等),提供业务应用所需的数据服务级别。
而存储越来越丰富的API接口,与控制平面(Control Plane)和数据平面(Data Plane)的逐渐分离是密不可分的。我们将在后面的章节里详细介绍控制平面和数据平面。
正是这两个平面的逐渐分离,才使得软件定义存储能够逐渐呈现出更丰富的API供Hypervisor/OS/DCOS/Cloud去调用,实现更高程度的自动化。从而为企业提供了高效、敏捷、灵活的存储架构,提高了利用率,也降低了存储基础架构运维的复杂度和成本,腾出更多的精力去关注上层或业务的创新。
而且,在本书第1章里,我们提到,根据IDC的预测,IT从业人员,在2014—2020年的6年里,仅仅增长1.285倍。而数字宇宙按照超过摩尔定律的速度迅猛增长,使得平均每个IT人员管理的数据量从230GB增加到1231GB,超过5倍。使得SDS的自动化更具现实意义。
下面我们通过对控制平面与数据平面的详细描述,来进一步理解自动化。
IBM系统存储高级专家Tony Pearson曾经有一个非常好的比喻,拿自动取款机(ATM)、自动加油机、自动售货机来比喻提供存储资源或服务的SDS。受这个比喻的启发,我们做了更多的联想和扩展,方便大家更好地理解。
以往,大家取钱存钱,都要去银行排队。银行需要人工来处理点钞、验钞等重复枯燥的工作,工作效率很低,而且只有银行上班期间用户才能交易。不仅如此,我们一定要等到排队轮到的时候,才能真正开始存取款。与之对应的传统存储(也即传统人工传达数据的请求方式)的情形就是:当数据宇宙不断膨胀,存储容量不断增加,业务种类或规模不断增加,或者虚机不断增加时,IT运维人员发现他们不得不疲于应付这些简单重复、备感枯燥的基本存储管理操作:建立或删除逻辑卷,将卷映射给服务器或解除映射,进入服务器操作系统格式化新识别的逻辑卷……如此繁重的任务,有时可能导致需要存储服务的应用人员排队或等待,有时也可能出现人为的错误。
出现了自动取款机后,就极大地减少了银行员工的工作量,大大地提高了工作效率;也极大地减少了用户排队等候的时间,而且还能享有7×24小时的服务,提高了服务水平。与之对应的软件定义存储(SDS,也即利用元数据传达数据的请求方式)的情形就是:数据请求可以不经过存储管理员,直接传达至具有高度智能的SDS,SDS根据请求分配存储资源;也就是说,存储资源的使用者或者数据服务的调用者,直接提出对存储资源的SLA请求,在无须人工干预(手动配置)的情况下,SDS能够在7×24的任意时间内响应请求并分配满足用户请求的存储资源。
图2-11(摘自IBM网站)从左到右,列出了自动取款机、自动加油机、自动售货机对应的控制平面(Control Plane)、数据平面(Data Plane)部分。口令认证就相当于SDS的控制平面,而取款存款、取油、取物就是SDS的数据平面,数据平面包括Resource Pools and Quotas(资源池和限额)、Quality Of Service(QoS,服务质量)、Service Catalog(服务目录)。
在1.2章节里提到,软件定义其实是一个过程,不是一蹴而就的目标,它分成不同阶段。其实,生活中的自动化程度也是一个逐步提高的过程。
现在的ATM,提供的服务还比较简单,你输入一个整百倍数的金额,只要在限额之内,它提供给你相应数量的百元现钞。但是这对于希望获取更灵活服务的用户,就不够了。比如,用户想取12345元,不受一次取款最多5000元的限制,也不只是整百的金额,做到真正的按需取款;有时,在ATM机也会排长长的队,如何保障白金卡用户排队的时间相对更短?
图2-11 SDS控制平面和数据平面的比喻
这就需要ATM拥有更大的现金池,而且能够判断用户的等级以及用户对取款服务的QoS要求。
以自动加油机为例,油的标号和品种不同,单位价格不一样,加油站为用户提供了不同种类、不同级别的油品,也即不同的服务质量(QoS)。
自动售货机的选择就更多了,用户可以从饮料、零食、方便面等不同大类里,选择不同的品牌、分量、价格。相当于售货机提供了一个直观的、可供灵活组合的菜单目录(Catalog)。
体现到SDS,就是能够根据服务目录(Service Catalog),选择不同服务级别(Service Level)或不同QoS(服务质量),按需分配相应的存储资源。如图2-12所示,SDS能够抽象并池化来自不同存储形态的存储资源,包括服务器内的固态盘和机械盘、存储子系统,甚至云存储;通过存储池的管理和策略的设置,按照用户对服务级别的不同需求,提供不同级别的数据服务。例如,图中含有青铜、白银、黄金三种不同价格,不同SLA/QoS的存储服务目录(Service Catalog)。在这个服务目录里定义了Provisioning(空间配置)、Protection(数据保护)、Availability(可用性)、Performance(性能)、Security(安全)等特性的组合。
当SDS发展到SNIA的理想阶段,企业内部数据中心或私有云,需要在部门与IT管理之间计费,并按需支付时,效果就如表2-2所示的Amazon EBS卷,在不同大小、不同性能的组合下,价格也不同。当然,用在传统的企业级业务应用的SDS还有其他许多丰富的存储高级功能,将来也可以纳入到存储服务目录里。
图2-12 SNIA SDS一览图
表2-2 Amazon卷类型
注:*所示为美国东部(弗吉尼亚北部)的价格。
原来的传统存储,它的数据平面与控制平面是紧耦合的,所以应用的数据请求不得不通过应用人员手动告诉存储管理员。再由存储管理员来实施空间分配、数据保护,确保数据性能及安全等数据的部署和服务。传统存储基于极不灵活且以基础架构为中心的LUN(逻辑单元)或存储卷,它们本质上都会采用静态方式分配存储服务级别(容量、性能和数据服务等)。在这种情况下,存储资源的调配取决于可用的硬件,而资源将根据“最适合”的方案严格分配给应用,极度缺乏灵活性或变化空间。
在SDS里,空间配置、自动分级、快照和克隆、压缩和去重、加密、高可用等功能组成了数据平面(Data Plane)的部分。在过去一二十年里,这部分的持续发展,成就了当前企业级存储的丰富功能。
而负责策略驱动(Policy Driven)的管理,以及向上与数据中心或者云管理软件,甚至与应用软件的配合、联动的API管理,则组成了控制平面(Control Plane)的部分。这个策略驱动的控制层可在外部阵列、服务器、直连存储、对象存储或云端存储的所有存储资源之间提供通用的编排和自动化功能。上层的Hypervisor/OS/DCOS/Cloud可通过API(用于通过脚本编写工具和云计算自动化工具使用并控制策略)对控制层进行编程,进而实现以自助方式使用存储资源。下面以OpenStack Cinder、VMware vRealize和VSAN为例,简单介绍一下SDS自动化的体现。
Cinder是OpenStack(时下最热门的数据中心操作系统——DCOS)的一个子模块,提供对Block Storage(块存储)的管理支持,通过使用iSCSI、FC或者NAS协议,以及若干私有协议提供后端存储的连接,展现给计算层(Nova)。Nova是OpenStack最为核心的模块,负责弹性云计算,部署、管理和监控着CPU、内存和盘等资源。如图2-13所示。
图2-13 OpenStack Cinder与Nova的关系
在OpenStack Cinder图形界面里,可以创建或删除卷和卷的快照,也可以设置或变更卷的属性。如图2-14所示。
2015年被NetApp收购的全闪存初创公司SolidFire在Icehouse版本上支持OpenStack Cinder的高级功能——QoS设置,这样就可以确保关键客户的工作负载获得快速和可预测的性能,并消除“Noisy Neighbor”(吵闹的邻居,指多租户环境下,如果工作负载没有隔离,没有设置QoS限制性能,由于总性能有限,某关键业务的性能会被其他业务干扰)。如图2-15所示。
图2-14 OpenStack Cinder图形界面创建volume
图2-15 SolidFire支持OpenStack Cinder的QoS功能(一)
从图2-16可以看到,用户可以通过脚本或API,将某一cinder volume的IOPS设置在一个范围内。
这样不仅提示了自动化部署SolidFire的volume,而且通过QoS设置,也使得各种业务负载在共享存储性能时,能够自动化地去适应、调整。
图2-16 SolidFire支持OpenStack Cinder的QoS功能(二)
VMware VSAN 6.2特性中也支持针对vmdk设置IOPS Limit。不仅如此,由于VMware依托于其稳定成熟的Hypervisor-ESXi,将云管理平台的自动化软件vRealize Automation紧密地与VSAN集成起来。因此,在分配云主机时,能够快捷高效地分配满足用户特定需求的存储资源。如图2-17所示,VMware用户除了设置CPU个数、内存大小、存储空间大小之外,还可以对这个存储空间(如8GB)进行细化。这个细化的过程,就是借助于之前已经创建好的存储策略。我们知道,云主机可能运行各种不同的业务应用,例如桌面虚拟化、OLTP数据库交易、备份应用等,它们对于8GB的存储空间,在高可用性(副本数量)、IO大小、性能、是否做快照容灾等方面,要求都不尽相同。
图2-17 VMware vRealize可以对存储空间的要求进一步细化
实际上,如果在创建云主机之前,就已经针对不同业务应用建立好了不同的存储策略(图2-18),就很容易选择有差别的8GB存储空间。这样,能够极大地减少人工的干预,减少管理员的工作量,将精力投入在业务应用的创新上。实现云计算所需的存储自动化能力。
图2-18 VMware vRealize可以选择VSAN的各种存储策略
目前,已经跨越抽象、池化两个阶段,步入自动化阶段的SDS厂商,屈指可数。大多数存储厂商尚且停留在前两个阶段,在控制平面(Control Plane)部分的积累,时间还很不长。不过,需要明确的是,在虚拟化、云计算大规模普及之前,用户对存储控制平面的需求并不迫切。