PRIMECLUSTER Global Disk Services 説明書 4.2 (Linux版)
目次 前ページ次ページ

付録F トラブルシューティング> F.1 トラブルへの対処方法

F.1.9 クラスタシステムに関する異常

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

(1) "ERROR: class: cannot operate in cluster environment, ..." というエラーメッセージが出力され、クラス class が操作できない。【Linux2.6】

[説明]

クラスタ制御が起動していないときに作成されたローカルクラスを、そのままクラスタシステムで使用することはできません。クラスタ制御が起動されると、以下のエラーメッセージがシステムログおよびGDSデーモンのログファイルに出力され、そのローカルクラスは操作できなくなります。

ERROR: class: cannot operate in cluster environment, created when cluster control facility not ready

このエラーメッセージが出力されるのは、以下のいずれかの場合です。

[対処]

以下の方法a) または方法b) のいずれかの方法で、ローカルクラスをクラスタシステムで使用できるようにしてください。通常は方法a) で行いますが、ボリュームデータのバックアップ/リストアを避けたい場合には、方法b) で行ってください。

◆方法a) ローカルクラスをクラスタシステムで再作成する方法:

1) ノードをシングルユーザモードで起動します。

2) 必要に応じて、ボリュームのデータをバックアップします。

3) クラスを削除します。

4) ノードをマルチユーザモードに移行して、クラスタ制御を再起動します。

5) 手順3)で削除したクラスやボリュームを再作成します。

6) 必要に応じて、手順2)でバックアップしたボリュームのデータをリストアします。

◆方法b) ローカルクラスをクラスタシステム用に変換する方法:

以下の手順で、ローカルクラスをクラスタシステム用に変換してください。以下では、クラス名が Class1 である場合の例を示します。

1) ノードをシングルユーザモードで起動します。

2) GDSの管理デーモン sdxservd を停止します。

# /etc/opt/FJSVsdx/bin/sdx_stop -S
sfdsk: received shutdown request
sfdsk: volume status log updated successfully, class=0x40000004
#

以下の方法で、sdxservdデーモンが停止したこと(sdxservdデーモンのプロセスに関する情報が表示されないこと)を確認します。

# ps -e | grep sdxservd
#

3) ローカルクラス Class1 の構成データベースを退避します。

# rm -rf /var/opt/FJSVsdx/backup/DB/Class1
# /etc/opt/FJSVsdx/bin/sdxcltrandb -B -c Class1
sdxsavedb: INFO: /dev/sda1: backup succeeded
sdxsavedb: INFO: /dev/sdb1: backup succeeded
sdxsavedb: INFO: Class1: backup succeeded
# cd /var/opt/FJSVsdx/backup/DB/Class1
# ls -l
-rw-r--r--   1 root     other   14164992 May  6 09:00 sda1
-rw-r--r--   1 root     other   14164992 May  6 09:00 sdb1

4) ローカルクラス Class1 の構成データベースをクラスタシステム用に変換します。

# /etc/opt/FJSVsdx/bin/sdxcltrandb -C -c Class1
sdxconvertdb: INFO: /dev/sda1: conversion succeeded
sdxconvertdb: INFO: /dev/sdb1: conversion succeeded
sdxconvertdb: INFO: Class1: conversion succeeded

エラーが発生した場合、7-3) 以降の手順を実施して構成データベースを復元した後、方法a) に従ってローカルクラス Class1 を再作成してください。

5) ノードをマルチユーザモードにすることにより、クラスタ制御を再起動します。


シャットダウン中に以下のメッセージが表示されますが、問題はありません。

SDX:sdxshutdown: INFO: waiting for a response from sdxservd daemon...
SDX:sdxshutdown: ERROR: connection timeout

6) ローカルクラス Class1 の構成データベースが正しく変換できたことを確認します。

# sdxinfo -C -c Class1
OBJ    NAME    TYPE     SCOPE       SPARE
------ ------- -------- ----------- -----
class  Class1  local    Node1           0

SCOPEフィールドにノード識別名が正しく表示されることを確認します。正しく表示されていれば、作業完了です。


SCOPEフィールドの表示が正しくない場合、Class1 の構成データベースは正しく変換できていません。その場合は、7-1) 以降の手順を実施して構成データベースを復元した後、方法a) に従ってローカルクラス Class1 を再作成してください。

7) 手順4) または手順6) でエラーが発生した場合、手順3) で退避した構成データベースを復元します。

7-1) ノードをシングルユーザモードで起動します。

7-2) GDSの管理デーモン sdxservd を停止します。

