当前位置: 首页 > 科技观察

如何在Linux上扫描-检测新的LUN和SCSI磁盘

时间:2023-03-19 01:24:00 科技观察

当Linux系统连接到SAN(存储区域网络)时,您需要重新扫描iSCSI服务以发现新的LUN。为此,您必须向存储团队提供Linux主机的WWN编号和所需的LUN大小。本文将帮助您找到Linux主机的WWN号。当存储团队将LUN映射到给定的Linux主机时,他们将为您提供新的LUN详细信息。LUN在存储术语中称为LUN的串行十六进制。您需要扫描SCSI主机以查找存储团队分配的新LUN。这可以通过两种方式完成,扫描每个scsi主机设备或运行rescan-scsi-bus.sh脚本来检测新磁盘。扫描后可以在/dev/disk/by-id目录下找到。#ll/dev/disk/by-idtotal0lrwxrwxrwx1rootroot10Jul917:52scsi-60a98000486e542d4f5a2f47694d684b->../../sdahlrwxrwxrwx1rootroot9Jul917:52scsi-60a98000486e542d4f5a2f47694d684c->../../sdw..lrwxrwxrwx1rootroot10Jul917:52scsi-60a98000486e542d4f5a2f47694d684d->../../sdjklrwxrwxrwx1rootroot10Jul917:52scsi-60a98000486e542d4f5a2f47694d684e->../../sdaalrwxrwxrwx1rootroot9Jul917:52scsi-60a98000486e542d4f5a2f47694d684f->../../sdh另外,如果你已经用multipath配置了它们,那么可以用multipath命令找到。`multipathismainly配置到Oracle数据库服务器中以提高性能。#multipath-ll60a98000486e542d4f5a2f47694d684bdm-37NETAPP,LUNC-Modesize=512Gfeatures='3queue_if_no_pathpg_init_retries50'hwhandler='1alua'wp=rw|-+-policy='round-robin0'prio=540|1-activestatus:416active:-0:0:4:18sdpq131:256activereadyrunning||-0:0:5:18sdsr135:496activereadyrunning|`-1:0:5:18sdsq135:480activereadyrunning`-+-policy='round-robin0'prio=10status=enabled|-1:0:1:18sdfw131:32activereadyrunning|-1:0:0:18sdci69:96activereadyrunning|-0:0:1:18sdbz68:208activereadyrunning|-0:0:0:18sds65:32activereadyrunning|-1:0:3:18sdmd69:336activereadyrunning|-1:0:2:18sdjj8:464activereadyrunning|-0:0:3:34sdjt65:368activereadyrunning`-0:0:2:34sdgi131:224activereadyrunning此过程适用于RedHat6based.x,7.x和8.x(RHEL-RedHatEnterpriseLinux)系统,例如CentOS和OracleLinux。方法1:如何使用/sys类文件在Linux上扫描新的LUN和SCSI磁盘sysfs文件系统是一个伪文件系统,它提供了内核数据结构的接口。sysfs下的文件提供有关设备、内核模块、文件系统和其他内核组件的信息。sysfs文件系统通常挂载在/sys。通常,它由系统自动挂载。您可以使用echo命令扫描每个SCSI主机设备,如下所示:#echo"---">/sys/class/scsi_host/host[n]/scan当您运行上面的重新扫描所有命令时,三个破折号(---)参考通配符选项。这些值如下:#echo"ctl">/sys/class/scsi_host/host[n]/scan其中:c:HBA上的通道t:SCSI目标IDl:LUNIDn:运行的HBA编号以下命令查找系统中所有主机总线号:#ls/sys/class/scsi_hosthost0host1host2获取主机总线号后,运行以下命令发现新磁盘:#echo"---">/sys/class/scsi_host/host0/scan#echo"---">/sys/class/scsi_host/host1/scan#echo"---">/sys/class/scsi_host/host2/scan此外,您可以使用for循环来使用一个命令进行扫描。#forhostinls/sys/class/scsi_host/;doecho"---">/sys/class/scsi_host/${host}/scan;done你可以用文章开头提到的ls命令查看。#ls/dev/disk/by-id|grep-i"serial-hexofLUN"方法二:如何在Linux上使用rescan-scsi-bus.sh脚本扫描新的LUN和SCSI磁盘确保你已经安装了sg3_utils包来使用这个脚本。否则,运行以下命令来安装它。对于RHEL/CentOS6/7系统,使用yum命令安装sg3_utils。#yuminstall-ysg3_utils对于RHEL/CentOS8和Fedora系统,使用dnf命令安装sg3_utils。#dnfinstall-ysg3_utils现在您可以使用rescan-scsi-bus.sh脚本重新扫描LUN。#./rescan-scsi-bus.sh