云网牛站
所在位置:首页 > Linux教程 > 用/sys类文件或rescan-scsi-bus.sh脚本扫描新的LUNs和SCSI磁盘

用/sys类文件或rescan-scsi-bus.sh脚本扫描新的LUNs和SCSI磁盘

2020-09-06 15:40:35作者:游俊梧稿源:云网牛站

本文介绍使用/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

用/sys类文件或rescan-scsi-bus.sh脚本扫描新的LUNs和SCSI磁盘

另外,如果已经使用Multipath配置了它们,则可以使用Multipath命令找到它们。

多路径通常配置在Oracle数据库服务器中以提高性能:

# multipath -ll

用/sys类文件或rescan-scsi-bus.sh脚本扫描新的LUNs和SCSI磁盘

此过程适用于基于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

 

相关主题

第17章 使用iSCSI服务部署网络存储

精选文章
热门文章