• 如何用udev for asm in oracle linux 6


    大部分在网上可以找到的文档都是在RHEL5或者OEL5中设置udev,udev对于Linux而言最大的作用是防止操作系统重新启动以后,作为ASM磁盘使用的盘符发生变化。
    比如说Tim Hall的文章:UDEV SCSI Rules Configuration for ASM in Oracle Linux 5
    比如说Maclean的文章:利用UDEV服务解决RAC ASM存储设备名

    但是在OEL6或者RHEL6中,这一切都有所变化。

    主要的变化是:
    1. scsi_id的命令语法发生了变化,scsi_id -g -u -s这样的命令不再有效。
    2. udevtest命令已经没有了,整合到了udevadm中。

    可以参考Redhat的官方文档(这个文档中本身有一些错误,在udev rules中漏了–device=,正确的方法参看下面的第3步):
    Configuring persistent storage in Red Hat Enterprise Linux 6

    步骤如下:
    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

  • 相关阅读:
    CocoaPods 的安装和使用介绍
    C 语言宏快速入门
    C中的预编译宏定义
    __block 与 __weak的区别理解
    Xcode7 项目转 Xcode6 时 出现问题
    css margin 参数
    第三方框架 INTULocationManager 定位的一些方法
    ios 定位 监听是否跨入某个指定的区域
    ios 指南针
    ios 定位 航向检测
  • 原文地址:https://www.cnblogs.com/hllnj2008/p/4059952.html
Copyright © 2020-2023  润新知