[Linux]DataKeeper(DataReplication)リソース上のファイルシステムでファイルシステム破損が発生した場合の修復手順

DataKeeper(DataReplication)リソースを利用している環境で、外部要因に起因してノードの異常終了等が行われるとファイルシステム破損が発生する事があります。そのような場合は以下の手順にてファイルシステムの修復作業を実施してください。

DataKeeperリソースは OS 付属のソフトウェア RAID のミラーリング(RAID1)機能を利用してサーバ間のデータ同期を行う仕様から、ソフトウェア RAID のデバイス /dev/mdX(Xは数字)を利用するデバイスとして用いておりますので、/dev/mdX に対してファイルシステム修復する必要があります。

なお、ファイルシステムリソース起動時に自動的に fsck が実行(ext3,ext4の場合)されますので、この処理で修復が完了できていれば対処は不要です。
以下の手順はファイルシステムの修復となりますが、データのバックアップが可能な状態であれば、作業前に必ずバックアップを取得してください。

【修復手順】
ファイルシステム破損が発生したノードで作業を実施します。

(1)破損したファイルシステムが利用しているDataKeeperリソースのデバイス(MDデバイス)を確認します。

確認方法(例)
■DataKeeperリソースが1つの場合
cat /proc/mdstat と実行し、左側に出力される mdX をご確認ください。

■DataKeeperリソースが複数ある場合
(1-1)以下のコマンドを実行し、破損してリソース起動のできない(OSF)ファイルシステムリソースを特定します。
 
# /opt/bin/lcdstatus -e 

 <例> 
 # lcdstatus -e 
 BACKUP  TAG         ID       STATE   PRIO PRIMARY 
 ------  /lkdata      /lkdata     OSF     1  lk023  ← 対象リソース 
 ------  datarep-lkdata   /dev/sdb1    ISP     1  lk023 

 
(1-2)特定したファイルシステムリソースの名前を利用して以下のコマンドで bitmap ファイルを特定します。 
 
# /opt/bin/lcdstatus -r <ファイルシステムリソース名> | grep bitmap

 <例>  
 # lcdstatus -r /lkdata | grep bitmap 
   info=0none/dev/sdb1type:14193280DEVNAME0/opt/LifeKeeper/bitmap__lkdata256M 

 → bitmap__lkdata がbitmapファイル名です。 

(1-3)以下のコマンドの結果から特定した bitmap ファイル名と紐づく /dev/mdX のデバイスを特定します。

 # cat /proc/mdstat 
 または 
 # mdadm -D -s 

 <例(cat /proc/mdstat)> 
 # cat /proc/mdstat 
 Personalities : [raid1] 
 md1 : active raid1 sdc1[0] 
    1048576 blocks super non-persistent [2/1] [U_]
    bitmap: 2/2 pages [8KB], 256KB chunk, file: /opt/LifeKeeper/bitmap__lkdata2
 
 md0 : active raid1 sdb1[0]
    4193280 blocks super non-persistent [2/1] [U_]
    bitmap: 8/8 pages [32KB], 256KB chunk, file: /opt/LifeKeeper/bitmap__lkdata

 →md0 (/dev/md0)が対象のデバイスです。
 <例(mdadm -D -s)>
 # mdadm -D -s
 ARRAY /dev/md0 metadata= bitmap=/opt/LifeKeeper/bitmap__lkdata
 ARRAY /dev/md1 metadata= bitmap=/opt/LifeKeeper/bitmap__lkdata2

 → /dev/md0 が対象デバイスです。

(2)該当のDataKeeperリソースを Pause とし同期処理のみ停止します。(Datakeeperリソースは停止しません)

◎操作方法
・LifeKeeper GUI
該当のDataKeeperリソースをマウスで選択し、右クリック後、コンテキストメニューから [Pause Mirror]をクリックします。

・コマンドライン
以下のようにコマンドを実行します。

# /opt/bin/mirror_action [DataKeeperリソース名] pause

 <例>
datarep-lkdata というリソースであれば、以下のように実行します。

# /opt/bin/mirror_action datarep-lkdata pause

(3)手順(1)で確認した MD デバイスに対してファイルシステムの修復を実行します。

注意
MDデバイスを構成しているディスク(/dev/sd* 等)に対して修復操作は実行しないでください。

(4)DataKeeper の全同期を実行します。

◎操作方法
コマンドラインのみの操作です。

# /opt/bin/mirror_action [DataKeeperリソース名] fullresync [ソースホスト名] [ターゲットホスト名]

 <例>
datarep-lkdata というリソースを、ServerAからServerBへ全同期を実行するには以下のように実行します。

# /opt/bin/mirror_action datarep-lkdata fullresync ServerA ServerB

(5)ファイルシステムの修復が完了しましたら、ファイルシステムリソースを起動させます。

◎操作方法
・LifeKeeper GUI
起動に失敗しているファイルシステムリソースを選択し、右クリック後、コンテキストメニューから [InService]をクリックします。

・コマンドライン
起動に失敗しているファイルシステムリソースを以下のコマンドで起動します。

# /opt/bin/perform_action -a restore -t [ファイルシステムリソース名]

※DataKeeper(DataReplication)の同期が完了する前に起動させる事も可能です。


改訂履歴
[公開日:2019年10月11日]

return top