ページの先頭行へ戻る
PRIMECLUSTER Global Disk Services  説明書 4.3
FUJITSU Software

D.1.11 ファイルシステムに関する異常

ファイルシステムに関する異常について、以下に該当する場合は、それぞれに記載されている対処を行ってください。

(1) ローカルボリューム上のファイルシステムを修復したい。

説明

ローカルクラスのボリュームに作成されたファイルシステムを fsck(8) コマンドで修復する手順を説明します。

xfs_repair(8) コマンドで xfs ファイルシステムの修復を行う場合も、同様の手順で実行できます。

対処

ローカルボリューム上のファイルシステムの場合、fsck(8) コマンドの実行方法は、下記の 3 点を除いて、物理スライスに作成されたファイルシステムの場合と同様です。

以下では、クラス名が Class1、ボリューム名が Volume1、マウントポイントが /mount_point、ファイルシステムタイプが ext3 の場合の手順を例として示します。

  1. 対象のファイルシステムを使用しているアプリケーションを停止します。

  2. 対象のファイルシステムがマウントされている場合は、アンマウントします。

    # umount /mount_point
  3. 対象のボリュームを起動します。

    すでに起動されている場合は、本手順を実行する必要はありません。

    # sdxvolume -N -c Class1 -v Volume1
  4. fsck(8) コマンドを実行します。

    fsck(8) コマンドでは、対象のボリュームのデバイス特殊ファイルを指定します。

    # fsck -t ext3 /dev/sfdsk/Class1/dsk/Volume1

    参照

    fsck(8) コマンドのオプションなどの詳細については、fsck(8) のマニュアルページを参照してください。

(2) 共用ボリューム上のファイルシステムを修復したい。

説明

共用クラスのボリュームに作成されたファイルシステムを fsck(8) コマンドで修復する手順を説明します。

xfs_repair(8) コマンドで xfs ファイルシステムの修復を行う場合も、同様の手順で実行できます。

対処

共用ボリューム上のファイルシステムの場合、fsck(8) コマンドの実行方法は、下記の3点を除いて、物理スライスに作成されたファイルシステムの場合と同様です。

以下では、クラス名が Class1、ボリューム名が Volume1、マウントポイントが /mount_point、ファイルシステムタイプが ext3 の場合の手順を例として示します。

以下の 2 つの場合で手順が異なります。

  1. クラスがクラスタアプリケーションに登録されていない場合

  2. クラスがクラスタアプリケーションに登録されている場合

a. クラスがクラスタアプリケーションに登録されていない場合
  1. クラススコープ内の全ノードで、対象のファイルシステムを使用しているアプリケーションを停止します。

  2. クラススコープ内の全ノードで、対象のファイルシステムをアンマウントします。

    # umount /mount_point
  3. クラススコープ内の全ノードで、対象のボリュームを停止します。

    クラススコープ内の任意の 1 ノードにログインして sdxvolume -F -e allnodes コマンドを実行します。

    # sdxvolume -F -c Class1 -v Volume1 -e allnodes
  4. クラススコープ内の任意の 1 ノードで、対象のボリュームを起動します。

    # sdxvolume -N -c Class1 -v Volume1
  5. 手順 4. でボリュームを起動したノードで、fsck(8) コマンドを実行します。

    fsck(8) コマンドでは、対象のボリュームのデバイス特殊ファイルを指定します。

    # fsck -t ext3 /dev/sfdsk/Class1/dsk/Volume1

    参照

    fsck(8) コマンドのオプションなどの詳細については、fsck(8) のマニュアルページを参照してください。

b. クラスがクラスタアプリケーションに登録されている場合
  1. 対象のクラスを使用しているクラスタアプリケーションを停止します。

    参照

    クラスタアプリケーションの停止方法については、「PRIMECLUSTER 導入運用手引書」を参照してください。

  2. クラススコープ内の任意の1ノードで、対象のボリュームを起動します。

    # sdxvolume -N -c Class1 -v Volume1
  3. 手順2.でボリュームを起動したノードで、fsck(8) コマンドを実行します。

    fsck(8) コマンドでは、対象のボリュームのデバイス特殊ファイルを指定します。

    # fsck -t ext3 /dev/sfdsk/Class1/dsk/Volume1

    参照

    fsck(8) コマンドのオプションなどの詳細については、fsck(8) のマニュアルページを参照してください。

  4. 手順2.でボリュームを起動したノードで、対象のボリュームを停止します。

    # sdxvolume -F -c Class1 -v Volume1

(3) ルートボリューム上のファイルシステムを修復したい。

説明

ルートクラスのボリュームに作成されたファイルシステムを fsck(8) コマンドで修復する手順を説明します。

xfs_repair(8) コマンドで xfs ファイルシステムの修復を行う場合も、同様の手順で実行できます。

対処

a. / (ルート)、/usr、/var 以外のファイルシステムの場合

/ (ルート)、 /usr、 /var 以外のファイルシステムの場合、ローカルクラスのボリュームに作成されたファイルシステムの場合と手順は同じです。

