《LINUX教學(xué):Linux上磁盤熱插拔》要點(diǎn):
本文介紹了LINUX教學(xué):Linux上磁盤熱插拔,希望對您有用。如果有疑問,可以聯(lián)系我們。
起首獲取scsi設(shè)備的信息.
[root@server2 ~]# lsscsi [2:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda [4:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0
有些操作系統(tǒng)沒有l(wèi)sscsi命令,則可以使用下面的辦法獲取scsi設(shè)備信息.
[root@server2 ~]# ll /sys/bus/scsi/drivers/sd/2\:0\:0\:0/block/ total 0 drwxr-xr-x 10 root root 0 Jun 22 2017 sda
然后查看/proc/scsi/scsi文件,獲取對應(yīng)scsi裝備的詳細(xì)信息.
在此處,有兩塊直連(Direct-Access)的scsi磁盤,一塊通過光驅(qū)cd-rom連接的光盤.我們只考慮scsi磁盤,所以這兩塊磁盤在scsi中的定位符為2:0:0:0和2:0:1:0.如果繼續(xù)插入一塊盤,那么新盤在scsi中的定位符為2:0:2:0,這個數(shù)值串異常重要.
在向計算機(jī)中插入一塊磁盤后,內(nèi)核因為識別不了它所以不會產(chǎn)生任何事件通知,因此在/sys目錄中不會產(chǎn)生任何文件,任何工具也就讀取不了它.重啟系統(tǒng)肯定是可以辦理的,但是Linux支持熱插.
熱插新盤的方式是向/proc/scsi/scsi中寫入新scsi裝備的信息.方式如下:
echo "scsi add-single-device a b c d" >/proc/scsi/scsi
此中:
? ? ? a == hostadapter id (first one being 0)
? ? ? b == SCSI channel on hostadapter (first one being 0)
? ? ? c == ID
? ? ? d == LUN (first one being 0)
例如上面的例子,應(yīng)該添加如下信息:
[root@server2 ~]# echo "scsi add-single-device 2:0:2:0" >/proc/scsi/scsi
當(dāng)然,重新掃描scsi總線也可以實(shí)現(xiàn)熱插的功能.因為上面的例子中,scsi host id為2(即host2),所以掃描的是host2,這樣host2這個scsi上的所有設(shè)備都邑被重新掃描.
[root@server2 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
如果不知道要掃描哪個host,直接使用循環(huán)全體掃描.
[root@xuexi ~]# for i in `ls /sys/class/scsi_host/`;do echo "- - -" >/sys/class/scsi_host/$i/scan;done
熱插之后,fdisk -l等命令就可以辨認(rèn)到該磁盤了.
熱拔磁盤的方式是在/proc/scsi/scsi中移除對應(yīng)scsi裝備的信息.方式如下:
echo "scsi remove-single-device a b c d" >/proc/scsi/scsi
例如刪除2:0:2:0這塊磁盤.
[root@server2 ~]# echo "scsi remove-single-device 2 0 2 0" >/proc/scsi/scsi
因為要刪除的設(shè)備已經(jīng)存在,/sys中已經(jīng)有它完整的信息,所以也從其自身設(shè)備長進(jìn)行刪除.
起首查看scsi設(shè)備信息.
[root@server2 ~]# lsscsi [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 [4:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0
?例如要刪除/dev/sdb,即2:0:1:0.先看看它的文件信息.
在此中有3個文件:delete、rescan和state.此中state記錄了該設(shè)備是否正在運(yùn)行中.而delete和rescan文件則用于刪除和重新掃描該設(shè)備.
例如,刪除該裝備,即熱拔.
[root@server2 ~]# echo 1 > /sys/bus/scsi/drivers/sd/2\:0\:1\:0/delete
本文永遠(yuǎn)更新鏈接地址:
維易PHP培訓(xùn)學(xué)院每天發(fā)布《LINUX教學(xué):Linux上磁盤熱插拔》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/11308.html