Dell XC系列服务器所用Satadom卡的镜像克隆及更换for Nutanix

Posted on

Nutanix集群所用的Dell XC系列服务器上板载有Satadom卡,专门用于Hypervisor系统引导,以确保虚拟化层的完整性与稳定性。一般来说,这块板载的Satadom卡存在一定的使用寿命。如果出现I/O Error、Cannot open volumes的提示或者NCC服务自检出WARN - Hardware Satadom is wore and tore,则需在其报废不可读之前主动更换。在更换前需要克隆原Satadom镜像,并导入至新Satadom卡中。

适用场景

注意:本教程仅适用于原Satadom仍可正常引导、读写的情况。如果Satadom已损坏或者无法引导节点,则本手册方法不适用,需要完全重刷Satadom及对应ESXi系统。

系统环境:Nutanix (AOS 4.7.x~5.5.x) + VMware ESXi (5.5~6.7)。如果用NX自带的AHV虚拟化环境,则操作可能有所不同。

镜像下载

Satadom卡的克隆工作需要在另外特制的CentOS系统中进行,而不是在ESXi中。

专用镜像下载:官方下载源

文件名:centos6-satadom-1-25-2016.iso

MD5值:3666ec042b14073d1a12dcdfb1b16188

准备工作

通过SSH登陆待更换Satadom卡的主机节点上的CVM:

1、查看节点IP和节点ID信息:

$ ncli host ls

记录下节点ID,后面要用到。

2、确认主机的本地磁盘上是否有足够空间存放镜像文件(大小一般为64G):

$ df -h | grep -E 'Use|/dev/sd.1'
$ list_disks

这两条命令都可以看到当前本地磁盘的使用情况。综合选择一块负载比较轻的磁盘,记录下对应的SN序列号。

3、检查集群容忍度(所有值需≥1)以及是否有未处理的警报:

$ ncli cluster get-domain-fault-tolerance-status type=node
$ ncli alert ls | grep -E 'Mes|Cre' ; date

4、检查当前集群服务状态:

$ cluster status | grep -v UP
$ svmips | wc –w
$ nodetool -h localhost ring | grep Normal | grep -c Up

5、检查节点是否与集群IP有活动的通信链路(192.168.5.2为集群虚拟IP):

$ allssh 'ssh root@192.168.5.1 esxcfg-route -l' | grep --color 192.168.5.2

如果有信息报出,则需要待链路通信全部结束才可进行后续操作。

克隆Satadom镜像

1、通过vSphere Client迁移主机上除CVM外所有虚拟机,然后将主机置于维护模式。

2、将CVM置于维护模式,防止主机离线超过30分钟后被踢出Nutanix的Metadata Ring(host-id数值根据实际节点ID替换掉):

$ ncli host edit id={host-id} enable-maintenance-mode=true

3、关闭CVM:

$ cvm_shutdown -P now

4、登陆iDRAC,启动VNC虚拟控制台

5、进入控制台后挂载虚拟镜像:centos6-satadom-1-25-2016.iso,并将下次启动顺序改为“Virtual CD/DVD/ISO”,然后重启主机。

6、引导进入系统,使用下列信息登陆:

用户名:root,密码为空。

7、检查是否已识别到Satadom卡(一般标识为SATADOM-SL 3ME/3IE3):

$ lsscsi

8、克隆Satadom卡镜像,并将其保存到本地磁盘上:

a) 罗列所有磁盘名称及对应的序列号:

$ echo /dev/sd? | xargs -t -n 1 smartctl -i 2>&1 | grep -E "sd|Serial"

核对本地磁盘的序列号是否和之前检查的一致,然后记录下对应的磁盘位置,下步用。

b) 挂载本地磁盘的首个分区“sd*1”:假设我们要挂载到/dev/sde,那么它的首个分区位置就是“sde1”:

$ mkdir /tmp/hddmnt
$ mount /dev/sde1 /tmp/hddmnt
$ mkdir /tmp/hddmnt/clone_image

c) 克隆Satadom卡镜像(/dev/sda为Satadom卡的磁盘位置):

