内容纲要

添加存储设备或路径

添加设备时,请注意系统分配给新设备的基于路径的设备名称(例如/dev/sd名称、major:minor编号和/dev/disk/by-path名称)可能之前已被已删除的设备使用。因此,请确保已删除对基于路径的设备名称的所有旧引用。否则,新设备可能会被误认为是旧设备。

程序 1.3。添加存储设备或路径

  1. 添加存储设备或路径的第一步是在物理上启用对新存储设备或现有设备的新路径的访问。这是在光纤通道或 iSCSI 存储服务器上使用特定于供应商的命令完成的。执行此操作时,请注意将呈现给您的主机的新存储的 LUN 值。如果存储服务器是光纤通道,还要记下存储服务器的全球节点名称(WWNN),并确定存储服务器上的所有端口是否有一个 WWNN。如果不是这种情况,请记下将用于访问新 LUN 的每个端口的全球端口名称(WWPN)。

  2. 接下来,让操作系统知道新的存储设备或现有设备的路径。推荐使用的命令是:

    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不推荐使用 此命令的旧形式。

    1. 在某些光纤通道硬件中,在执行循环初始化协议(LIP) 操作之前,操作系统可能看不到 RAID 阵列上新创建的 LUN 。有关如何执行此操作的说明请参阅第 1.8 节 “扫描存储互连”

      重要的

      如果需要 LIP,则需要在执行此操作时停止 I/O。

    2. 如果新的 LUN 已添加到 RAID 阵列但仍未被操作系统配置,请使用sg_luns命令(sg3_utils包的一部分)确认阵列导出的 LUN 列表。这将向SCSI REPORT LUNSRAID 阵列发出命令并返回存在的 LUN 列表。

    对于实现单个WWNN对所有端口光纤通道存储服务器,您可以确定正确的hc以及t通过搜索WWNN的值(即HBA数量,HBA通道和SCSI目标ID) sysfs。例如,如果存储服务器的 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
    

    必须为新设备的每条路径执行此操作。

    对于没有为所有端口实现单个 WWNN 的光纤通道存储服务器,您可以通过搜索sysfs.

    确定 HBA 编号、HBA 通道和 SCSI 目标 ID 的另一种方法是引用已在与新设备相同的路径上配置的另一个设备。这可以通过各种命令,比如要做lsscsiscsi_idmultipath -l,和ls -l /dev/disk/by-*。此信息加上新设备的 LUN 编号,可用于探测和配置新设备的路径,如上所示。

  3. 将所有SCSI路径添加到设备后,执行multipath命令,查看设备是否配置正确。此时,可以将设备添加到md、LVM mkfs、 或mount,例如。

如果遵循上述步骤,则可以安全地将设备添加到正在运行的系统中。完成此操作后,无需停止对其他设备的 I/O。在存储 I/O 正在进行时,不推荐其他涉及重新扫描(或重置)SCSI 总线的过程,这些过程会导致操作系统更新其状态以反映当前设备连接。

1.7. 技术预览:以太网接口上的光纤通道

该FCoE的utils的包,它提供了一个光纤通道以太网接口,是作为技术预览在红帽企业Linux 5.10启用。但是,该技术预览版不包括提供数据中心桥接恶魔的dcdb包。

重要的

有关技术预览的更多信息,请参阅https://access.redhat.com/support/offerings/techpreview/。

1.8. 扫描存储互连

有多种命令允许您重置和/或扫描一个或多个互连,可能在一次操作中添加和删除多个设备。这种类型的扫描可能具有破坏性,因为它会在 I/O 操作超时时导致延迟,并意外删除设备。因此,红帽建议仅在必要时使用此类扫描。此外,在扫描存储互连时必须遵守以下限制:

  1. 在执行该过程之前,必须暂停和刷新受影响互连上的所有 I/O,并在恢复 I/O 之前检查扫描结果。
  2. 与移除设备一样,当系统处于内存压力下时,不建议进行互连扫描。要确定内存压力级别,请运行以下命令vmstat 1 100;如果每 100 个样本中超过 10 个样本中的空闲内存小于总内存的 5%,则不建议进行互连扫描。如果交换处于活动状态(非零si且输出中的so列),也不建议进行互连扫描vmstat。该命令free还可以显示总内存。

以下命令可用于扫描存储互连。

  • echo "1" > /sys/class/fc_host/host/issue_lip

 此操作执行循环初始化协议( LIP ),然后扫描互连并使 SCSI 层更新以反映当前总线上的设备。LIP 本质上是总线复位,会导致设备添加和移除。要在光纤通道互连上配置新的 SCSI 目标,必须执行此过程。请记住,这issue_lip是一个异步操作。该命令可能会在整个扫描完成之前完成。您必须监视/var/log/messages以确定何时完成。在lpfcqla2xxx驱动程序支持issue_lip。有关 Red Hat Enterprise Linux 中每个驱动程序支持的 API 功能的更多信息,请参阅表 1.1,“光纤通道 API 功能”

  • /usr/bin/rescan-scsi-bus.sh

    此脚本包含在 Red Hat Enterprise Linux 5.4 和所有未来更新中。默认情况下,此脚本扫描系统上的所有 SCSI 总线,更新 SCSI 层以反映总线上的新设备。该脚本提供了允许移除设备和发出 LIP 的附加选项。有关此脚本的更多信息(包括已知问题),请参阅第 1.15 节 “通过 rescan-scsi-bus.sh 添加/删除逻辑单元”

  • echo "- - -" > /sys/class/scsi_host/host*h*/scan

    这与第 1.6 节 “添加存储设备或路径”中描述的用于添加存储设备或路径的命令相同。但是,在这种情况下,通道号、SCSI 目标 ID 和 LUN 值将替换为通配符。允许标识符和通配符的任何组合,允许您根据需要使命令变得具体或广泛。此过程将添加 LUN,但不会删除它们。

  • rmmod driver-name 或者 modprobe driver-name

    这些命令完全重新初始化由驱动程序控制的所有互连的状态。尽管这是极端的,但在某些情况下可能是合适的。例如,这可用于使用不同的模块参数值重新启动驱动程序。警告卸载和重新加载驱动程序时出现了各种问题。尽管其中一些问题已得到解决,但这些问题仍将存在于以前的版本中。此外,当前版本可能存在未解决的问题。不应在生产环境中进行驱动程序加载和卸载。


Rhehat 在线文档

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html-single/online_storage_reconfiguration_guide/index#adding_storage-device-or-path
https://access.redhat.com/solutions/319343