Sun Cluster データサービスの計画と管理 (Solaris OS 版)

高可用性ファイルシステムのリソースをオンラインのままで変更する

ファイルシステムを表現しているリソースを変更している間でも、高可用性ファイルシステムは利用できる必要があります。たとえば、ストレージが動的に提供されている場合、ファイルシステムは利用できる必要があります。このような状況では、高可用性ファイルシステムを表現しているリソースをオンラインのままで変更します。

Sun Cluster 環境では、高可用性ファイルシステムは HAStoragePlus リソースで表現されます。Sun Cluster では、HAStoragePlus をオンラインのままで変更するには、次のようにします。


注 –

Sun Cluster ソフトウェアでは、ファイルシステムの名前はオンラインのままでは変更できません。


ProcedureSolaris ZFS 以外のファイルシステムをオンラインの HAStoragePlus リソースに追加する

ローカルまたは広域ファイルシステムを HAStoragePlus リソースに追加する場合、HAStoragePlus リソースは自動的にファイルシステムをマウントします。

  1. クラスタの 1 つのノードで、スーパーユーザーになるか、solaris.cluster.modify RBAC の承認を提供する役割になります。

  2. クラスタの各ノードの /etc/vfstab ファイルにおいて、追加しようとしている各ファイルシステムのマウントポイント用のエントリを追加します。

    エントリごとに、mount at boot フィールドと mount options フィールドを次のように設定します。

    • ローカルファイルシステムの場合

      • mount at boot フィールドを no に設定します。

      • global フラグを削除します。

    • クラスタファイルシステムの場合

      • ファイルシステムがグローバルファイルシステムの場合、global オプションを含むように mount options フィールドを設定します。

  3. HAStoragePlus リソースがすでに管理しているファイルシステムのマウントポイントのリストを取得します。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
    FileSystemMountPoints
    
    -R hasp-resource

    ファイルシステムを追加する先の HAStoragePlus リソースを指定します。

    -G hasp-rg

    HAStoragePlus リソースを含むリソースグループを指定します。

  4. HAStoragePlus リソースの FileSystemMountPoints 拡張プロパティーを変更して、次のマウントポイントを含むようにします。

    • HAStoragePlus リソースがすでに管理しているファイルシステムのマウントポイント

    • HAStoragePlus リソースに追加しようとしているファイルシステムのマウントポイント


    # clresource set -p FileSystemMountPoints="mount-point-list" hasp-resource
    
    -p FileSystemMountPoints="mount-point-list"

    HAStoragePlus リソースがすでに管理しているファイルシステムのマウントポイントと、追加しようとしているファイルシステムのマウントポイントをコンマで区切って指定します。リスト内の各エントリの形式は、LocalZonePath:GlobalZonePath です。この形式では、大域パスはオプションです。大域パスが指定されていない場合、大域パスはローカルパスと同じになります。

    hasp-resource

    ファイルシステムを追加する先の HAStoragePlus リソースを指定します。

  5. HAStoragePlus リソースのマウントポイントのリストと、手順 4で指定したリストが一致していることを確認します。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
     FileSystemMountPoints
    
    -R hasp-resource

    ファイルシステムを追加する先の HAStoragePlus リソースを指定します。

    -G hasp-rg

    HAStoragePlus リソースを含むリソースグループを指定します。

  6. HAStoragePlus リソースがオンラインであり、障害が発生していないことを確認します。

    HAStoragePlus リソースがオンラインであるが、障害が発生している場合、リソースの確認は成功しますが、HAStoragePlus によるファイルシステムのマウントは失敗します。


    # clresource status hasp-resource
    

例 2–36 オンラインの HAStoragePlus リソースへのファイルシステムの追加

次に、オンラインの HAStoragePlus リソースにファイルシステムを追加する例を示します。

この例では、各クラスタノード上の /etc/vfstabファイルにはすでに、追加しようとしているファイルシステムのエントリが含まれていると仮定します。


# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
STRINGARRAY
/global/global-fs/fs
# clresource set  \
-p FileSystemMountPoints="/global/global-fs/fs,/global/local-fs/fs"
# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints rshasp
STRINGARRAY
/global/global-fs/fs
/global/local-fs/fs
# clresource status rshasp


=== Cluster Resources ===

Resource Name          Node Name      Status        Message
--------------        ----------      -------       --------
   rshasp               node46       Offline         Offline
                        node47       Online          Online

Procedureオンラインの HAStoragePlus リソースから Solaris ZFS 以外のファイルシステムを削除する

HAStoragePlus リソースからファイルシステムを削除するとき、HAStoragePlus リソースはローカルファイルシステムをグローバルファイルシステムとは別に処理します。


注意 – 注意 –

オンラインの HAStoragePlus リソースからファイルシステムを削除する前には、そのファイルシステムを使用しているアプリケーションが存在しないことを確認してください。オンラインの HAStoragePlus リソースからファイルシステムを削除すると、そのファイルシステムは強制的にアンマウントされます。アプリケーションが使用しているファイルシステムが強制的にアンマウントされると、そのアプリケーションは異常終了またはハングする可能性があります。


  1. クラスタの 1 つのノードで、スーパーユーザーになるか、solaris.cluster.modify RBAC の承認を提供する役割になります。

  2. HAStoragePlus リソースがすでに管理しているファイルシステムのマウントポイントのリストを取得します。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
    FileSystemMountPoints
    
    -R hasp-resource

    ファイルシステムを削除する元の HAStoragePlus リソースを指定します。

    -G hasp-rg

    HAStoragePlus リソースを含むリソースグループを指定します。

  3. HAStoragePlus リソースの FileSystemMountPoints 拡張プロパティーを変更して、HAStoragePlus リソースに残すファイルシステムのマウントポイントだけを含むようにします。


    # clresource set -p FileSystemMountPoints="mount-point-list" hasp-resource
    
    -p FileSystemMountPoints="mount-point-list"

    HAStoragePlus リソースに残そうとしているファイルシステムのマウントポイントをコンマで区切って指定します。このリストには、削除しようとしているファイルシステムのマウントポイントが含まれていてはなりません。

    hasp-resource

    ファイルシステムを削除する元の HAStoragePlus リソースを指定します。

  4. HAStoragePlus リソースのマウントポイントのリストと、手順 3で指定したリストが一致していることを確認します。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
    FileSystemMountPoints
    
    -R hasp-resource

    ファイルシステムを削除する元の HAStoragePlus リソースを指定します。

    -G hasp-rg

    HAStoragePlus リソースを含むリソースグループを指定します。

  5. HAStoragePlus リソースがオンラインであり、障害が発生していないことを確認します。

    HAStoragePlus リソースがオンラインであるが、障害が発生している場合、リソースの確認は成功しますが、HAStoragePlus によるファイルシステムのアンマウントは失敗します。


    # clresource status hasp-resource
    
  6. (省略可能) クラスタの各ノードの /etc/vfstab ファイルから、削除しようとしている各ファイルシステムのマウントポイント用のエントリを削除します。


例 2–37 オンラインの HAStoragePlus リソースからのファイルシステムの削除

次に、オンラインの HAStoragePlus リソースからファイルシステムを削除する例を示します。


# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
STRINGARRAY
/global/global-fs/fs
/global/local-fs/fs
# clresource set -p FileSystemMountPoints="/global/global-fs/fs"
# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints rshasp
STRINGARRAY
/global/global-fs/fs
 # clresource status rshasp


=== Cluster Resources ===

Resource Name          Node Name      Status        Message
--------------        ----------      -------       --------
   rshasp               node46       Offline         Offline
                        node47       Online          Online

ProcedureSolaris ZFS ストレージプールをオンラインの HAStoragePlus リソースに追加する

