Linux系統固定磁盤標識符之wwid和uuid
背景描述,在Linux系統中,如果添加了新的SCSI磁盤或者映射SAN存儲LUN操作,重啟操作系統之後會出現磁盤標識符(sd*)錯亂的情況。
例如之前添加的SAN存儲LUN的磁盤標識符為/dev/sdd,重啟之後發現變成/dev/sdh,特別是oracle RAC環境下我們是不希望出現這樣的情況的。
解決這個問題之前,需要先搞清楚Linux系統中的wwid和uuid號。
一、wwid
根據SCSI標準,每個SCSI磁盤都有一個WWID,類似於網卡的MAC地址,要求是獨一無二。
通過WWID標示SCSI磁盤就可以保證磁盤路徑永久不變,Linux系統上/dev/disk/by-id目錄包含每個SCSI磁盤WWID訪問路徑。
查看磁盤設備wwid方法1:
[[email protected] /]# ll /dev/disk/by-id/
total 0
lrwxrwxrwx. 1 root root 10 May 28 2017 dm-name-vg_rac01node01-LogVol01 -> ../../dm-0
lrwxrwxrwx. 1 root root 10 May 28 2017 dm-uuid-LVM-YWDtaD547sWxXQ2m9yF3Vl7gd42z61gqjQSRxV0GPavZDlE2D1dh26aPin6V59mz -> ../../dm-0
lrwxrwxrwx. 1 root root 9 May 27 19:01 scsi-360060160e2b0420004a53e678d42e711 -> ../../sdg
lrwxrwxrwx. 1 root root 9 May 27 19:01 scsi-360060160e2b04200c687b330c741e711 -> ../../sdh
lrwxrwxrwx. 1 root root 9 May 28 2017 scsi-3600605b00a8043c020b6bdd53057904d -> ../../sda
lrwxrwxrwx. 1 root root 10 May 28 2017 scsi-3600605b00a8043c020b6bdd53057904d-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 May 28 2017 scsi-3600605b00a8043c020b6bdd53057904d-part2 -> ../../sda2
查看磁盤設備wwid方法2:
[[email protected] Packages]# scsi_id --whitelist /dev/sda
3600605b00a8043c020b6bdd53057904d
[[email protected] Packages]# scsi_id --whitelist /dev/sdb
360060160e2b04200c687b330c741e711
RHEL6使用如上命令,在RHEL5中使用scsi_id --whitelist /dev/sd*
重啟系統之後,如果要使磁盤標識符保持不變,需要對磁盤標識符和wwid做一個綁定,如下:
=======================================================================================
二、uuid
UUID是有文件系統在創建時候生成的,用來標記文件系統,類似WWID一樣也是獨一無二的。
因此使用UUID來標示SCSI磁盤,也能保證路徑是永久不變的。Linux上/dev/disk/by-uuid可以看到每個已經創建文件系統的磁盤設備以及與/dev/sd*之間的映射關系。
查看文件系統uuid:
[[email protected] /]# ll /dev/disk/by-uuid/
total 0
lrwxrwxrwx. 1 root root 10 May 28 2017 3777-9E7C -> ../../sda1
lrwxrwxrwx. 1 root root 10 May 28 2017 414563cf-af5d-467a-bca9-81b8dad6e17f -> ../../dm-0
lrwxrwxrwx. 1 root root 10 May 28 2017 948ab5bc-f796-4f74-8cd5-84b6474d79ae -> ../../dm-1
lrwxrwxrwx. 1 root root 10 May 28 2017 9cbb7f73-582c-47e4-99d7-1c79fae90efc -> ../../sda2
重啟系統之後,如果要使掛載的掛載的目錄和文件系統綁定關系不變,在/etc/fstab裏面應該使用uuid來標識,如下:
[[email protected] /]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Sun May 28 01:13:01 2017
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_rac01node01-LogVol01 / ext4 defaults 1 1
UUID=9cbb7f73-582c-47e4-99d7-1c79fae90efc /boot ext4 defaults 1 2
UUID=3777-9E7C /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/vg_rac01node01-LogVol00 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
Linux系統固定磁盤標識符之wwid和uuid