7.5.11 リザーブを解放しないサーバに対処する(共有ディスクのSCSIリザーブをする場合)
次に示す事象が発生した場合,リザーブが解放されていません。
-
待機サーバが未起動の場合など,系切り替えできない状態で実行系の系障害が発生した
-
実行サーバが稼働したままOSをシャットダウンした
-
系障害後に系切り替えをしたことがあるサーバの停止時に,メッセージKAMN728-Wが出力された
このため,サーバを再起動する前に,リザーブを手動で解除する必要があります。リザーブを解除しないでサーバを再起動すると,メッセージKAMN725-Wが出力されてサーバの起動に失敗します。
リザーブを手動で解除する手順を次に示します。
-
系障害となった実行系のサーバが停止しているか確認する。
停止していなければ,サーバの停止,OSのシャットダウン,またはマシンの電源断をします。
-
「7.5.12 共有ディスクのSCSIリザーブの解除手順」を参照し,リザーブを解除する。
ただし,手順1.でのメッセージKAMN725-Wで出力されるキーとの比較は実施不要です。
また,各手順で指定するキー,およびデバイス名には,メッセージKAMN725-Wに出力された値ではなく,次の値を指定してください。
-
キー:手順1.の実行結果として出力された「Key=0xn」の「0xn」
手順1.の実行結果として「PR generation=0xnn, there is NO reservation held」が出力されたデバイス名に対しては,手順2.以降は実行不要です。
-
デバイス名:サーバ対応の環境設定のscsi_deviceオペランド,およびdmmp_deviceオペランド指定値
各オペランドにデバイス名を複数指定している場合は,指定値ごとに手順1.から手順4.までを実施します。
-
sg_persistコマンドを使用した,リザーブの解除をするシェルの例を次に示します。
次のリザーブを解除します。
-
/dev/disk/by-id/scsi-360060e8010462fe004f2b6ae00000001
-
/dev/disk/by-id/scsi-360060e8010462fe004f2b6ae00000002
-
/dev/disk/by-id/scsi-360060e8010462fe004f2b6ae00000003
#!/bin/sh DEV_LIST="/dev/disk/by-id/scsi-360060e8010462fe004f2b6ae00000001 /dev/disk/by-id/scsi-360060e8010462fe004f2b6ae00000002 /dev/disk/by-id/scsi-360060e8010462fe004f2b6ae00000003" KEY="0x01" for DESTDEV in ${DEV_LIST} do echo "It processes ${DESTDEV} device." echo "execute register." /usr/bin/sg_persist --out --no-inquiry --register --param-sark=${KEY} --device=${DESTDEV} echo "execute clear." /usr/bin/sg_persist --out --no-inquiry --clear --param-rk=${KEY} --device=${DESTDEV} echo "execute read-reservation." /usr/bin/sg_persist --in --no-inquiry --read-reservation --device=${DESTDEV} echo "execute read-keys." /usr/bin/sg_persist --in --no-inquiry --read-keys --device=${DESTDEV} echo "" done exit 0