# /etc/opt/FJSVsdx/bin/sdx_stop -S
sfdsk: received shutdown request
sfdsk: volume status log updated successfully, class=0x40000004
#

以下の方法で、sdxservd デーモンが停止したこと(sdxservd デーモンのプロセスに関する情報が表示されないこと)を確認します。

# ps -e | grep sdxservd
#

7-3) ローカルクラス Class1 の構成データベースを復元します。

# /etc/opt/FJSVsdx/bin/sdxcltrandb -R -c Class1
sdxrestoredb: INFO: /dev/sda1: restore succeeded
sdxrestoredb: INFO: /dev/sdb1: restore succeeded
sdxrestoredb: INFO: Class1: restore succeeded

7-4) ノードをシングルユーザモードで再起動します。


シャットダウン中に以下のメッセージが表示されますが、問題はありません。

SDX:sdxshutdown: INFO: waiting for a response from sdxservd daemon...
SDX:sdxshutdown: ERROR: connection timeout

7-5) ローカルクラス Class1 の構成データベースが正しく復元できたことを確認します。

# sdxinfo -C -c Class1
OBJ    NAME    TYPE     SCOPE       SPARE
------ ------- -------- ----------- -----
class  Class1  local    Node1           0

SCOPEフィールドにノード識別名が正しく表示されることを確認します。正しく表示されていれば、復元は完了です。

 

(2) PRIMECLUSTER CF の clinitreset(8) コマンドが 6675 番のエラーメッセージを出力して異常終了する。

[説明]

クラスタシステムにおいてクラスが存在する場合、PRIMECLUSTER CFの clinitreset コマンドを実行してPRIMECLUSTERのリソースデータベースを初期化しようとすると、clinitreset コマンドは以下のエラーメッセージを出力して異常終了します。

FJSVcluster: エラー: clinitreset: 6675: Cannot run thie command because Global Disk Services has already been set up.

シャドウクラスが存在するノードが、シャットダウンやパニックなどによって再起動されると、シャドウクラスは削除されますが、/dev/sfdsk/クラス名ディレクトリは削除されません。この状態で clinitreset コマンドを実行した場合にも、clinitreset コマンドは上記のエラーメッセージを出力して異常終了します。

 

[対処]

  1. クラスタシステムのすべてのノードにおいて、オブジェクトの構成を確認し、クラスが存在する場合は削除します。クラスを削除すると、ボリュームのデータは失われます。必要に応じて、あらかじめボリュームのデータをバックアップしてください。

  2. クラスタシステムのすべてのノードにおいて、/dev/sfdsk ディレクトリにクラスのディレクトリが存在するかどうか確認し、存在する場合は削除します。以下に、クラスClass1 のディレクトリが存在する場合の例を示します。_admと_diagは、GDSが使用する特殊ファイルなので、削除しないでください。

    # cd /dev/sfdsk
    # ls
    _adm    _diag  Class1
    # rm -rf Class1

     

(3) クラスタアプリケーションが Inconsistent 状態になる。

[説明]

共用クラスが RMS リソースとして使用しない設定になっている場合、そのクラスに含まれるボリュームは、ノード起動時に起動されます。そのため、そのボリュームを使用するクラスタアプリケーションを起動すると、すでにボリュームが起動された状態であるため、クラスタアプリケーションは Inconsistent 状態になります。デフォルトでは、クラスは RMS リソースとして使用しない設定になっており、以下の操作を行うことで、RMS リソースとして使用する設定にすることができます。

[対処]

以下の方法で、共用クラスを RMS リソースとして使用する設定に変更してください。その後、クラスタアプリケーションを再起動してください。

 

(4) GFS 共用ファイルシステムが、ノード起動時にマウントされない。

[説明]

共用クラスが RMS リソースとして使用する設定になっている場合、そのクラスに属しているボリュームは、ノード起動時に起動されません。そのため、そのボリューム上の共用ファイルシステムは、ノード起動時にマウントされません。デフォルトでは、クラスは RMS リソースとして使用しない設定になっていますが、以下の操作を行うと、RMS リソースとして使用する設定になります。

[対処]

以下のいずれかの対処を行ってください。

a) 共用クラスを RMS リソースとして使用する場合は、そのクラスのボリュームに共用ファイルシステムを作成することはできません。別のクラスのボリュームに共用ファイルシステムを作成してください。
b) 共用クラスを RMS リソースとして使用しない場合は、以下の方法で、クラスを RMS リソースとして使用しない設定に戻してください。その後、システムを再起動してください。



目次 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006