Solaris ZFS (Zettabyte File System) ストレージプールをオンラインの HAStoragePlus リソースに追加する場合、HAStoragePlus リソースは次の処理を行います。

  1. クラスタ内の任意のノードで、スーパーユーザーになるか、solaris.cluster.modify RBAC の承認を提供する役割になります。

  2. HAStoragePlus リソースがすでに管理している ZFS ストレージプールを判別します。


    # clresource show -g hasp-resource-group -p Zpools hasp-resource
    
    -g hasp-resource-group

    HAStoragePlus リソースを含むリソースグループを指定します。

    hasp-resource

    ZFS ストレージプールを追加する先の HAStoragePlus リソースを指定します。

  3. HAStoragePlus リソースがすでに管理している ZFS ストレージプールの既存のリストに、新しい ZFS ストレージプールを追加します。


    # clresource set -p Zpools="zpools-list" hasp-resource
    
    -p Zpools="zpools-list"

    HAStoragePlus リソースがすでに管理している既存の ZFS ストレージプール名のコンマ区切りリストと、追加する新しい ZFS ストレージプール名を指定します。

    hasp-resource

    ZFS ストレージプールを追加する先の HAStoragePlus リソースを指定します。

  4. HAStoragePlus リソースが管理する ZFS ストレージプールの新しいリストと、手順 2 で生成したリストを比較します。


    # clresource show -g hasp-resource-group -p Zpools hasp-resource
    
    -g hasp-resource-group

    HAStoragePlus リソースを含むリソースグループを指定します。

    hasp-resource

    ZFS ストレージプールの追加先である HAStoragePlus リソースを指定します。

  5. HAStoragePlus リソースがオンラインであり、障害が発生していないことを確認します。

    HAStoragePlus リソースがオンラインで障害が発生した場合は、リソースの検証自体は成功したことになります。ただし、HAStoragePlus リソースによる ZFS のインポートとマウントの試みは失敗しています。この場合、以前の一連の手順を繰り返す必要があります。


    # clresourcegroup status hasp-resource
    

Procedureオンラインの HAStoragePlus リソースから Solaris ZFS ストレージプールを削除する

オンラインの HAStoragePlus リソースから Solaris ZFS (Zettabyte File System) ストレージプールを削除する場合、HAStoragePlus リソースは次の処理を行います。

  1. クラスタ内の任意のノードで、スーパーユーザーになるか、solaris.cluster.modify RBAC の承認を提供する役割になります。

  2. HAStoragePlus リソースがすでに管理している ZFS ストレージプールを判別します。


    # clresource show -g hasp-resource-group -p Zpools hasp-resource
    
    -g hasp-resource-group

    HAStoragePlus リソースを含むリソースグループを指定します。

    hasp-resource

    ZFS ストレージプールの削除元である HAStoragePlus リソースを指定します。

  3. HAStoragePlus リソースが現在管理している ZFS ストレージプールのリストから ZFS ストレージプールを削除します。


    # clresource set -p Zpools="zpools-list" hasp-resource
    
    -p Zpools="zpools-list"

    HAStoragePlus リソースが現在管理している ZFS ストレージプール名のコンマ区切りリストから、削除する ZFS ストレージプール名を除いたものを指定します。

    hasp-resource

    ZFS ストレージプールの削除元である HAStoragePlus リソースを指定します。

  4. HAStoragePlus リソースが現在管理する ZFS ストレージプールの新しいリストと、手順 2 で生成したリストを比較します。


    # clresource show -g hasp-resource-group -p Zpools hasp-resource
    
    -g hasp-resource-group

    HAStoragePlus リソースを含むリソースグループを指定します。

    hasp-resource

    ZFS ストレージプールの削除元である HAStoragePlus リソースを指定します。

  5. HAStoragePlus リソースがオンラインであり、障害が発生していないことを確認します。

    HAStoragePlus リソースがオンラインで障害が発生した場合は、リソースの検証自体は成功したことになります。ただし、HAStoragePlus リソースによる ZFS のアンマウントとエクスポートの試みは失敗しています。この場合、以前の一連の手順を繰り返す必要があります。


    # clresourcegroup status SUNW.HAStoragePlus +
    

