問題描述
CentOS 6.5 (2.6.32-431.29.2.el6.x86_64)中正常啟動(dòng)時(shí)附帶兩塊數(shù)據(jù)磁盤 A 和 B俊性,大小為 10G 和 50G,分別對應(yīng) OS 中的 sdc 和 sdd阅畴。開機(jī)狀態(tài)下,在很短時(shí)間內(nèi)先后將磁盤 A 和 B 分離迅耘,再將磁盤 B 附加上去贱枣。此時(shí)系統(tǒng)中使用 fdisk监署,看到磁盤 B(50G)已經(jīng)映射為盤符 sdc,但磁盤信息還是磁盤 A(10G)的信息纽哥。且無法對 B 磁盤的文件系統(tǒng)進(jìn)行正常操作焦匈,如 mount。
操作前
從平臺(tái)層面觀察數(shù)據(jù)磁盤信息昵仅,注意磁盤名缓熟,LUN ID 和 Disk size 的對應(yīng)。
復(fù)制
#fdisk -l
系統(tǒng)層面掃描到的磁盤信息
復(fù)制
#dumpe2fs
文件系統(tǒng)信息摔笤。
復(fù)制
#lsblk
查看塊設(shè)備够滑。注意 MAJ:MIN 和 SIZE 代表的主要:次要驅(qū)動(dòng)號(hào)和磁盤尺寸。
操作后
在門戶中連續(xù)執(zhí)行分離磁盤 A 和 B吕世,再附加磁盤 B 的操作彰触。
從平臺(tái)層面觀察數(shù)據(jù)磁盤信息,注意磁盤名命辖,LUN ID 和 Disk size 的變化况毅,這表示該虛擬機(jī)只有一塊 50GB 的數(shù)據(jù)磁盤。
系統(tǒng)內(nèi)運(yùn)行mount和fdisk查看掛載和磁盤信息尔艇。
sdd 還掛載在 /data 上尔许。但已經(jīng)無法正常工作,任何操作會(huì)報(bào) IO 錯(cuò)誤终娃。
fdisk顯示數(shù)據(jù)磁盤 sdc 的大小還是磁盤 A 的信息(我們掛載的是磁盤 B)味廊。
而對應(yīng)該成為 sdc 的 B 磁盤進(jìn)行掛載會(huì)發(fā)現(xiàn)讀取不到文件系統(tǒng)信息。
#lsblk信息也未更正棠耕。
問題分析
對磁盤進(jìn)行分離和附加的操作間隔時(shí)間太小余佛,該案例中 3 分鐘內(nèi)完成了三次操作;導(dǎo)致內(nèi)核對磁盤的信息未得到及時(shí)更新窍荧。誤認(rèn)為被附加回的磁盤還是原來的磁盤辉巡,但因?yàn)榇疟P的幾何構(gòu)造發(fā)生了變化,因此導(dǎo)致沖突蕊退。文件系統(tǒng)也無法正確識(shí)別出來郊楣。
解決方法
通過下面命令強(qiáng)制對該設(shè)備進(jìn)行刷新,使內(nèi)核重新讀取其構(gòu)造信息咕痛。
復(fù)制
echo 1 > /sys/class/scsi_device//device/rescan
Note
device 為磁盤的 SCSI 地址痢甘。
這里我們的測試結(jié)果喇嘱。立即訪問http://market.azure.cn