不重启系统的情况下添加删除scsi总线

Linux主机对磁盘设备进行重新配置的方式包括:

  • 重启系统
  • 卸载并重新加载驱动模块
  • echo /proc下的SCSI设备列表
  • 通过/sys下的属性设置运行SCSI扫描

通过echo /sys文件系统重新扫描总线

1、本地磁盘:

ls /sys/class/scsi_host/

echo "- - -" > /sys/class/scsi_host/hostX/scan

2、iSCSI链接方式:

ls /sys/class/iscsi_host/

echo "- - -" > /sys/class/iscsi_host/hostX/scan

3、FC链接方式

ls /sys/class/fc_host/

echo "- - -" > /sys/class/fc_host/hostX/scan

hostX的X代表的是执行上面命令之后出现的host后面的数字

 

比如执行ls /sys/class/scsi_host/ 之后出现host1、host2、host3

那么就分别以host1、host2、host3执行

echo "- - -" > /sys/class/scsi_host/host1/scan

echo "- - -" > /sys/class/scsi_host/host2/scan

echo "- - -" > /sys/class/scsi_host/host3/scan

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

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

这里:

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

2、手动添加和删除SCSI磁盘

用户可通过以下命令手动添加和删除SCSI磁盘。

注意:以下命令示例中,H, B, T, L代表设备的主机,总线,target,和LUN ID。

可通过以下命令删除或对SCSI磁盘取消配置:

echo "scsi remove-single-device H B T L" > /proc/scsi/scsi

如果驱动无法被卸载并重新加载,并且用户知道新设备的主机,总线,target和LUN ID,那么可以使用以下命令通过/proc/scsi/scsi 文件添加来实现:

echo "scsi add-single-device H B T L" > /proc/scsi/scsi

案例:

[Sat Mar 15 18:28:52 root@localhost ~ ]# lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda               8:0    0   20G  0 disk

├─sda1            8:1    0    1G  0 part /boot

└─sda2            8:2    0   19G  0 part

  ├─centos-root 253:0    0   17G  0 lvm  /

  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]

sdb               8:16   0   20G  0 disk

sr0              11:0    1 1024M  0 rom 

loop0             7:0    0  4.5G  0 loop /iso


[Sat Mar 15 18:33:55 root@localhost ~ ]# lsscsi

[0:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda

[0:0:1:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdb

[2:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0

# 热添加

[Sat Mar 15 18:41:08 root@localhost ~ ]# echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi

# 热移除

[Sat Mar 15 18:34:24 root@localhost ~ ]# echo "scsi remove-single-device 0 0 1 0" > /proc/scsi/scsi

[Sat Mar 15 18:35:36 root@localhost ~ ]# ls /dev/sd[a-z]  # 检查

/dev/sda

3、重启主机或卸载并加载主机适配器驱动

重启主机是检测新添加磁盘设备的可靠方式。在所有I/O停止之后方可重启主机,同时静态或以模块方式连接磁盘驱动。系统初始化时会扫描PCI总线,因此挂载其上的SCSI host adapter会被扫描到,并生成一个PCI device。之后扫描软件会为该PCI device加载相应的驱动程序。加载SCSI host驱动时,其探测函数会初始化SCSI host,注册中断处理函数,最后调用scsi_scan_host函数扫描scsi host adapter所管理的所有scsi总线。

posted @ 2025-03-26 19:57  杨灏  阅读(187)  评论(0)    收藏  举报