How to use udev for Oracle ASM in Oracle Linux 6
阿新 • • 發佈:2019-02-20
但是在OEL6或者RHEL6中,這一切都有所變化。
主要的變化是: 1. scsi_id的命令語法發生了變化,scsi_id -g -u -s這樣的命令不再有效。 2. udevtest命令已經沒有了,整合到了udevadm中。 可以參考Redhat的官方文件(這個文件中本身有一些錯誤,在udev rules中漏了–device=,正確的方法參看下面的第3步): 步驟如下: 1. 編輯/etc/scsi_id.config檔案,如果該檔案不存在,則建立該檔案,新增如下行:
options=--whitelisted --replace-whitespace |
備註:在我的測試中,此步驟可以省略。
2. 獲取需要繫結為ASM Disk的磁碟uuid,比如我們要使用/dev/sdc和/dev/sdd作為ASM磁碟,那麼:
# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc 1ATA_VBOX_HARDDISK_VB36a9e548-1838194a # scsi_id --whitelisted --replace-whitespace --device=/dev/sdd 1ATA_VBOX_HARDDISK_VB9808fc7f-cdf35030 |
3. 編寫udev rules檔案,PROGRAM中寫scsi_id命令,RESULT中寫上面命令中返回的uuid,這跟OEL5中沒什麼區別,只是scsi_id命令的語法發生變化了。
vi /etc/udev/rules.d/99-oracle-asmdevices.rules |
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB36a9e548-1838194a", NAME="asm-disk1", OWNER="grid", GROUP="dba", MODE="0660" KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB9808fc7f-cdf35030", NAME="asm-disk2", OWNER="grid", GROUP="dba", MODE="0660" |
4. 用udevadm進行測試,注意udevadm命令不接受/dev/sdc這樣的掛載裝置名,必須是使用/sys/block/sdc這樣的原始裝置名。
udevadm test /sys/block/sdc udevadm info --query=all --path=/sys/block/sdc udevadm info --query=all --name=asm-disk1 |
在顯示中,有類似如下輸出,表示測試正確,/dev/sdc裝置在udev啟動以後將會繫結為/dev/asm-disk1:
udevadm_test: UDEV_LOG=6 udevadm_test: DEVPATH=/devices/pci0000:00/0000:00:0d.0/host4/target4:0:0/4:0:0:0/block/sdc udevadm_test: MAJOR=8 udevadm_test: MINOR=32 udevadm_test: DEVNAME=/dev/asm-disk1 udevadm_test: DEVTYPE=disk udevadm_test: ACTION=add udevadm_test: SUBSYSTEM=block |
5. 啟動udev
# /sbin/start_udev |
6. 檢查裝置是否正確繫結
# ls -l /dev/asm* brw-rw---- 1 grid dba 8, 32 Oct 26 21:24 /dev/asm-disk1 brw-rw---- 1 grid dba 8, 48 Oct 26 21:17 /dev/asm-disk2 |