ProcedureHAStoragePlus リソースの FileSystemMountPoints プロパティーを変更したあと障害から回復する

FileSystemMountPoints 拡張プロパティーの変更中に障害が発生した場合、HAStoragePlus リソースの状態はオンラインであり、かつ、障害が発生しています。障害を修正した後、HAStoragePlus の状態はオンラインです。

  1. 変更が失敗した原因となる障害を特定します。


    # clresource status hasp-resource
    

    障害が発生した HAStoragePlus リソースの状態メッセージは、その障害を示します。可能性のある障害は、次のとおりです。

    • ファイルシステムが存在するはずのデバイスが存在しません。

    • fsck コマンドによるファイルシステムの修復が失敗しました。

    • 追加しようとしたファイルシステムのマウントポイントが存在しません。

    • 追加しようとしたファイルシステムがマウントできません。

    • 削除しようとしたファイルシステムがアンマウントできません。

  2. 変更が失敗した原因となる障害を修正します。

  3. HAStoragePlus リソースの FileSystemMountPoints 拡張プロパティーを変更する手順を繰り返します。


    # clresource set -p FileSystemMountPoints="mount-point-list" hasp-resource
    
    -p FileSystemMountPoints="mount-point-list"

    高可用性ファイルシステムの変更が失敗したときに指定したマウントポイントをコンマで区切って指定します。

    hasp-resource

    変更しようとしている HAStoragePlus リソースを指定します。

  4. HAStoragePlus リソースがオンラインであり、障害が発生していないことを確認します。


    # clresource status
    

例 2–38 障害が発生した HAStoragePlus リソースの状態

次に、障害が発生した HAStoragePlus リソースの状態の例を示します。fsck コマンドによるファイルシステムの修復が失敗したため、このリソースには障害が発生しています。


# clresource status

  === Cluster Resources ===

  Resource Name     Node Name     Status       Status Message
  --------------    ----------    -------      -------------
  rshasp            node46        Offline      Offline
                    node47        Online       Online Faulted - Failed to fsck: /mnt.

ProcedureHAStoragePlus リソースの Zpools プロパティーを変更したあと障害から回復する

Zpools 拡張プロパティーの変更中に障害が発生した場合、HAStoragePlus リソースの状態はオンラインであり、かつ、障害が発生しています。障害を修正した後、HAStoragePlus の状態はオンラインです。

  1. 変更が失敗した原因となる障害を特定します。


    # clresource status hasp-resource
    

    障害が発生した HAStoragePlus リソースの状態メッセージは、その障害を示します。可能性のある障害は、次のとおりです。

    • zpool のファイルシステムの ZFS マウントポイントのプロパティーが legacy に設定されている。

    • ZFS のプール zpool がインポートに失敗した。

    • ZFS のプール zpool がエクスポートに失敗した。

  2. 変更が失敗した原因となる障害を修正します。

  3. HAStoragePlus リソースの zpools 拡張プロパティーを変更する手順を繰り返します。


    # clresource set -p Zpools="zpools-list" hasp-resource
    
    -p Zpools="zpools-list"

    HAStoragePlus が現在管理している ZFS ストレージプール名のコンマ区切りリストから、削除する ZFS ストレージプール名を除いたものを指定します。

    hasp-resource

    変更しようとしている HAStoragePlus リソースを指定します。

  4. HAStoragePlus リソースがオンラインであり、障害が発生していないことを確認します。


    # clresource status
    

例 2–39 障害が発生した HAStoragePlus リソースの状態

次に、障害が発生した HAStoragePlus リソースの状態の例を示します。ZFS のプール zpool がインポートに失敗したため、このリソースには障害が発生しています。


# clresource status hasp-resource

  === Cluster Resources ===

  Resource Name     Node Name     Status            Status Message
  --------------    ----------    -------           -------------
  hasp-resource     node46        Online            Faulted - Failed to import:hazpool
                    node47        Offline           Offline