Oracle ASM用のデバイスの永続性の手動構成

Oracle ASM用のデバイス・パスの永続性を手動で作成するには、次のタスクを完了します

  1. 既存のシステム(単一インスタンスまたはクラスタ)で、現在のマウント・パスを取得するには、サーバー上のストレージ・デバイスでコマンドscsi_id (/sbin/scsi_id)を実行し、一意のデバイス識別子を取得します。-s引数を付けてコマンドscsi_idを実行する場合、指定するデバイス・パスおよび名前は、/sys/block/deviceを参照するときのsysfsディレクトリ/sysに対する相対パスである必要があります(/block/deviceなど)。

    次に例を示します。

    # /sbin/scsi_id -g -s /block/sdb/sdb1
    360a98000686f6959684a453333524174
     
    # /sbin/scsi_id -g -s /block/sde/sde1
    360a98000686f6959684a453333524179

    必要時に指定できるように、一意のSCSI識別子を記録します。

    注意:

    コマンドscsi_idは、どのノードでコマンドが実行されるかにかかわらず、指定されたデバイスで同じデバイス識別子値を戻す必要があります。

  2. /etc/scsi_id.configファイルを編集し、options=-gを追加することで、SCSIデバイスを信頼できるデバイス(ホワイト・リスト)として構成します。次に例を示します。

    # cat > /etc/scsi_id.config
    vendor="ATA",options=-p 0x80
    options=-g
  3. テキスト・エディタを使用してOracle ASMデバイス用のUDEVルール・ファイルを作成し、インストール所有者と、メンバーがOracle Grid Infrastructureソフトウェアの管理者である、OSASMグループを指定したオペレーティング・システム・グループの権限を0660に設定します。たとえば、Oracle Linuxで、ロール・ベースの構成rules.dファイル(インストール所有者がgrid、OSASMグループがasmadmin)を作成するには、次のようなコマンドを入力します。

    # vi /etc/udev/rules.d/99-oracle-asmdevices.rules
     
    KERNEL=="sdb1, OWNER="grid", GROUP="asmadmin", MODE="0660", 
    BUS=="scsi", PROGRAM=="/sbin/scsi_id", RESULT=="14f70656e66696c00000000"
    KERNEL=="sdc1", OWNER="grid", GROUP="asmadmin", MODE="0660",
    BUS=="scsi", PROGRAM=="/sbin/scsi_id", RESULT=="14f70656e66696c00000001"
    KERNEL=="sdd1", OWNER="grid", GROUP="asmadmin", MODE="0660",
    BUS=="scsi", PROGRAM=="/sbin/scsi_id", RESULT=="14f70656e66696c00000002"
  4. クラスタ化されたシステムで、rules.dファイルを、クラスタ上の他のすべてのノードにコピーします。次に例を示します。

    # scp 99-oracle-asmdevices.rules root@node2:/etc/udev/rules.d/99-oracle-asmdevices.rules
  5. rootとして、構文/sbin/partprobe devicenameを使用してpartprobeコマンドを実行します。

    次に例を示します。
    # /sbin/partprobe /dev/sdc1
    # /sbin/partprobe /dev/sdd1
    # /sbin/partprobe /dev/sde1
    # /sbin/partprobe /dev/sdf1
  6. コマンドudevtest(/sbin/udevtest)を実行して、作成したUDEVルール構成をテストします。出力には、デバイスが使用可能であり、ルールが予想どおり適用されていることが示されます。たとえば、/dev/ssd1の場合、次のようになります。

    # udevtest /block/sdd/sdd1
    main: looking at device '/block/sdd/sdd1' from subsystem 'block'
    udev_rules_get_name: add symlink
    'disk/by-id/scsi-360a98000686f6959684a453333524174-part1'
    udev_rules_get_name: add symlink
    'disk/by-path/ip-192.168.1.1:3260-iscsi-iqn.1992-08.com.netapp:sn.887085-part1'
    udev_node_mknod: preserve file '/dev/.tmp-8-17', because it has correct dev_t
    run_program: '/lib/udev/vol_id --export /dev/.tmp-8-17'
    run_program: '/lib/udev/vol_id' returned with status 4
    run_program: '/sbin/scsi_id'
    run_program: '/sbin/scsi_id' (stdout) '360a98000686f6959684a453333524174'
    run_program: '/sbin/scsi_id' returned with status 0
    udev_rules_get_name: rule applied, 'sdd1' becomes 'data1'
    udev_device_event: device '/block/sdd/sdd1' validate currently present symlinks
    udev_node_add: creating device node '/dev/data1', major = '8', minor = '17', 
    mode = '0640', uid = '0', gid = '500'
    udev_node_add: creating symlink
    '/dev/disk/by-id/scsi-360a98000686f6959684a453333524174-part1' to '../../data1'
    udev_node_add: creating symlink
    '/dev/disk/by-path/ip-192.168.1.1:3260-iscsi-iqn.1992-08.com.netapp:sn.84187085
    -part1' to '../../data1'
    main: run: 'socket:/org/kernel/udev/monitor'
    main: run: '/lib/udev/udev_run_devd'
    main: run: 'socket:/org/freedesktop/hal/udev_event'
    main: run: '/sbin/pam_console_apply /dev/data1
    /dev/disk/by-id/scsi-360a98000686f6959684a453333524174-part1
    /dev/disk/by-path/ip-192.168.1.1:3260-iscsi-iqn.1992-08.com.netapp:sn.84187085-
    part1'

    出力例では、ルールを適用したことで、OCRデバイス/dev/sdd1/dev/data1にリネームされています。

  7. ルールをロードし、UDEVサービスを再起動します。次に例を示します。

    • Oracle LinuxおよびRed Hat Enterprise Linux

      # udevadm control --reload-rules
    • SUSE Linux Enterprise Server。

      # /etc/init.d boot.udev restart
デバイスの権限および所有権が正しく設定されていることを確認します。