ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2021-12-28 03:02:18  阅读:407  来源: 互联网

标签:00 0000 .. host Linux SCSI root scsi LUN


背景

Linux 服务器中的磁盘可以分为本地磁盘和LUN(logical unit number),本地磁盘即为物理服务器的本地磁盘,或虚拟机的本地虚拟磁盘,而LUN是逻辑单元号,这是一个逻辑对象,所以很多时候被称为Logical Device。它是远端集中式存储通过光交、光纤和主机端的HBA卡共享给服务器的逻辑磁盘,但看起来和本地磁盘没有什么区别,访问速度不输本地磁盘。在以前解决了很多主机本地磁盘空间不足和需要共享磁盘的问题,如ORACLE RAC集群。

存在这样的场景,就是存储侧划了新的LUN或扩容了虚拟磁盘,如何在 Linux 上扫描/检测新的 LUN 和 SCSI 磁盘呢?如果是新主机还没有业务,那大可重启系统识别新添加的设备,但大多数情况下主机上运行这业务,我们更希望在线操作,来保持业务的连续性。

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

扫描后可以在 /dev/disk/目录下已不同的标识找到它们。

[root@irora01 ~]# ll /dev/disk/
total 0
drwxr-xr-x 2 root root 2480 Sep  2 03:00 by-id
drwxr-xr-x 2 root root 1980 Sep  2 03:00 by-path
drwxr-xr-x 2 root root  260 Sep  2 03:00 by-uuid

你还可以通过如下的命令发现新增的磁盘

fdisk -l
lsscsi
lsblk

对于LUN通常是有链路冗余的,所以同一磁盘在主机上能看到4个或8个,一般需要使用多路径软件聚合后使用,多路径软件配合存储可实现主备或负载形式提供存储访问。多路径软件有很多,不通厂商有各自的多路径软件,通用的为 multipath。对于 multipath 我们通常需要自定义聚合后的磁盘别名。使用multipath -ll命令可以查看多路径。

[root@irora34 ~]# multipath -ll
mpath06 (363c9d56100e06a30f694115300000092) dm-10 HUAWEI,XSG1
size=100G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 7:0:0:6  sdh  8:112  active ready running
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 7:0:1:6  sdae 65:224 active ready running
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 8:0:0:6  sdbb 67:80  active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
  `- 8:0:1:6  sdby 68:192 active ready running
mpath23 (363c9d56100e06a30f69487c7000000a3) dm-22 HUAWEI,XSG1
size=400G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 7:0:0:23 sdy  65:128 active ready running
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 7:0:1:23 sdav 66:240 active ready running
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 8:0:0:23 sdbs 68:96  active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
  `- 8:0:1:23 sdcp 69:208 active ready running

扫盘

方法 1

方法 1:如何使用 /sys 类文件在 Linux 上扫描新的 LUN 和 SCSI 磁盘
sysfs 文件系统是一个伪文件系统,它为内核数据结构提供了一个接口。

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

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

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

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

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

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

这里:

  • c:HBA 上的通道

  • t:SCSI 目标 ID

  • l:LUN ID

  • n:HBA 编号

运行命令ls -l /sys/class/scsi_host来查找系统中所有的主机总线编号:

[root@irora34 ~]# ls -l /sys/class/scsi_host
total 0
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host0 -> ../../devices/pci0000:00/0000:00:03.2/0000:03:00.0/host0/scsi_host/host0
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host1 -> ../../devices/pci0000:00/0000:00:1f.2/host1/scsi_host/host1
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host2 -> ../../devices/pci0000:00/0000:00:1f.2/host2/scsi_host/host2
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host3 -> ../../devices/pci0000:00/0000:00:1f.2/host3/scsi_host/host3
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host4 -> ../../devices/pci0000:00/0000:00:1f.2/host4/scsi_host/host4
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host5 -> ../../devices/pci0000:00/0000:00:1f.2/host5/scsi_host/host5
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host6 -> ../../devices/pci0000:00/0000:00:1f.2/host6/scsi_host/host6
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host7 -> ../../devices/pci0000:40/0000:40:03.2/0000:45:00.0/host7/scsi_host/host7
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host8 -> ../../devices/pci0000:40/0000:40:03.2/0000:45:00.1/host8/scsi_host/host8

查看FC通道

[root@irora34 ~]# ls -l /sys/class/fc_host/
total 0
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host7 -> ../../devices/pci0000:40/0000:40:03.2/0000:45:00.0/host7/fc_host/host7
lrwxrwxrwx 1 root root 0 Sep  2 03:00 host8 -> ../../devices/pci0000:40/0000:40:03.2/0000:45:00.1/host8/fc_host/host8

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

# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan

如果只是扫描LUN,从上面可以看出只需扫描host7、host8即可,当然不同主机上可能不一样,要根据实际情况操作。

另外,还可以用 for 循环用一条命令全部进行扫描,不会要太多的问题。

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

方法 2

方法 2:如何使用 rescan-scsi-bus.sh 脚本在 Linux 上扫描新的 LUN 和 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 脚本重新扫描 LUN。

# ./rescan-scsi-bus.sh

方法 3

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

echo "1" > /sys/class/fc_host/host[n]/issue_lip
echo "1" > /sys/class/fc_host/host[n]/issue_lip

以上命令本质上是初始化了HAB卡端口,必要时使用此类扫描,这种类型的扫描可能具有破坏性。本人就曾遇到过使用这种方式扫盘导致链路Down引发主机重启的情况。
操作时可在messages中看到 FC Link Down/up 相关信息。

Dec 28 00:13:15 orarac01 kernel: lpfc 0000:45:00.0: 0:1305 Link Down Event x4 received Data: x4 x20 x110 x0 x0
Dec 28 00:13:15 orarac01 kernel: lpfc 0000:45:00.0: 0:1303 Link Up Event x5 received Data: x5 x0 x20 x0 x0 x0 0
Dec 28 00:13:46 orarac01 kernel: rport-7:0-13: blocked FC remote port time out: removing rport
Dec 28 00:15:14 orarac01 kernel: lpfc 0000:45:00.1: 1:1305 Link Down Event x4 received Data: x4 x20 x110 x0 x0
Dec 28 00:15:14 orarac01 kernel: lpfc 0000:45:00.1: 1:1303 Link Up Event x5 received Data: x5 x0 x20 x0 x0 x0 0
Dec 28 00:15:46 orarac01 kernel: rport-8:0-13: blocked FC remote port time out: removing rport

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

标签:00,0000,..,host,Linux,SCSI,root,scsi,LUN
来源: https://www.cnblogs.com/my-show-time/p/15739138.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有