$ cd /tmp/hddmnt/clone_image
$ dmesg -n 1
$ dd if=/dev/sda bs=1024K | tee node1.img | md5sum > node1.img.md5sum

复制耗时一般为15~20分钟左右,视Satadom的使用时长,复制时间会有所增加。如果复制耗时超过2个小时,则可能这个Satadom因寿命问题无法进行克隆。只能换新后重刷!

d) 使用sync命令强制同步磁盘缓存:

$ sync ; sync

e) 使用diff命令校验克隆镜像的一致性:

$ diff -s /dev/sda /tmp/hddmnt/clone_image/node1.img

提示:Files XXXX are identical表示校验通过;Binary files XXXX differ表示失败,需要重新克隆。

f) 校验克隆镜像的hash值:

$ md5sum /tmp/hddmnt/clone_image/node1.img
$ cat /tmp/hddmnt/clone_image/node1.img.md5sum

对比输出的两个md5值是否一致。

g) 通过两次校验后,卸载刚刚创建的新分区,然后关机:

$ cd
$ umount /tmp/hddmnt
$ shutdown -h now

更换硬件并恢复镜像

1、更换物理Satadom卡硬件(本处略)。

2、开机,通过iDRAC里的VNC控制台重新挂载之前下载的引导镜像,并引导进入系统。

3、挂载克隆时指定本地磁盘的首个分区:

$ mount /dev/sde1 /tmp/hddmnt

4、查看新Satadom卡的磁盘信息,并记录下设备路径(一般为/dev/sda不变):

$ lsscsi | grep SATADOM

5、将镜像写入新Satadom卡中,然后同步磁盘缓存:

$ dmesg -n 1
$ dd if=/tmp/hddmnt/clone_image/node1.img of=/dev/sda bs=1024K
$ sync ; sync

此处耗时约为10分钟。注意观察复制过程中的进度状态。

6、再次使用diff命令校验克隆镜像的一致性:

$ diff -s /dev/sda /tmp/hddmnt/clone_image/node1.img

7、再次验证Satadom卡上镜像的hash值:

$ md5sum /dev/sda > node1.img.md5sum
$ cat /tmp/hddmnt/clone_image/node1.img.md5sum

对比输出的两个md5值是否一致。两次验证有任何一次出现不一致,则需要重新复制文件。

8、至此,新Satadom卡克隆及更换工作完毕。从本机磁盘上删除之前提取出的镜像临时文件:

$ cd /tmp/hddmnt/clone_image/
$ rm node1.img
$ rm node1.img.md5sum
$ cd ..
$ rmdir clone_image
$ cd ..

9、卸载挂载的本地磁盘,然后在VNC控制台中恢复正常本地引导并重启主机:

$ umount /tmp/hddmnt
$ reboot

10、正常引导启动后,打开CVM。

更换后的状态检查

1、检查节点时间是否同步:

$ allssh 'date'

2、检查CPU频率是否正常(和其他节点保持一致即可):

$ cat /proc/cpuinfo | egrep "model name|cpu" | sort | uniq

3、退出CVM维护模式:

$ ncli host edit id={host-id} enable-maintenance-mode=false

4、待服务完全启动完毕,检查集群状态:

$ ncli cluster get-domain-fault-tolerance-status type=node
$ cluster status | grep -v UP

注意事项

针对ESXi 6.0系统,在完成上述操作后,可能会无法启动CVM(提示找不到指定的Datastore)。具体问题如下:

A cloned and replaced SATADOM drive is successful (by using the dd procedure), but the NTNX-local data store is not remounted. This causes the Controller VM of the host to become orphaned or missing. Also, the Controller VM fails to start.

解决办法:

The hypervisorwas able to only find the SATADOM partition device and add, using the original name, then register the Controller VM again with the original name.

1、通过SSH登陆主机的ESXi管理命令行。

2、列出系统识别到的Datastore ID:

$ esxcli storage vmfs snapshot list

3、重新挂载上述Datastore(“XXXX”处替换为实际值):

$ esxcli storage vmfs snapshot mount -u XXXX

4、重新尝试启动CVM,此时就应该可以正常启动了。

END