zoukankan      html  css  js  c++  java
  • rhel 6.x 使用 udev scsi rules 配置裸设备

    rhel 6 从内核层级剔除了 asmlib 相关的代码,使用udev来绑定硬件
    如果是 oel 6 ,就使用 asmlib吧
    11gr2可以将ocr,votedisk 放在asm里,不需要额外配置裸设备

    1. 在 /etc/udev/rules.d/99-oracle-asmdevices.rules 配置设备了
    cd /etc/udev/rules.d/
    touch 99-oracle-asmdevices.rules

    #添加记录到/etc/scsi_id.config,如果没有该文件,则手动创建
    echo "options=--whitelisted --replace-whitespace"  >> /etc/scsi_id.config

    2. 将结果复制到 /etc/udev/rules.d/99-oracle-asmdevices.rules 
    没有对sdb进行分区,执行如下shell脚本,
    for i in b ;
    do
    echo "KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`", NAME="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660""      
    done

    对sdb 进行了分区,执行如下shell脚本,
    for i in b1 b2 b3
    do
    echo "KERNEL=="sd$i", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent", RESULT=="`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd${i:0:1}`", NAME="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660""      
    done;

    注意未分区用 $name
    分区用 $parent

    3. vi /etc/udev/rules.d/99-oracle-asmdevices.rules 

    没有对sdb进行分区
    KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"

    如果对裸盘分区的话应该是这个样子
    在 Linux 5下,可以使用如下命令:
    # /sbin/scsi_id -g -u -s /block/sdb/sdb1

    在 Linux 6下,可以使用如下命令:
    # /sbin/scsi_id -g -u /dev/sdb1

    这是分区盘的 99-oracle-asmdevices.rules内容

    KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb1", OWNER="grid", GROUP="asmadmin", MODE="0660"
    KERNEL=="sd?2", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb2", OWNER="grid", GROUP="asmadmin", MODE="0660"
    KERNEL=="sd?3", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb3", OWNER="grid", GROUP="asmadmin", MODE="0660"

    Load updated block device partition tables.

    # /sbin/partprobe /dev/sdb1
    # /sbin/partprobe /dev/sdb2
    # /sbin/partprobe /dev/sdb3

    4. 用udevadm进行测试,注意udevadm命令不接受/dev/sdc这样的挂载设备名,必须是使用/sys/block/sdb这样的原始设备名。

    udevadm test /sys/block/sdb
    udevadm info --query=all --path=/sys/block/sdb
    udevadm info --query=all --name=asm-diskb

    udevadm info --query=all --name=asm-diskb1
    udevadm info --query=all --name=asm-diskb2
    udevadm info --query=all --name=asm-diskb3 

    在显示中,有类似如下输出,表示测试正确,/dev/sdb设备在udev启动以后将会绑定为/dev/asm-diskb:

    udevadm_test: UDEV_LOG=6
    udevadm_test: DEVPATH=/devices/pci0000:00/0000:00:16.0/0000:0b:00.0/host1/target1:0:0/1:0:0:0/block/sdb
    udevadm_test: MAJOR=8
    udevadm_test: MINOR=16
    udevadm_test: DEVNAME=/dev/sdb
    udevadm_test: DEVTYPE=disk
    udevadm_test: ACTION=add
    udevadm_test: SUBSYSTEM=block
     

    5. 启动udev

    #/sbin/udevadm control --reload-rules
    #/sbin/start_udev


    6. 检查设备是否正确绑定

    # ls -l /dev/asm*
    brw-rw---- 1 grid dba 8, 32 Oct 26 21:24 /dev/asm-diskb1
    brw-rw---- 1 grid dba 8, 48 Oct 26 21:17 /dev/asm-diskb2
    brw-rw---- 1 grid dba 8, 48 Oct 26 21:17 /dev/asm-diskb3

  • 相关阅读:
    git 分支建立及合并
    git push 冲突
    Ubuntu 16.04下安装64位谷歌Chrome浏览器
    Nginx+uswgi+Django部署
    Deepin下python安装uwsgi报错: Python.h:没有那个文件或目录
    Deepin系统更新apt-get源
    语义化的理解
    尝试Vue3.0
    Vue3.0响应式实现
    Vue2.0响应式原理以及重写数组方法
  • 原文地址:https://www.cnblogs.com/ctypyb2002/p/9793100.html
Copyright © 2011-2022 走看看