对于支持热插拔SCSI技术的服务器,SCSI硬盘和磁带机可以在Linux下实现在线添加和移除,有两种方法实现,先说麻烦的
具体方法如下:
一、 添加或者删除硬盘/磁带机:
# echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi // 添加硬盘
# echo "scsi remove-single-device 0 0 1 0" > /proc/scsi/scsi // 删除硬盘
下面具体演示如何给一台服务添加硬盘
1 首先将硬盘或者磁带机连接到服务器上
2 确定硬盘的Host 号、Channel号、ID号和LUN号
SCSI硬盘的信息存储在/proc/scsi/scsi文件中,查看当前文件的内容cat /proc/scsi/scsi
testupgrade:/ # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: Id: Lun: Vendor: VMware Model: Virtual disk Rev: 1.0 Type: Direct-Access ANSI SCSI revision: Host: scsi0 Channel: Id: Lun: Vendor: VMware Model: Virtual disk Rev: 1.0 Type: Direct-Access ANSI SCSI revision: Host: scsi0 Channel: Id: Lun: Vendor: VMware Model: Virtual disk Rev: 1.0 Type: Direct-Access ANSI SCSI revision: Host: scsi2 Channel: Id: Lun: Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00 Type: CD-ROM ANSI SCSI revision:
通过上面文件,我们可以知道,如果添加了新的硬盘,它的Host号是0,Channel号是0 ,ID号如果按顺序的话应该是3,LUN号是0
3 执行添加
echo “scsi add-single-device x y z u"”> /proc/scsi/scsi
其中:
x是硬盘或者磁带机所在SCSI控制器号;
y是硬盘或者磁带机所在SCSI通道的编号;
z是硬盘或者磁带机的SCSI ID号;
u是硬盘或者磁带机的lun号默认情况都是0
如果x y z参数不正确,系统是不能识别添加的硬盘和磁带机的可以通过 cat /proc/scsi/scsi命令来核实是否添加成功。
#根据上面的分析实际执行的内容是 "”> /proc/scsi/scsi
4 添加成功后
通过fdisk -l查看新增的磁盘 ,并划分分区
如果想删除,则可以按照上面的顺序执行下面的命令
# echo "scsi remove-single-device 0 0 3 0" > /proc/scsi/scsi // 删除硬盘
二、重新扫描硬盘
当然,也可以不用这么麻烦,直接使用下面命令可以让系统自动发现新加的磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
然后再运行fdisk -l 就能发现新添加的硬盘已经被系统识别了,查看系统日志/var/log/messages,发现对SCSI设备进行了一次重新扫描。需要注意的是echo的三个- – -号之间有空隔。
参考: