這篇文章給大家分享的是有關(guān)Linux系統(tǒng)掃描SCSI磁盤有幾種方式的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)建站是一家專注于做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計,鹿寨網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鹿寨等地區(qū)。鹿寨做網(wǎng)站價格咨詢:028-86922220
更多信息
Linux系統(tǒng)提供多重機制以重新掃描SCSI總線并重認系統(tǒng)中加入的SCSI設(shè)備。在2.4內(nèi)核方案中,由于動態(tài)LUN掃描機制不具備一致性,往往需要中斷I/O。
2.6內(nèi)核里,LUN掃描有了顯著改進并添加了動態(tài)LUN掃描機制。Linux目前缺乏像drvconfig或ioscan那樣允許動態(tài)SCSI通道重配的命令。
Linux主機對磁盤設(shè)備進行重新配置的方式包括:
?重啟系統(tǒng)
?卸載并重新加載HBA驅(qū)動模塊
?Echo /proc下的SCSI設(shè)備列表
?通過/sys下的屬性設(shè)置運行SCSI掃描
?通過HBA廠商腳本運行SCSI掃描
系統(tǒng)重啟
重啟主機是檢測新添加磁盤設(shè)備的可靠方式。在所有I/O停止之后方可重啟主機,同時靜態(tài)或以模塊方式連接磁盤驅(qū)動。系統(tǒng)初始化時會掃描PCI總線,因此掛載其上的SCSI host adapter會被掃描到,并生成一個PCI device。之后掃描軟件會為該PCI device加載相應(yīng)的驅(qū)動程序。加載SCSI host驅(qū)動時,其探測函數(shù)會初始化SCSI host,注冊中斷處理函數(shù),最后調(diào)用scsi_scan_host函數(shù)掃描scsi host adapter所管理的所有scsi總線。
重新加載HBA驅(qū)動
通常情況下,HBA驅(qū)動在系統(tǒng)中以模塊形式加載。從而允許模塊被卸載并重新加載,在該過程中SCSI掃描函數(shù)得以調(diào)用。通常,在卸載HBA驅(qū)動之前,SCSI設(shè)備的所有I/O都應(yīng)該停止,卸載文件系統(tǒng),多路徑服務(wù)應(yīng)用也需停止。如果有代理或HBA應(yīng)用幫助模塊,也應(yīng)當中止。
命令示例:
例如,rac節(jié)點上某臺服務(wù)器執(zhí)行fdisk –l命令看不到共享磁盤,可嘗試執(zhí)行如下命令:
# modprobe -r lpfc(卸載驅(qū)動)
# modprobe lpfc(加載驅(qū)動)
/proc下SCSI掃描
2.4內(nèi)核中,/proc文件系統(tǒng)提供了可用SCSI設(shè)備的列表。如果系統(tǒng)中SCSI設(shè)備重新配置,那么所有這些改變通過echo /proc接口反映到SCSI設(shè)備中。添加一個設(shè)備,主機,channel,target ID,以及磁盤設(shè)備的LUN編號會被添加到/proc/scsi/,需指定scsi編號。
命令示例:
# echo "scsi add-single-device 0 1 2 3" > /proc/scsi/scsi
0:主機ID
1:channel ID
2:target ID
3:LUN編號
該命令會將新磁盤設(shè)備添加到/proc/scsi/scsi文件中。如果沒有找到相應(yīng)文件,需為/dev路徑下新增磁盤設(shè)備創(chuàng)建設(shè)備文件名。
如果要刪除一個磁盤設(shè)備,使用適當?shù)闹鳈C,channel,target ID及LUN編號運行如下格式命令:
# echo "scsi remove-single-device 0 1 2 3" > /proc/scsi/scsi
0:主機ID
1:channel ID
2:target ID
3:LUN編號
/sys下SCSI掃描
2.6內(nèi)核中,HBA驅(qū)動將SCAN功能導(dǎo)出至/sys目錄下,可用來重新掃描該接口下的SCSI磁盤設(shè)備。命令如下:
# cd /sys/class/scsi_host/host4/
# ls -al scan
# echo ‘- - -’ > scan
‘- - -’代表channel,target和LUN編號。以上命令會導(dǎo)致hba4下所有channel,target以及可見LUN被掃描。
RHEL5 或SUSE10:
echo ‘- - -’ > /sys/class/scsi_host/host0/scan
/sys/class/scsi_host/ 下面有幾個host 就掃描幾次
RHEL4 或SUSE9:
echo 1 >> /sys/class/scsi_host/host0/issue_lip
同樣是/sys/class/scsi_host/ 下面有幾個host 就執(zhí)行幾次
echo “- - -” >> /sys/class/scsi_host/host0/scan
感謝各位的閱讀!關(guān)于“Linux系統(tǒng)掃描SCSI磁盤有幾種方式”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!