最近一直想要写一篇文章是关于EMC Isilon 存储控制器方面的,是什么力量促使我要写这个文章呢?作为一个卖存储备件的资深搬运工,最近遇到了一些关于控制器方面的备件询价、备件更换方面的问题,每次都要花大量的时间给客户解释。解释了半天,客户也听得一塌糊涂,当然这里面很多贡献是客户的二把刀工程师给采购们错误的需求。
写这个文章的目的就是给各位看官介绍一下EMC isilon产品的架构,之所以有这种架构所以控制器和普通集中式存储不同的地方,以及出现控制器故障后的一些常见问题和处理思路。
言归正传,先来介绍Isilon存储的架构特点,Isilon存储不是传统的集中式存储的2个控制器带几个扩展柜的架构,这个非常重要。Isilon是分布式存储,组成一套Isilon存储至少需要三个节点。每个节点均包含:
- 计算单元(就是CPU、内存等),相当于传统存储的控制器;
- 存储单元(就是硬盘)
- 网络单元,就是节点之间的互联部分,这里使用的是infiniband交换机。
下面是一套典型的Isilon集群(cluster)架构:
有很多个节点(node)和连接节点的交换机,这里我们看不到传统存储典型的存储扩展柜。所有的存储单元和计算单元实际上是在一个盒子里面。这也是传统存储和集中存储的差异。
对于isilon的扩容,和传统存储也不同,我们传统存储经常有需求是扩容容量,比如扩容多少个磁盘,如果以前的存储扩展柜shelf没有空槽位,就要增加一个shelf和对应的磁盘。这种扩容,其实只是容量的增加,性能是不可能增加的,因为存储控制器是不可能增加的。但对于isilon的扩容,是增加一个节点,节点是什么,就是既包含了硬盘,又包含了计算的CPU和内存等。实现了容量和性能的同时扩容。
第二,我们来看一个典型的节点,就是我们传统上经常提到的控制器
Isilon从诞生之日到现在已经发展到了第7代了产品了,我们用Gen5代的S210产品为例进行说明,Gen4和5是非常类似的。
S210 其实就是一台Intel的服务器,EMC OEM定制化成了isilon S210存储节点。下面是S210的后视图,熟悉服务器的朋友一看就知道是intel的S2600CP服务器。
下面是S210打开顶盖以后的俯视图,可以看到又CPU,内存和各种PCIe卡,前面有24个槽位,可以插硬盘。
有了这些初步概念以后,我们来看大家经常遇到的问题:如果还有覆盖不到的地方,可以添加vx 在 storageExpert 进行进一步的沟通交流。
节点显示离线offline,就一定是节点(控制器)坏了吗?
某个节点离线了,突然一个控制器挂掉了,从isi status 看到这个节点显示down了。这个一定是节点(控制器)物理故障了吗?回答是NO,节点离线会有很多很多的原因导致,这里的节点离线,其实就是构成这个节点的服务器宕机了。对服务器熟悉的朋友应该知道,服务器宕机,并不一定意味著服务器主板坏了。任何组成服务器的软硬件出现问题都可能导致服务器宕机,包括这个节点上面运行的OneFS操作系统甚至下面的FreeBSD底层操作系统出现故障到可能导致节点宕机。
节点(控制器)起不来了,要订购那个部件?
我们现在收到的几乎100%的需求是,S210坏了,给我报个整机的价格。按照前面给各位的介绍,如何报整机的价格,就包含三大部分:
- 计算单元,就是CPU和内存,其中CPU是固定配置,不用考虑。内存对于同样的S210型号也有很多中不同的配置。
- 存储单元:就是硬盘,S210的存储也有很多中的配置,有300G盘,600G盘,900G盘和1.2T磁盘,还有带SSD磁盘加速的等等配置,
- 网络单元:S210的外部网卡也是不同的,有10Gb的,也有1Gb的。
基于上面的说明,如果要报一个整机,就需要知道这些不同的配置,才可以准确的给出配置。
但是如果就是节点故障,根本不需要这一整套备件。而且就是做成了一模一样的一整套备件,您也不能去直接更换。我们知道node是一个cluster中的一个组成部分,数据是打散分布在所有节点的磁盘上的。如果你直接用这整套存储去更换,第一是更换不上去的,因为没有配置信息。第二,原来磁盘上的客户数据就没有了。
所以正确的思路是,如果节点宕机了,要去诊断分析,是那个部件导致的宕机,如果是主板导致,需要更换的部件是主板+外壳就可以了,其他所有的部件都从故障备件上转移过来。
节点有不同型号吗?任何统一型号的主板可以直接更换吗?
即使同一个S210的节点型号,也有很多中不同的配置,如前面说的,内存不同、硬盘不同,还有扩展卡也有不同。体现在isilon的节点上就是 isi_hw_status的输出内容:
下面是一台X410的输出,如果你要订购更换node节点的备件,应该按照下面的需求来:
X410-4U-Dual-64GB-2x1GE-2x10GE SFP+-102TB-1638GB SSD
所以要回答,任何一个统一型号的主板可以直接更换吗?回答是NO,但也可以是YES。如果工程师水平足够高,回答就是可以,对于高水平工程师只要是同一个型号的X410或者S210就可以,这些配置信息都是在PROM中的内容,可以进行修改,修改后可以正常启动。但我相信,绝大部分的现场工程师没有这个能力。回答就是NO。
node节点起不来,就甩出一句话,备件DOA。
节点node(控制器)如何更换?
节点的更换其实是一个复杂的过程,对于不同的型号有所不同。特别是Gen4,就是第四代存储难度更大,在isilon中有个概念叫做journal,简单理解就是内存中的数据,有些存储叫做vault信息。这些信息在node掉电后,挂掉以后是保存在NVRAM中的,这个NVRAM靠BBU电池供电。对于Gen4,就是第四代isilon,如果机箱整体掉电,这个bbu电池只能支持30分钟,也就意味着,如果你把外部机箱的电源拔掉30分钟,这个nvram中的数据就全部没有了。另外在更换过程中,如果你没有在30分钟内完成加电,这个里面的信息也没有了。
对于Gen5 以后的就会好很多。如果journal数据丢失了,而且无法恢复保存在硬盘中的journal数据,这个节点就不可能启动了。据我所知,这个节点也就无法完成更换了。如果无法完成更换该怎么办?请看下面的问题回答。
控制器能启动,但是每次都进入recovery shell?这个是什么问题
出现这个问题的原因有很多,如各种卡故障,电池故障,journal数据不能恢复等都可能导致无法正常启动。对于非journal问题,找到对应的故障处理掉就可以启动。但是对于journal问题,我所知道的处理方案只有一条,就是smartfail这个节点,然后重新初始化该节点再加入的方法。这个方法涉及的问题又很多。如果要smartfail掉一个node,要先检查整个cluster的空间是否满足将这个node smartfail掉,用大白话就是要将这个节点上的数据转移到其他节点上,然后把这个节点从整个cluster中踢掉。如果cluster已经空间用的很慢,这个smartfail的动作是做不了的,无法成功,也就意味着你无法将这个节点踢掉。
也有聪明的工程师,会说我能不能先把这个节点加入进去,这样不就有空间了吗,然后再踢掉有问题的。这个操作是不可行的,因为你要加入的节点的序列号等信息和老的是一样的,老节点也是无法踢掉的。所以就会出现在整个cluster中永远有一个节点是down的。这时候,聪明的工程师又说了,这也没有关系呀,反正数据是全的。我要告诉你的是,这个时候,我们isilond的保护级别一般都是2d:1N,这两个是并列关系,就是要么1个节点挂掉,要么2个盘同时挂掉,数据都是完整的。如果cluster中一个节点永远是down的,你这套cluster就永远运行在保护的边缘,因为少一个节点。
新加入一个节点,必须OneFS版本一样吗?
如果要新加入一个节点,不管是扩容,还是维修用。在扩容前,要将新的节点做初始化,初始化的版本不需要和cluster集群节点一模一样,只要在附近就可以。在做join加入到cluster的时候,系统会自动对这个要加入的节点的code版本同步到和cluster一致的程度。