不重启系统的情况下添加删除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总线。

浙公网安备 33010602011771号