25.11. 添加存储设备或路径
添加设备时,请注意系统分配给新设备的设备名称(/dev/sd 名称、main :minor 号和
/dev/disk/by-path
名称)。因此,请确保已删除所有对基于路径的设备名称的旧引用。否则,新设备可能会被误认为是旧设备。
过程 25.13. 添加存储设备或路径
- 添加存储设备或路径的第一步是物理启用对新存储设备的访问,或对现有设备的新路径的访问。这是通过对光纤通道或 iSCSI 存储服务器使用特定于供应商的命令来完成的。执行此操作时,请注意将呈现给您的主机的新存储的 LUN 值。如果存储服务器是光纤通道,可记下存储服务器的 全球节点名称 (WWNN),并确定存储服务器上的所有端口是否有单个 WWNN。否则,请注意将用于访问新 LUN 的每个端口的 全球端口名称 (WWPN)。
- 接下来,使操作系统知道新的存储设备,或现有设备的路径。建议使用的命令有:
$ echo "c t l" > /sys/class/scsi_host/hosth/scan
在上一命令中,h 是 HBA 号,c 是 HBA 上的频道,t 是 SCSI 目标 ID,l 是 LUN。注意此命令的旧形式 echo "scsi add-single-device 0 0 0 0" > /proc/scsi/scsi 已被弃用。- 在某些光纤通道硬件中,RAID 阵列上新创建的 LUN 可能在执行 循环初始化协议(LIP)操作之前无法被操作系统看到。有关如何操作的说明,请参阅 第 25.12 节 “扫描存储互连”。重要如果需要 LIP,则需要在执行此操作时需要停止 I/O。
- 如果在 RAID 阵列中添加了新的 LUN,但仍然没有被操作系统配置,请使用 sg_luns 命令(这是 sg3_utils 软件包的一部分)确认阵列导出的 LUN 列表。这会将 SCSI REPORT LUNS 命令发布到 RAID 阵列,并返回存在的 LUN 列表。
对于为所有端口实现单个 WWNN 的光纤通道存储服务器,您可以通过搜索 sysfs 中的 WWNN 来确定正确的 h、c 和 t 值(如 HBA 号、HBA 通道和 SCSI 目标 ID)。例 25.5. 确定正确的 h、c 和 t 值
例如,如果存储服务器的 WWNN 是0x5006016090203181
,请使用:$ grep 5006016090203181 /sys/class/fc_transport/*/node_name
这应该显示类似于如下的输出:/sys/class/fc_transport/target5:0:2/node_name:0x5006016090203181 /sys/class/fc_transport/target5:0:3/node_name:0x5006016090203181 /sys/class/fc_transport/target6:0:2/node_name:0x5006016090203181 /sys/class/fc_transport/target6:0:3/node_name:0x5006016090203181
这表示有四个光纤通道路由到这个目标(两个单通道 HBA,各自指向两个存储端口)。假设 LUN 值为56
,以下命令将配置第一个路径:$ echo "0 2 56" > /sys/class/scsi_host/host5/scan
必须为新设备的每个路径完成此操作。对于不为所有端口实现单个 WWN 的光纤通道存储服务器,您可以通过在 sysfs 中搜索每个 WWPN 来确定正确的 HBA 号、HBA 通道和 SCSI 目标 ID。确定 HBA 号、HBA 通道和 SCSI 目标 ID 的另一种方法是参考已在与新设备相同的路径上配置的另一个设备。这可以通过各种命令完成,如 lsscsi、scsi_id、multipath -l 和 ls -l /dev/disk/byrew。此信息以及新设备的 LUN 号,可以探测并配置新设备的路径,如上所示。 - 向设备添加所有 SCSI 路径后,执行 multipath 命令,并检查该设备是否已正确配置。此时,可以将设备添加到 md、LVM、mkfs 或 mount 中。
如果遵循上述步骤,则可以安全地将设备添加到正在运行的系统中。在完成此操作的时,不需要停止到其他设备的 I/O 。在存储 I/O 进行的过程中,不建议采用其他涉及 SCSI 总线的重新扫描(或重置)的流程,这会导致操作系统更新其状态,以反映当前的设备连接。