前些日子安装了一批服务器,同一个型号同一个配置的机器需要复制很多台(安装操作系统以及一些软件)。比较头大,最后选择了硬盘clone的方式,可能是最流行的方式吧。
这里面遇到一个问题,硬盘clone的时候为了加快进度,需要能够让硬盘在clone完成之后,方便的取下来,同时,再上新的硬盘继续下一次clone。硬盘都是SCSI的,而且现在的服务器都支持热插拔,但以前也试过SCSI硬盘直接插上去,系统不会认的,这点和USB设备不太一样,好像fedora有自动挂载U盘的能力,但我还没见过自动挂载硬盘的。
然后请教了一位“师傅”(当时没有网络环境,在工厂呢),说linux有个命令可以把SCSI硬盘加载进来。
OK,这个神奇的命令出来了:
echo ‘scsi add-single-device x y z u’ > /proc/scsi/scsi 就可以将SCSI硬盘加载到系统中。
具体点:x表示scsi控制器的编号,y表示SCSI channel的编号,z表示SCSI 设备在一个channel上的编号,u表示lun号。
echo ‘scsi add-single-device 0 0 1 0’ > /proc/scsi/scsi 将host scsi0上,channel 0上,id为1的SCSI硬盘添加到系统中。
同样,echo ‘scsi remove-single-device 0 0 1 0’ > /proc/scsi/scsi 是将刚才加的硬盘从系统中删除。
话说回来,这个热插拔技术(hotplug)本身是一种硬件上的技术,插上之后,硬件系统给他供电,控制器开始控制。
但此时对于上层的操作系统来说,还知道这个东西。所以,需要通过一种方式告诉操作系统。所以,我们所做的事情就是通知操作系统,什么地方有个什么东西加进来了,需要他去处理。
后来发现这些东西都在Linux的man里面有:man proc,找scsi就行了。
这样有些时候更换硬盘就方便多了。

