拆卸硬盘
介绍拆卸CH225 V3硬盘的过程和注意事项。
操作场景
该任务指导现场维护工程师在以下场景拆卸硬盘:
- 更换故障的硬盘。
- 更换其他型号硬盘。
- 更换空间已满的硬盘。
- 拆卸硬盘前如果需要清除硬盘上的数据,请参见10.7 清除存储介质数据。
- 拆卸硬盘前,请确认:
- 拆卸没有安装操作系统的硬盘,不需要对计算节点下电。
- 拆卸已安装操作系统的硬盘,如果该硬盘在冗余设置的RAID组内,不需要对计算节点下电。
- 拆卸已安装操作系统的硬盘,如果该硬盘不在RAID组内,或者在非冗余设置的RAID组(例如RAID 0)内时,需要对计算节点下电。
Disk0 |
Disk2 |
Disk3 |
Disk4 |
Disk5 |
Disk1 |
Disk6 |
Disk7 |
Disk8 |
Disk9 |
— |
Disk10 |
Disk11 |
Disk12 |
Disk13 |
必备事项
前提条件
明确硬盘的RAID配置信息:
- 如果待更换硬盘不在RAID组内,或者在非冗余设置的RAID组(例如RAID 0)内时,请在拆卸硬盘之前备份硬盘中的数据。
- 如果待更换硬盘在冗余设置的RAID组内,可直接拆卸该硬盘,无需备份数据。
数据
该操作无需准备数据。
工具
- 防静电手套。
- 包装材料(例如防静电包装袋)。
操作步骤
拆卸HDD/SSD硬盘
- 确定待拆卸硬盘的位置和编号。
硬盘的位置如图8-1所示。
- 轻推扣住硬盘扳手的弹片,如图8-2中的①所示。
- 完全打开硬盘扳手,如图8-2中的②所示。
- 抓住硬盘扳手,将硬盘向外拔出约3cm,硬盘脱机。等待至少30秒,硬盘完全停止转动后,将硬盘从槽位中拔出,如图8-2中的③所示。
- 将拆卸的硬盘放入防静电包装袋内。
- (可选)如果不会立即安装硬盘,请安装硬盘槽位填充模块。
拆卸NVMe PCIe SSD硬盘
- 以防数据丢失,在拆卸NVMe硬盘前,必须提前备份数据。
- 使用命令卸载硬盘驱动。
- 观察硬盘指示灯,如果绿灯熄灭,黄色指示灯处于慢闪(0.5Hz),表示硬盘可拔出。
- 请按顺序执行NVMe硬盘拔出操作,在完全拔出一个NVMe硬盘后,请等待5s,再执行其他硬盘的拔出操作。
Windows操作系统
- 停止待拆卸硬盘的读写业务。
- 查询Slot ID和NVMe盘符的对应关系。本步骤以Windows Server 2012系统为例,具体方法如下:
- 打开“Server Manager > Computer Management > Disk Management”。
- 右键单击硬盘,选择“属性”,查看该硬盘的Slot ID。
- 根据硬盘的Slot ID判断该硬盘是否为NVMe硬盘,如果是,则记录下该硬盘的盘符,如图8-3所示。通过Slot ID找到对应的硬盘物理槽位,Slot ID和硬盘物理槽位对应关系见表8-3。
表8-3 硬盘槽位号、B/D/F、slot ID对应关系
配置
硬盘面板槽位号
Root Port(B/D/F)
Device(B/D/F)
Slot ID
2*2.5英寸NVME硬盘配置
Slot2
00:01.1
0f:00.0
2
Slot3
00:02.2
07:00.0
3
Slot4
80:00.0
83:00.0
4
Slot5
82:02.0
84:00.0
5
Slot6
00:01.1
10:00.0
6
Slot7
00:02.0
05:00.0
7
Slot8
80:01.0
82:00.0
8
Slot9
80:02.3
87:00.0
9
Slot10
00:02.3
08:00.0
10
Slot11
00:02.1
06:00.0
11
Slot12
80:02.1
85:00.0
12
Slot13
80:02.2
86:00.0
13
- 以华为自研NVME硬盘为例,安装NVMe硬盘驱动hiodriver和NVME硬盘工具NVMe Toolbox。NVMe Toolbox可用于NVME硬盘信息查询、FW升级和热插拔等操作。
安装ES3000 V3后,请安装对应操作系统下所需的工具包,便于对ES3000 V3进行管理。 ES3000 V3工具与Windows系统自带NVMe驱动无法兼容,用户使用工具前必须先保证系统已正确安装华为NVMe驱动。工具包和驱动可以从华为官网上获取,参考《华为 ES3000 V3 NVMe PCIe SSD V100R003C50SPC200 升级指导书 (ES3500&ES3600&ES3620)》进行 NVME驱动升级和工具安装。
- 在 C盘安装路径下(默认路径为C:\Program Files (x86)\hioadm),运行HioadmGUI_DotNet_4.0.exe的GUI查看运行的NVMe硬盘,可以看到服务器上正在运行的NVMe硬盘。图8-4 查看运行的NVMe硬盘
- 选择需要拆卸的NVMe硬盘,单击“eject”。正常卸载完成后会弹出Eject Succeed提示框。图8-5 硬盘弹出成功提示
通过工具成功弹出NVMe硬盘后,当NVMe硬盘绿色指示灯熄灭,NVMe硬盘黄色指示灯闪烁(0.5Hz),即可缓慢拔出NVMe硬盘。
手动拔出硬盘的操作方法和拆卸HDD/SSD硬盘相同。
Linux操作系统
先停止业务IO,如果该盘已经mount到某个路径,需要先umount。如果该盘在linux OS的RAID软件mdadm下使用,需要先将该盘设置成fail。
- 配置内核参数。
OS下配置内核参数,在grub.cfg文件上,增加pciehp.pciehp_force=1 pci=pcie_bus_perf,配置完成后,需要重启计算节点生效。
登录操作系统,打开“/boot/grub2/grub.cfg”(系统为Legacy模式安装)文件,配置内核参数。
以Legacy模式安装redhat7.1系统为例。- 执行命令:cat /proc/cmdline,出现如下界面,如果没有pciehp.pciehp_force=1 pci=pcie_bus_perf字样,则需要配置内核参数。图8-6 界面图
- 执行命令:vi /boot/grub2/grub.cfg,在出现的界面中找到1.a执行cat /proc/cmdline命令后出现的那句话,并在后面输入pciehp.pciehp_force=1 pci=pcie_bus_perf。增加的内容需要与上文之间有空格,但不能换行。图8-7 配置内核参数
- 保存,重启计算节点。
- 重启后,执行cat /proc/cmdline命令,查询内核配置是否成功。有pciehp.pciehp_force=1 pci=pcie_bus_perf字样,表示配置成功。图8-8 查询内核配置是否成功
- 执行命令:cat /proc/cmdline,出现如下界面,如果没有pciehp.pciehp_force=1 pci=pcie_bus_perf字样,则需要配置内核参数。
- 升级内核或驱动。
以RHEL 7.1操作系统为例。
以华为自研ES3000 V3为例,系统下需要升级内核或驱动,否则NVMe硬盘不支持通知式热插拔功能。
- 执行命令:uname -r,查询当前内核或驱动版本。图8-9 查询内核或驱动版本
- 下载内核或驱动的升级包(以kmod-hiodriver-4.0.2.1-3.10.0_229.el7.redhat.x86_64.rpm为例)。
下载链接:http://support.huawei.com/enterprise/zh/server/es3000-v3-pid-21500649/software。
- 将升级包上传至OS,执行以下命令进行安装。
rpm -ivh kmod-hiodriver-4.0.2.1-3.10.0_229.el7.redhat.x86_64.rpm
- 安装完成后,重启系统进入OS。
- 执行命令:uname -r,查看升级的内核或驱动版本是否生效。
系统显示信息3.10.0-229.el7.x86_64,说明升级内核或驱动已生效。
如果没有生效,需要手动在grub.cfg文件中修改。
图8-10 查询内核或驱动版本
- 执行命令:uname -r,查询当前内核或驱动版本。
- 通知式热拔NVME硬盘。
- OS下获取磁盘所在槽位号、B/D/F号和Slot ID信息。
一般情况下,槽位号跟计算节点面板标注的槽位号是一致的。如果不一致,则通过以下命令查询。
- 执行命令:find /sys -name nvme0n1,获知SSD设备总线号。
- 执行命令:lspci -vvv -xxx -s BDF,获知槽位号。
图8-11 查询槽位号、B/D/F号和Slot ID信息表8-4 硬盘槽位号、B/D/F、slot ID对应关系配置
硬盘面板槽位号
Root Port(B/D/F)
Device(B/D/F)
Slot ID
2*2.5英寸NVME硬盘配置
Slot2
00:01.1
0f:00.0
2
Slot3
00:02.2
07:00.0
3
Slot4
80:00.0
83:00.0
4
Slot5
82:02.0
84:00.0
5
Slot6
00:01.1
10:00.0
6
Slot7
00:02.0
05:00.0
7
Slot8
80:01.0
82:00.0
8
Slot9
80:02.3
87:00.0
9
Slot10
00:02.3
08:00.0
10
Slot11
00:02.1
06:00.0
11
Slot12
80:02.1
85:00.0
12
Slot13
80:02.2
86:00.0
13
- 修改a8寄存器值,否则不支持NVMe硬盘通知式热插拔功能。
- 在操作系统命令行中执行以下命令记录原始a8寄存器值(a0行第9列PCI数据)。
lspci -xxx -s <B/D/F>
< B/D/F>:NVMe硬盘的Root Port(B/D/F),B/D/F值请参考表8-4。
图8-12 查询原始寄存器值如果a8寄存器数据默认值不是f1,请联系华为工程师。
- 执行以下命令将a8寄存器值修改为“e1”。
setpci -s <B/D/F> a8.B=e1
< B/D/F>:NVMe硬盘的Root Port(B/D/F),B/D/F值请参考表8-4。
- 执行以下命令查询修改结果。
lspci -xxx-s <B/D/F>
< B/D/F>:NVMe硬盘的Root Port(B/D/F),B/D/F值请参考表8-4。
图8-13 查询修改后寄存器值
- 在操作系统命令行中执行以下命令记录原始a8寄存器值(a0行第9列PCI数据)。
- 停止该NVMe硬盘的读写业务。
先停止业务IO,如果该盘已经mount到某个路径,需要先umount。如果该盘在linux OS的RAID软件mdadm下使用,需要先将该盘设置成fail。
命令如下:
umount /dev/NVMe硬盘盘符
- 确定待拆卸硬盘的位置和编号。
- NVMe PCIe SSD硬盘不支持暴力热插拔。
- 连续2个硬盘的拔出操作时间间隔要大于30秒;换盘后,连续2个硬盘插入的间隔时间大于30秒。
硬盘的位置如图8-1所示。
- 查询Slot ID和NVMe盘符的对应关系。具体方法如下:
- 打开操作系统命令终端,执行命令cd /sys/bus/pci/slots,找到对应的slot ID号,记录下非0开头的Slot ID号(如图8-14的8、9、10、11)。
- 执行命令获取对应Slot ID号对应的盘的Bus ID,记录下所有Bus ID,如图8-15所示slot8对应的Bus ID是0000:81:00。
命令:cat /sys/bus/pci/slots/$slot/address
参数说明:$slot,表示硬盘槽位号,取值为2~13。
- 通过命令,列出/sys/class/block/下的NVMe盘符、PCIe Bus ID、80 ID的对应关系,如图8-16所示。通过3.e.ii的Slot ID和Bus ID的关系,找到NVMe盘符和Slot ID的对应关系。
例如:nvme0n1对应的Bus ID是0000:81:00.0,80 ID是0000:80:02.0,那么通过3.e.ii的映射关系可以知道,nvme0n1对应的slot ID就是8。
命令:ls -l /sys/class/block/
- 执行以下命令安全移除硬盘。
echo n > /sys/bus/pci/slots/Slot ID/power
参数说明:
- n,取值为0和1,0表示卸载硬盘,1表示加载硬盘(当且仅当已执行卸载硬盘命令但并未执行拔出硬盘操作时,才可以执行加载硬盘命令)。
- Slot ID,请参考表8-4。
例如:通知式热拔Slot1槽位的NVMe硬盘,执行命令如下。
echo 0 > /sys/bus/pci/slots/3/power
3:Slot1槽位的Slot ID。
- 观察NVMe硬盘指示灯。如果NVMe硬盘绿色指示灯熄灭,NVMe硬盘黄色指示灯闪烁(0.5Hz),表示该硬盘允许拔出。
手动拔出硬盘的操作方法和拆卸HDD/SSD硬盘相同。
- 将拆卸下来的硬盘放入防静电包装袋内。
- (可选)如果不会立即更换硬盘,请安装硬盘假模块。
- OS下获取磁盘所在槽位号、B/D/F号和Slot ID信息。