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

  • 相关阅读:
    SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
    谷歌浏览器扩展程序manifest.json参数详解
    获取天气api
    UVA 10385 Duathlon
    UVA 10668 Expanding Rods
    UVALIVE 3891 The Teacher's Side of Math
    UVA 11149 Power of Matrix
    UVA 10655 Contemplation! Algebra
    UVA 11210 Chinese Mahjong
    UVA 11384 Help is needed for Dexter
  • 原文地址:https://www.cnblogs.com/ctypyb2002/p/9793100.html
Copyright © 2011-2022 走看看