ASM翻訳シリーズ第6弾:ASMLIBが管理するディスクを対応するデバイス名にマッピングする方法について
6515 ワード
ASM翻訳シリーズガイド: ASM翻訳シリーズ第6弾:asmlibが管理するディスクを対応するデバイス名 にマッピングする方法についての高度な知識 ASM翻訳シリーズ第五弾:高級知識ASMメタデータ概要 ASM翻訳シリーズ第4弾:高度な知識kfedメタデータエディタ ASM翻訳シリーズ第3弾:ASM diskの基礎知識 ASM翻訳シリーズ第2弾:ASM 12 Cバージョン新特性 ASM翻訳シリーズ第1弾:基礎知識ASM AU,Extents,MirroringとFailgroups ASMLIBを使用してASMディスクを管理する場合、デバイスのパス情報はgv$asm_には表示されません.diskビューpath列に表示されます.ASMLIB Support Tools 2.1以降のバージョン(oracleasm-support-2.1*のrpmパッケージ)を使用している場合は、rootユーザーが「oracleasm querydisk-p」を実行してデバイスパス情報を取得できます.
また、次のshellスクリプトでも表示できます.
上記のスクリプトは、オペレーティングシステム内のASMまたはGIのownerユーザーによって実行されます.もちろん、kfedバイナリファイルはすでに使用可能であり、関連するPATH環境変数でなければなりません.以上のコマンドを実行してroot特権ユーザーを使用する必要はありません.
ASMLIBディスクが削除された場合、/dev/oracleasm/disksでは関連するディスクが表示されません.以下のスクリプトでデバイスがASMと関係があるかどうかを確認できます(かつて関係がありました).
上のスクリプトは、kfedがPATHパスにあるほか、スクリプトはスーパーユーザーで実行する必要があります.もちろん、/dev/dm*、/dev/mapperの下のデバイス、さらに/dev/の下のすべてのデバイスをスキャンすることもできますが、これは効率的ではありません.
最近、kfedを使用して上記の操作で実現できる機能を達成する方法について質問があります.以下は解決策です.
原文:How to map an ASMLIB disk to a device name作者:Bane Radulovic訳者:趙恩東、沃趣科学技術データベース技術エンジニア、主に会社の製品の実施、テスト、メンテナンス及び最適化に参与する.審査学校:魏興華責任編:金の曙光
# ls -l /dev/oracleasm/disks
total 0
brw-rw---- 1 grid asmadmin 8, 5 May 2 12:00 DISK1
brw-rw---- 1 grid asmadmin 8, 6 May 2 12:00 DISK2
brw-rw---- 1 grid asmadmin 8, 7 May 2 12:00 DISK3
...
# oracleasm querydisk -p DISK1
Disk "DISK1" is a valid ASM disk
/dev/sda5: LABEL="DISK1" TYPE="oracleasm"
: asmlib ASM ,asmlib 、 , “ ” , linux udev , ,ASM INSTANCE ASMLIB asm disk, , Linux Kernel , ASMLIB ,ASMLIB , bug。 , RHEL/OEL 5 ,udev , udev ASMLIB。
また、次のshellスクリプトでも表示できます.
#!/bin/bash
for asmlibdisk in `ls /dev/oracleasm/disks/*`
do
echo "ASMLIB disk name: $asmlibdisk"
asmdisk=`kfed read $asmlibdisk | grep dskname | tr -s ' '| cut -f2 -d' '`
echo "ASM disk name: $asmdisk"
majorminor=`ls -l $asmlibdisk | tr -s ' ' | cut -f5,6 -d' '`
device=`ls -l /dev | tr -s ' ' | grep "$majorminor" | cut -f10 -d' '`
echo "Device path: /dev/$device"
done
上記のスクリプトは、オペレーティングシステム内のASMまたはGIのownerユーザーによって実行されます.もちろん、kfedバイナリファイルはすでに使用可能であり、関連するPATH環境変数でなければなりません.以上のコマンドを実行してroot特権ユーザーを使用する必要はありません.
ASMLIBディスクが削除された場合、/dev/oracleasm/disksでは関連するディスクが表示されません.以下のスクリプトでデバイスがASMと関係があるかどうかを確認できます(かつて関係がありました).
#!/bin/bash
for device in `ls /dev/sd*`
do
asmdisk=`kfed read $device|grep ORCL|tr -s ' '|cut -f2 -d' '|cut -c1-4`
if [ "$asmdisk" = "ORCL" ]
then
echo "Disk device $device may be an ASM disk"
fi
done
: asmlib , udev ,asmlib , kfdhdb.driver.provstr asmlib , :ORCLDISK+[ASM disk name], asmlib ,kfdhdb.driver.provstr ORCLDISK。
上のスクリプトは、kfedがPATHパスにあるほか、スクリプトはスーパーユーザーで実行する必要があります.もちろん、/dev/dm*、/dev/mapperの下のデバイス、さらに/dev/の下のすべてのデバイスをスキャンすることもできますが、これは効率的ではありません.
最近、kfedを使用して上記の操作で実現できる機能を達成する方法について質問があります.以下は解決策です.
#!/bin/bash
for device in `ls /dev/sd*`
do
asmdisk=`od -c $device | head | grep 0000040 | tr -d ' ' | cut -c8-11`
if [ "$asmdisk" = "ORCL" ]
then
echo "Disk device $device may be an ASM disk"
fi
done
原文:How to map an ASMLIB disk to a device name作者:Bane Radulovic訳者:趙恩東、沃趣科学技術データベース技術エンジニア、主に会社の製品の実施、テスト、メンテナンス及び最適化に参与する.審査学校:魏興華責任編:金の曙光