共計 3664 個字符,預(yù)計需要花費 10 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹了 linux 系統(tǒng)如何解決重啟盤符錯亂問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
linux 磁盤重啟亂序問題處理
最近到客戶那去巡檢時,客戶提到一個問題,他們的 rac 在重啟的時候,原來的 sda1、sdb1、sdc1 會對應(yīng)變成 sdd1、sde1、sdf1,由于他們使用的是盤符來綁定裸設(shè)備,所以啟動后,經(jīng)常要手動執(zhí)行以下命令
[root@ractest1 ~]# raw /dev/raw/raw1 /dev/sda1
[root@ractest1 ~]# raw /dev/raw/raw2 /dev/sdb1
[root@ractest1 ~]# raw /dev/raw/raw3 /dev/sdc1
并且,比較奇怪的事,兩邊有時認得的盤完全不一樣,一邊是 sda\b\c,另一邊是 sdd\e\f,這樣,使 oracle rac 的共享盤出現(xiàn)問題。
在了解了他們的情況后,我基本上明白是什么原因,這種盤序錯亂,與 linux 對磁盤的掃描機制有關(guān),所以我們只能從另一角度去規(guī)避這樣的問題,使用 id 號去綁定,這樣就沒有問題。在告訴他后,他同意我們對他原來的綁定方式進行修改,具體操作如下:
[root@ractest1 ~]# fdisk -l
Disk /dev/sdd: 429.4 GB, 429496729600 bytes
255 heads, 63 sectors/track, 52216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 52216 419424988+ 83 Linux
Disk /dev/sde: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sde1 1 1008 204595 83 Linux
Disk /dev/sdf: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sdf1 1 1008 204595 83 Linux
可以看到,剛重啟的節(jié)點 1 是 sdd/sde/sdf
另一個節(jié)點的情況是:
[root@ractest2 ~]# fdisk -l
Disk /dev/sda: 429.4 GB, 429496729600 bytes
255 heads, 63 sectors/track, 52216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 52216 419424988+ 83 Linux
Disk /dev/sdb: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1008 204595 83 Linux
Disk /dev/sdc: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 1008 204595 83 Linux
分別在兩臺機子上執(zhí)行如下命令:
[root@ractest2 ~] scsi_id -g -s /block/sda
360080e500017ff06000004054c47bd4a
[root@ractest2 ~] scsi_id -g -s /block/sdb
360080e500017fdd8000004c74c6344ef
[root@ractest2 ~] scsi_id -g -s /block/sdc
360080e500017ff060000044f4c63446e
[root@ractest1 ~] scsi_id -g -s /block/sdd
360080e500017ff06000004054c47bd4a
[root@ractest1 ~] scsi_id -g -s /block/sde
360080e500017fdd8000004c74c6344ef
[root@ractest1 ~] scsi_id -g -s /block/sdf
360080e500017ff060000044f4c63446e
能過對比,可以看到 sda 與 sdd,sdb 與 sde,sdc 與 sdf 是對應(yīng)用的,所以我們啟用 udev,通過綁定 id 來規(guī)避這個問題!
[root@ractest1 ~]# cd /etc/udev/rules.d/
[root@ractest1 rules.d]# ls -a
. 50-udev.rules 60-pcmcia.rules 61-uinput-wacom.rules 90-hal.rules
.. 51-hotplug.rules 60-raw.rules 85-pcscd_ccid.rules 95-pam-console.rules
05-udev-early.rules 60-libsane.rules 60-wacom.rules 90-alsa.rules 98-kexec.rules
40-multipath.rules 60-net.rules 61-uinput-stddev.rules 90-dm.rules bluetooth.rules
[root@ractest1 rules.d]# vi 60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
# ACTION== add , KERNEL== sda , RUN+= /bin/raw /dev/raw/raw1 %N
# to bind /dev/raw/raw1 to /dev/sda, or
# ACTION== add , ENV{MAJOR}== 8 , ENV{MINOR}== 1 , RUN+= /bin/raw /dev/raw/raw2 %M %m
# to bind /dev/raw/raw2 to the device with major 8, minor 1.
ACTION== add , KERNEL== sd*1 , PROGRAM== /sbin/scsi_id -g -u -s %p , RESULT== 360080e500017ff060000044f4c63446e , RUN+= /bin/raw /dev/raw/raw1 %N
ACTION== add , KERNEL== sd*1 , PROGRAM== /sbin/scsi_id -g -u -s %p , RESULT== 360080e500017fdd8000004c74c6344ef , RUN+= /bin/raw /dev/raw/raw2 %N
ACTION== add , KERNEL== sd*1 , PROGRAM== /sbin/scsi_id -g -u -s %p , RESULT== 360080e500017ff06000004054c47bd4a , RUN+= /bin/raw /dev/raw/raw3 %N
KERNEL== raw[1-3] , OWNER= oracle , GROUP= dba , MODE= 660
[root@ractest1 rules.d]# start_udev
Starting udev: [ OK ]
[root@ractest1 rules.d]#
[root@ractest1 rules.d]# raw -qa
/dev/raw/raw1: bound to major 8, minor 81
/dev/raw/raw2: bound to major 8, minor 65
/dev/raw/raw3: bound to major 8, minor 49
同理,在另一臺機,也進行同樣的操作。
經(jīng)過如上操作后,所有問題都解決了,不管怎么重啟都不會有問題!
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“l(fā)inux 系統(tǒng)如何解決重啟盤符錯亂問題”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
向 AI 問一下細節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!