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

系统 Linux
当 Linux 系统连接到 SAN(存储区域网络)后,你需要重新扫描 iSCSI 服务以发现新的 LUN。

当 Linux 系统连接到 SAN(存储区域网络)后,你需要重新扫描 iSCSI 服务以发现新的 LUN。

要做到这一点,你必须向存储团队提供 Linux 主机的 WWN 号和所需的 LUN 大小。

[[352186]]

这篇文章将帮助你查找 Linux 主机的 WWN 号。

当存储团队将 LUN 与给定的 Linux 主机进行了映射,他们将为你提供新的 LUN 详细信息。

LUN 在存储术语中被称为 LUN 的串行十六进制。

你需要扫描 SCSI 主机来寻找存储团队分配的新 LUN。

这可以通过两种方式进行,扫描每个 scsi 主机设备或运行 rescan-scsi-bus.sh 脚本来检测新磁盘。

扫描后可以在 /dev/disk/by-id 目录下找到它们。

  1. # ll /dev/disk/by-id 
  2.  
  3. total 0 
  4. lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684b -> ../../sdah 
  5. lrwxrwxrwx 1 root root 9 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684c -> ../../sdw 
  6. lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684d -> ../../sdjk 
  7. lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684e -> ../../sdaa 
  8. lrwxrwxrwx 1 root root 9 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684f -> ../../sdh 

另外,如果你已经用 multipath 配置了它们,那么可以用 multipath 命令找到。

`multipath 主要是配置到 Oracle 数据库服务器中,以提高性能。

  1. # multipath -ll 
  2.  
  3. 60a98000486e542d4f5a2f47694d684b dm-37 NETAPP,LUN C-Mode 
  4. size=512G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw 
  5. |-+- policy='round-robin 0' prio=50 status=active 
  6. | |- 1:0:4:18 sdoe 128:416 active ready running 
  7. | |- 0:0:4:18 sdpq 131:256 active ready running 
  8. | |- 0:0:5:18 sdsr 135:496 active ready running 
  9. | `- 1:0:5:18 sdsq 135:480 active ready running 
  10. `-+- policy='round-robin 0' prio=10 status=enabled 
  11. |- 1:0:1:18 sdfw 131:32 active ready running 
  12. |- 1:0:0:18 sdci 69:96 active ready running 
  13. |- 0:0:1:18 sdbz 68:208 active ready running 
  14. |- 0:0:0:18 sds 65:32 active ready running 
  15. |- 1:0:3:18 sdmd 69:336 active ready running 
  16. |- 1:0:2:18 sdjj 8:464 active ready running 
  17. |- 0:0:3:34 sdjt 65:368 active ready running 
  18. `- 0:0:2:34 sdgi 131:224 active ready running 

这个过程适用于基于 Red Hat 6.x、7.x 和 8.x(RHEL - Red Hat Enterprise Linux)的系统,如 CentOS 和 Oracle Linux。

方法 1:如何使用 /sys 类文件在 Linux 上扫描新的 LUN 和 SCSI 磁盘

sysfs 文件系统是一个伪文件系统,它为内核数据结构提供了一个接口。

sysfs 下的文件提供了关于设备、内核模块、文件系统和其他内核组件的信息。

sysfs 文件系统通常被挂载在 /sys。通常,它是由系统自动挂载的。

你可以使用 echo 命令来扫描每个 SCSI 主机设备,如下所示:

  1. # echo "- - -" > /sys/class/scsi_host/host[n]/scan 

当你运行上面的重新扫描所有的命令时,三个破折号(- – -)指的是通配符选项。这些值如下:

  1. # echo "c t l" > /sys/class/scsi_host/host[n]/scan 

这里:

  • c:HBA 上的通道
  • t:SCSI 目标 ID
  • l:LUN ID
  • n:HBA 编号

运行下面的命令来查找系统中所有的主机总线编号:

  1. # ls /sys/class/scsi_host 
  2. host0 host1 host2 

得到主机总线编号后,运行以下命令来发现新的磁盘:

  1. # echo "- - -" > /sys/class/scsi_host/host0/scan 
  2. # echo "- - -" > /sys/class/scsi_host/host1/scan 
  3. # echo "- - -" > /sys/class/scsi_host/host2/scan 

另外,还可以用 for 循环用一条命令进行扫描。

  1. # for host in ls /sys/class/scsi_host/;do echo "- - -" >/sys/class/scsi_host/${host}/scan; done 

你可以使用文章开头提到的 ls 命令来检查它们。

  1. # ls /dev/disk/by-id | grep -i "serial-hex of LUN" 

方法 2:如何使用 rescan-scsi-bus.sh 脚本在 Linux 上扫描新的 LUN 和 SCSI 磁盘

确保你已经安装了 sg3_utils 包来使用这个脚本。否则,运行以下命令来安装它。

对于 RHEL/CentOS 6/7 系统,使用 yum 命令安装 sg3_utils。

  1. # yum install -y sg3_utils 

对于 RHEL/CentOS 8 和 Fedora 系统,使用 dnf 命令安装 sg3_utils。

  1. # dnf install -y sg3_utils 

现在你可以使用 rescan-scsi-bus.sh 脚本重新扫描 LUN。

  1. # ./rescan-scsi-bus.sh 

 

责任编辑:赵宁宁 来源: Linux中国
相关推荐

2017-04-29 11:43:49

Linux磁盘fdisk

2023-09-06 17:06:51

LinuxVxVMSAN LUN

2019-03-28 09:25:51

Linux磁盘命令

2023-09-03 17:09:58

LinuxSAN LUN磁盘

2023-09-05 15:17:48

LinuxLUN磁盘

2016-11-17 12:24:09

Linux坏道

2022-04-26 09:16:35

Linux照片扫描

2020-11-17 11:19:48

Linux磁盘空间

2015-08-21 09:07:52

LinuxNMAP安全

2022-01-20 08:04:41

FSCKLinux磁盘

2015-09-10 09:18:33

2019-07-10 10:40:10

Linux库注入命令

2014-10-10 14:34:17

RAID 10Linux

2019-08-14 09:42:06

LinuxElasticsearKibana

2021-06-21 11:11:29

LinuxIO磁盘IO

2019-03-28 08:00:00

Linux磁盘IO监控存储设备

2020-03-24 07:00:00

UbuntuLinuxNetbeans

2014-05-12 10:57:41

TermRecord终端会话

2018-03-29 15:21:03

LinuxDebian网桥

2023-06-25 18:52:48

点赞
收藏

51CTO技术栈公众号