1. 程式人生 > >無需重啟 在Linux下熱添加或移除SCSI硬盤

無需重啟 在Linux下熱添加或移除SCSI硬盤

可見 運行 entos lsscsi 虛擬機 通過 總線 class 命令

實驗環境 一臺運行Centos 7的虛擬機在線添加一塊4G硬盤

[關鍵命令]
添加:
echo "scsi add-single-device 1 2 3 4" >/proc/scsi/scsi

移除:
echo "scsi remove-single-device 1 2 3 4" > /proc/scsi/scsi

命令行解釋:
命令行中的 1 2 3 4 需要自行修改成相應的參數:

1 : SCSI HBA ID
2 : SCSI Channel
3 : SCSI ID
4 : LUN ID

添加也可以使用 echo "- - -" > /sys/class/scsi_host/host2/scan

‘- - -‘代表channel,target和LUN編號。以上命令會導致host2下所有channel,target以及可見LUN被掃描

通過 lsscsi 命令可以查看對應參數

[root@localhost ~]# lsscsi
[1:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
[2:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda

[root@localhost ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05

[root@localhost ~]# ls /sys/class/scsi_host/
host0  host1  host2
#可以看到scsi硬盤使用的總線是host2
[root@localhost ~]#  echo "- - -" > /sys/class/scsi_host/host2/scan
[root@localhost ~]# lsscsi 
[1:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0 
[2:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda 
[2:0:1:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdb 
#或者使用 echo "scsi add-single-device 2 0 1 0" >/proc/scsi/scsi 也可以發現設備
[root@localhost ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb    8:16   0   4G  0 disk 
[root@localhost ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 01 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02

現在移除添加的硬盤

[root@localhost ~]# echo "scsi remove-single-device 2 0 1 0 " > /proc/scsi/scsi
[root@localhost ~]# lsscsi
[1:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0 
[2:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda 
[root@localhost ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05

[root@localhost host2]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3

無需重啟 在Linux下熱添加或移除SCSI硬盤