本文介绍使用/sys类文件或rescan-scsi-bus.sh脚本以在Linux系统上扫描新的LUNs和SCSI磁盘。其中要在Linux上安装sg3_utils软件包才能使用脚本。
前言 Linux系统已连接到SAN(存储区域网络)后,您需要重新扫描iSCSI服务以发现新的LUNs。为此,必须向存储团队提供Linux主机的WWN号和所需的LUNs大小。 一旦存储团队将LUNs与给定的Linux主机映射,他们将为您提供新的LUNs详细信息。 LUNs在存储方面称为LUNs的串行十六进制,您需要扫描SCSI主机以查找由存储团队分配的新LUNs。 这可以通过两种方式完成,扫描每个scsi主机设备或运行“rescan-scsi-bus.sh”脚本以检测新磁盘。 扫描后,可以在“/dev/disk/by-id”目录下找到它们: # ll /dev/disk/by-id
另外,如果已经使用Multipath配置了它们,则可以使用Multipath命令找到它们。 多路径通常配置在Oracle数据库服务器中以提高性能: # multipath -ll
此过程适用于基于Red Hat 6.x、7.x和8.x(RHEL-Red Hat Enterprise Linux)的系统,例如CentOS和Oracle Linux。
方法1:如何使用“/sys”类文件在Linux上扫描新的LUNs和SCSI磁盘 sysfs文件系统是一个伪文件系统,它提供内核数据结构的接口。 sysfs下的文件提供有关设备、内核模块、文件系统和其他内核组件的信息。 sysfs文件系统通常挂载在“/sys”上,通常,它是由系统自动安装的。 您可以使用echo命令扫描每个scsi主机设备,如下所示: # echo "- - -" > /sys/class/scsi_host/host[n]/scan 参考:echo命令_Linux echo命令使用详解:输出指定的字符串或者变量。 当您运行上述命令以重新扫描所有内容时,三个破折号(“- – -”)表示通配符选项,这些值如下: # echo "c t l" > /sys/class/scsi_host/host[n]/scan 注: c-HBA上的频道。 t-SCSI目标ID。 l-LUNs ID。 n-HBA编号。 运行以下命令以查找系统上的所有主机总线号: # ls /sys/class/scsi_host host0 host1 host2 一旦获得主机总线号,请运行以下命令以发现新磁盘: # echo "- - -" > /sys/class/scsi_host/host0/scan # echo "- - -" > /sys/class/scsi_host/host1/scan # echo "- - -" > /sys/class/scsi_host/host2/scan 同样,可以通过单个命令使用“for loop”对其进行扫描: # for host in ls /sys/class/scsi_host/;do echo "- - -" >/sys/class/scsi_host/${host}/scan; done 您可以使用本文开头提到的ls命令检查它们: # ls /dev/disk/by-id | grep -i "serial-hex of LUN"
方法2:如何使用rescan-scsi-bus.sh脚本在Linux上扫描新的LUNs和SCSI磁盘 确保已安装“sg3_utils”软件包以使用此脚本,否则,请运行以下命令进行安装。 对于RHEL、CentOS 6/7系统,请使用yum命令安装sg3_utils: # yum install -y sg3_utils 对于RHEL/CentOS 8和Fedora系统,使用dnf命令安装sg3_utils: # dnf install -y sg3_utils 现在,您可以使用rescan-scsi-bus.sh脚本重新扫描LUNs: # ./rescan-scsi-bus.sh
相关主题 |