手順の詳細については、「(1) ローカルボリューム上のファイルシステムを修復したい。」を参照してください。

b. / (ルート)、/usr、/var ファイルシステムの場合

/ (ルート)、 /usr、 /var ファイルシステムはシステム動作中にアンマウントできないため、fsck(8) コマンドを実行するためには、CD-ROM 装置からブートする必要があります。CD-ROM 装置からブートして、ミラーリングしている物理スライスのうちの 1 つに対して fsck(8) コマンドを実行し、その物理スライスのデータを他の物理スライスにコピーします。

本手順に従って、ルートクラスのボリュームに作成されたファイルシステムを修復するためには、システムディスクをルートクラスに登録したときに以下の項目を確認し、紙などに記録しておく必要があります。

  • システムボリュームの物理ディスク情報

  • システムボリュームのスライス番号

詳細は、「6.5.5 物理ディスク情報とスライス番号の確認」を参照してください。

  1. サーバの電源を投入し、OS のインストール CD を CD-ROM ドライブに挿入します。

  2. EFI ブートマネージャのブートオプション選択画面に表示されるブートデバイスの中から、CD-ROM 装置を選択し、レスキューモードで起動します。起動方法の詳細は、OS のマニュアルを参照してください。

  3. / (ルート)、/usr、/varファイルシステムのうち、修復したいファイルシステムの物理スライス名を確認します。

    grep コマンドの引数には、「6.5.5 物理ディスク情報とスライス番号の確認」で確認した物理ディスク情報を指定します。

    • RHEL4 または RHEL5 の場合

      # ls -l /sys/block/sd*/device | grep 0000:06:02.0 | grep 0:0:0
                                           (*1)                (*1) 
      lrwxrwxrwx  1 root root 0 Jun  1  2005 /sys/block/sda/device ->\
                                                        (*2) 
      ../../devices/pci0000:02/0000:02:1f.0/0000:06:02.0/host2/\
      target0:0:0/0:0:0:0
      
      # ls -l /sys/block/sd*/device | grep 0000:06:02:0 | grep 0:2:0
                                           (*1)                (*1) 
      lrwxrwxrwx  1 root root 0 Jun  1  2005 /sys/block/sdb/device ->\
                                                        (*2) 
      ../../devices/pci0000:02/0000:02:1f.0/0000:06:02.0/host2/\
      target0:0:2/0:0:2:0
      (*1) 物理ディスク情報
      (*2) 物理ディスク名
    • RHEL6 または RHEL7 の場合

      # ls -l /sys/block/sd* | grep 0000:06:02.0 | grep 0:0:0
                                    (*1)                (*1) 
      lrwxrwxrwx  1 root root 0 Jun  1  2005 /sys/block/sda ->\
                                                        (*2) 
      ../devices/pci0000:02/0000:02:1f.0/0000:06:02.0/host2/\
      target0:0:0/0:0:0:0/block/sda
      
      # ls -l /sys/block/sd* | grep 0000:06:02:0 | grep 0:2:0
                                    (*1)                (*1) 
      lrwxrwxrwx  1 root root 0 Jun  1  2005 /sys/block/sdb ->\
                                                        (*2)
      ../../devices/pci0000:02/0000:02:1f.0/0000:06:02.0/host2/\
      target0:0:2/0:0:2:0/block/sdb
      (*1) 物理ディスク情報
      (*2) 物理ディスク名

    この例では、物理ディスク名は、sda、sdb です。

    物理ディスク名と、「6.5.5 物理ディスク情報とスライス番号の確認」で確認したスライス番号を組み合わせることで、物理スライス名が分かります。

    この例では、物理スライス名は、下記のとおりです。

    用途

    物理スライス名

    /

    sda1

    sdb1

    /var

    sda2

    sdb2

    /usr

    sda3

    sdb3

  4. 一方の物理スライスに対し、fsck(8) コマンドを実行してファイルシステムを修復します。

    この例では、手順 3.で確認した、ルートファイルシステム (/) のスライスに対して fsck(8) コマンドを実行します。

    # fsck -t ext3 /dev/sda1

    修復できない場合は、もう一方の物理スライスに対してfsck(8) コマンドを実行してください。

    参照

    fsck(8) コマンドのオプションなどの詳細については、fsck(8) のマニュアルページを参照してください。

  5. 手順 4.でファイルシステムを修復した物理スライスから、他方の物理スライスにデータをコピーします。

    # dd if=/dev/sda1 of=/dev/sdb1 bs=1M

    注意

    ミラーリングの多重度が n の場合、ミラーリングされている n 個のスライスのうち、手順 4.で fsck(8) コマンドを実行したスライス以外の n-1 個のすべてのスライスに対しデータをコピーします。

    参照

    dd(1) コマンドのマニュアルページを参照し、適切なオプションを指定してください。

  6. レスキューモードを終了し、システムを起動します。

    # exit