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

A.2.41 Solaris ゾーン環境での使用方法

Solaris ゾーンを使用する場合、GDS のインストール、コマンドの実行、および、ボリュームの作成ができるのは、グローバルゾーンのみです。ただし、グローバルゾーンで作成した GDS のボリュームを、ノングローバルゾーンに登録することにより、ノングローバルゾーンでも GDS のボリュームを使用することができます。

注意

Solaris ゾーンを使用する場合、以下の注意事項があります。

  • GDS は、グローバルゾーンにインストールしてください。GDS をノングローバルゾーンにインストールすることはできません。

  • ノングローバルゾーンでは、GDS のコマンドは実行できません。グローバルゾーンの /usr/sbin ディレクトリにインストールされた GDS のコマンドを、ノングローバルゾーンで実行すると、以下のエラーになります。

    ERROR: cannot be executed in non-global zone

    ノングローバルゾーンで GDS のコマンドを実行すると、ノングローバルゾーンの作成方法により、ld.so.1(1) のエラーメッセージが出力されることがあります。

  • ノングローバルゾーンでデバイスを使用する一般的な方法として、ゾーンの構成 (zonecfg) の際にノングローバルゾーンにデバイスを配置 (add device) する方法があります。Solaris 11 の場合、この方法でグローバルゾーンの GDS のボリュームをノングローバルゾーンに追加できます。しかし、Solaris 10 の場合、この方法では追加できません。詳細は、本節の以降の説明を参照してください。

  • GDS のボリューム内の同じブロックを複数のゾーンから同時にアクセスした場合、データの一貫性は保証されません。これは、GDS が管理していないスライスの場合と同様です。データの一貫性を維持するための排他制御は、複数のゾーンから同時にアクセスを行うアプリケーションの責任で行ってください。

  • GDS が導入されているサーバでアーカイブを作成し、アーカイブを使用してノングローバルゾーンを作成する場合、アーカイブ作成時に GDS の設定を解除する必要はありません。ノングローバルゾーンを作成後に、GDS の設定を解除してください。

    システムディスクのミラーリングの設定は、ノングローバルゾーン作成時、OS によって自動的に解除されます。その他の GDS の設定は、以下の手順に従って解除してください。

    ノングローバルゾーンで以下の手順を実行します。

    1) クラスの情報を削除します。

    /etc/opt/FJSVsdx/sysdb.dディレクトリに、class.db以外のファイルが存在する場合、rmコマンドを使用してそれらのファイルを削除します。

    また、class.dbにコメント(#で始まる行)以外の行が存在する場合、viコマンドを使用してそれらの行を削除します。

    # cd /etc/opt/FJSVsdx/sysdb.d
    # ls
    class.db   class0001
    # rm class0001
    # vi class.db
    class0001          ←この行を削除する
    # Disk Class List

    2) デバイス特殊ファイルを削除します。

    /dev/sfdskディレクトリに、_adm, _diag 以外のファイルやディレクトリが存在する場合、rmコマンドなどを使用してそれらを削除します。

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

    3) ノングローバルゾーンのGDSのバージョンが4.2A00以前の場合、GDS基本部のパッケージ(FJSVsdx)を削除します。

    # pkgrm FJSVsdx

    4) GDSをアンインストールします。

    アンインストール方法については、インストールガイドを参照してください。

    [参考]

    手順1)、2)を正しく実行しなかった場合、以下のエラーメッセージが出力されてアンインストールが失敗します。

    Cannot remove the package, following class(es) exist:

ノングローバルゾーンから GDS を利用するには、以下の 5 通りの方法があります。

また、Solaris ゾーン環境で GDS Snapshot を使用するには、以下の方法があります。

それぞれの方法の詳細を、以下に説明します。

参照

Solaris ゾーン環境のクラスタシステムで GDS を使用する場合は、「PRIMECLUSTER 導入運用手引書」を参照してください。

ボリューム上にノングローバルゾーンのルートファイルシステムを作成する方法

ミラーボリューム上にノングローバルゾーンのルートファイルシステムを作成することにより、ノングローバルゾーンのルートファイルシステムを冗長化することができます。ディスク障害によるデータ損失および業務停止を回避することが可能です。


構築手順

[グローバルゾーン]

  1. ノングローバルゾーンのルートファイルシステムとして使用するボリュームをローカルクラス、またはルートクラスに作成します。

    ボリューム作成方法については、「5.1.3 構成設定」を参照してください。


  2. ボリューム上にファイルシステムを作成し、マウントします。

    例:クラス名が class0001、ボリューム名が volume0001、ファイルシステムタイプがzfs、ZFSストレージプール名がgdspool、マウントポイントが/gdspool/zone1の場合

    # zpool create gdspool /dev/sfdsk/class0001/dsk/volume0001
    # zfs create gdspool/zone1

    注意

    システム起動時にゾーンを自動的に起動する(ゾーン構成の設定時に「autoboot」に「true」を指定する)場合は、システム起動時にファイルシステムを自動的にマウントするように設定してください。

  3. ファイルシステムのアクセス権限を 700 に変更します。

    例:マウントポイントが /gdspool/zone1 の場合

    # chmod 700 /gdspool/zone1

  4. ゾーンの構成を作成します。

    ゾーンパスに 手順 2 で設定した「マウントポイント」を指定して、ゾーンを構成します。

    ゾーン構成の作成・変更については、zonecfg(1M) コマンドのマニュアルを参照してください。


  5. ゾーンを作成します。

    ゾーンの作成については、zoneadm(1M) コマンドのマニュアルを参照してください。


ボリュームをノングローバルゾーンから raw デバイスとして利用する方法

以下の手順により、グローバルゾーンで作成されたボリュームをノングローバルゾーンから raw デバイスとして利用することが可能となります。

構築手順は、Solaris 11 の場合と Solaris 10 の場合で異なります。


構築手順 (Solaris 11 の場合)

[グローバルゾーン]

以下の手順で、グローバルゾーンで作成されたボリュームをノングローバルゾーンに追加します。

  1. ボリュームを作成します。

    ボリュームの作成方法については、「5.1.3 構成設定」を参照してください。


  2. ボリュームをノングローバルゾーンに追加します。

    「match」に手順1で作成したボリュームのデバイス特殊ファイルのパスを指定して、「add device」を実施します。
    ゾーン構成の作成・変更については、zonecfg(1M)コマンドのマニュアルを参照してください。

    例:ゾーン名が zone1、クラス名が class0001、ボリューム名が volume0001 の場合

    # zonecfg -z zone1
    zonecfg:zone1> add device
    zonecfg:zone1:device> set match=/dev/sfdsk/class0001/rdsk/volume0001
    zonecfg:zone1:device> end
    zonecfg:zone1> add device
    zonecfg:zone1:device> set match=/dev/sfdsk/class0001/dsk/volume0001
    zonecfg:zone1:device> end
    zonecfg:zone1> exit

  3. ゾーンを再起動します。

    ゾーンの再起動については、zoneadm(1M) コマンドのマニュアルを参照してください。

    例:ゾーン名が zone1 の場合

    # zoneadm -z zone1 reboot

  4. ノングローバルゾーンの /dev/sfdsk/クラス名/[r]dsk 配下に特殊ファイルが追加されていることを確認します。

    ノングローバルゾーンで以下の確認を行います。

    例:クラス名が class0001、ボリューム名が volume0001 の場合

    # ls -l /dev/sfdsk/class0001/dsk
    合計 0
    brw-------   1 root     root     253, 32  9月  1日  00:00 volume0001
    # ls -l /dev/sfdsk/class0001/rdsk
    合計 0
    crw-------   1 root     root     253, 32  9月  1日  00:00 volume0001

構築手順 (Solaris 10 の場合)

[グローバルゾーン]

以下の手順で、グローバルゾーンで作成されたボリュームのデバイス特殊ファイルをノングローバルゾーンにコピーします。

  1. ボリュームを作成します。

    ボリュームの作成方法については、「5.1.3 構成設定」を参照してください。


  2. ボリュームの特殊ファイルを、/ゾーンパス/dev 配下にコピーします。

    tarコマンドを使用して、ボリュームの特殊ファイルを、/ゾーンパス/dev 配下にコピーします。

    例:ゾーンパスが /zone1、クラス名が class0001、ボリューム名が volume0001 の場合

    # cd /dev
    # tar cvf /var/tmp/dsk.tar sfdsk/class0001/dsk/volume0001
    a sfdsk/class0001/dsk/volume0001 0K
    # tar cvf /var/tmp/rdsk.tar sfdsk/class0001/rdsk/volume0001
    a sfdsk/class0001/rdsk/volume0001 0K
    # cd /zone1/dev
    # tar xvf /var/tmp/dsk.tar
    tar: ブロックサイズ = 3
    x sfdsk/class0001/dsk/volume0001, 0 バイト, 0 テープブロック
    # tar xvf /var/tmp/rdsk.tar
    tar: ブロックサイズ = 3
    x sfdsk/class0001/rdsk/volume0001, 0 bytes, 0 テープブロック

  3. /ゾーンパス/dev/sfdsk/クラス/[r]dsk 配下に特殊ファイルがコピーされていることを確認します。

    例:ゾーンパスが /zone1、クラス名が class0001、ボリューム名が volume0001 の場合

    # ls -l /zone1/dev/sfdsk/class0001/dsk
    合計 0
    brw-------   1 root     root     253, 32  9月  1日  00:00 volume0001
    # ls -l /zone1/dev/sfdsk/class0001/rdsk
    合計 0
    crw-------   1 root     root     253, 32  9月  1日  00:00 volume0001

注意

手順2でコピーしたボリュームの特殊ファイルは、ノングローバルゾーンをデタッチし、アタッチすると、削除されます。これは、OSの仕様です。この場合、ノングローバルゾーンをアタッチした後、手順2および手順3を再実行してください。

利用手順

[ノングローバルゾーン]

/dev/sfdsk/クラス名/[r]dsk/ボリュームの特殊ファイルを使用して、raw デバイスにアクセスします。


ボリュームをノングローバルゾーンからファイルシステムとして利用する方法(特殊ファイルを使用する)

ボリュームをノングローバルゾーンから raw デバイスとして利用する方法の構築手順によってノングローバルゾーンに追加された特殊ファイルを使用し、ファイルシステムを作成、マウントすることにより、グローバルゾーンに作成されたボリュームをノングローバルゾーンからファイルシステムとして利用することが可能となります。


構築手順

[グローバルゾーン]

  1. ボリュームをノングローバルゾーンから raw デバイスとして利用する方法の構築手順を実施します。


  2. ノングローバルゾーンから raw デバイスとして利用するボリュームが、グローバルゾーンでファイルシステムとしてマウントされている場合は、アンマウントします。


  3. Solaris 11の場合、ノングローバルゾーンにマウントするファイルシステムのタイプを指定します。

    例:ゾーン名がzone1、ノングローバルゾーンで使用するファイルシステムのタイプがhsfs, nfs, ufs, zfsの場合

    # zonecfg -z zone1
    # zonecfg:zone1> set fs-allowed=hsfs,nfs,ufs,zfs
    # zonecfg:zone1> exit

  4. Solaris 11の場合、ゾーンを再起動します。

    ゾーンの再起動については、zoneadm(1M)コマンドのマニュアルを参照してください。

    例:ゾーン名が zone1 の場合

    # zoneadm -z zone1 reboot

[ノングローバルゾーン]

  1. /dev/sfdsk/クラス/dsk/ボリューム の特殊ファイルを使用して、ファイルシステムを作成します。

    例:クラス名がclass0001、ボリューム名がvolume0001、ファイルシステムタイプがufsの場合

    # newfs /dev/sfdsk/class0001/dsk/volume0001

  2. ファイルシステムをマウントします。

    例:マウントポイントが /mnt の場合

    # mount /dev/sfdsk/class0001/dsk/volume0001 /mnt

注意


ボリュームをノングローバルゾーンからファイルシステムとして利用する方法(ゾーン構成の作成・変更でファイルシステムのマウントを設定する)

グローバルゾーンで作成されたボリューム上に作成されたファイルシステムは、ゾーン構成の作成・変更でファイルシステムのマウント設定を行うことによりノングローバルゾーンからファイルシステムとして利用することが可能となります。


構築手順

[グローバルゾーン]

  1. ファイルシステムを作成します。

    作成したファイルシステムは、マウントしないでください。

    例:クラス名が class0001、ボリューム名が volume0001、ファイルシステムタイプがufsの場合

    # newfs /dev/sfdsk/class0001/dsk/volume0001

    注意

    システム起動時にファイルシステムを自動的にマウントしないように設定してください。


  2. ゾーン構成の作成・変更でファイルシステムのマウント設定を行います。

    「special」にファイルシステムを作成したボリュームを指定して、「add fs」を実施します。

    ゾーン構成の作成・変更については、zonecfg(1M) コマンドのマニュアルを参照してください。

    例:ゾーン名が zone1、ディレクトリパス(ノングローバルゾーンでのマウントポイント)が /volume0001、クラス名が class0001、ボリューム名が volume0001 の場合

    # zonecfg -z zone1
    zonecfg:zone1> add fs 
    zonecfg:zone1:fs> set dir=/volume0001
    zonecfg:zone1:fs> set special=/dev/sfdsk/class0001/dsk/volume0001
    zonecfg:zone1:fs> set raw=/dev/sfdsk/class0001/rdsk/volume0001
    zonecfg:zone1:fs> set type=ufs
    zonecfg:zone1:fs> end
    zonecfg:zone1> exit

  3. ゾーンを再起動します。

    ゾーンの再起動については、zoneadm(1M) コマンドのマニュアルを参照してください。

    例:ゾーン名が zone1 の場合

    # zoneadm -z zone1 reboot

利用手順

[ノングローバルゾーン]

ゾーン構成の作成・変更で指定したディレクトリパス(ノングローバルゾーンでのマウントポイント)を使用してファイルシステムにアクセスします。

注意


ボリュームをノングローバルゾーンからファイルシステムとして利用する方法(ゾーン構成の作成・変更でファイルシステムの共有を設定する)

グローバルゾーンに作成されたボリューム上に作成されたファイルシステムは、ゾーン構成の作成・変更でファイルシステムの共有設定を行うことにより、ノングローバルゾーンからファイルシステムとして利用することが可能となります。


構築手順

[グローバルゾーン]

  1. ファイルシステムを作成し、マウントします。

    例:クラス名が class0001、ボリューム名が volume0001、ファイルシステムタイプがufs、マウントポイントが /mnt の場合

    # newfs /dev/sfdsk/class0001/dsk/volume0001
    # mount -F ufs /dev/sfdsk/class0001/dsk/volume0001 /mnt

    注意

    システム起動時にゾーンを自動的に起動する(ゾーン構成の設定時に「autoboot」に「true」を指定する)場合は、システム起動時にファイルシステムを自動的にマウントするように設定してください。


  2. ゾーン構成の作成・変更でファイルシステムの共有設定を行います。

    「special」に手順 1 で設定した「マウントポイント」を指定して、「add fs」を実施します。

    ゾーン構成の作成・変更については、zonecfg(1M) コマンドのマニュアルを参照してください。

    例:ゾーン名が zone1、ディレクトリパス(ノングローバルゾーンでのマウントポイント)が /volume0001 の場合

    # zonecfg -z zone1
    zonecfg:zone1> add fs 
    zonecfg:zone1:fs> set dir=/volume0001
    zonecfg:zone1:fs> set special=/mnt
    zonecfg:zone1:fs> set type=lofs
    zonecfg:zone1:fs> end
    zonecfg:zone1> exit

  3. ゾーンを再起動します。

    ゾーンの再起動については、zoneadm(1M) コマンドのマニュアルを参照してください。

    例:ゾーン名が zone1 の場合

    # zoneadm -z zone1 reboot

利用手順

[ノングローバルゾーン]

ゾーン構成の作成・変更で指定したディレクトリパス(ノングローバルゾーンでのマウントポイント)を使用してファイルシステムにアクセスします。

注意

共用クラスに作成されたボリュームをノングローバルゾーンから使用しているノードを停止する場合、ノングローバルゾーンを停止後にノードを停止してください。

Solaris ゾーン環境での GDS Snapshot の使用方法

グローバルゾーンで GDS Snapshot を使用し、グローバルゾーンのボリュームのスナップショットを作成することができます。

ノングローバルゾーンのルートファイルシステムを含むボリュームや、ノングローバルゾーンから使用するボリュームの場合でも、グローバルゾーンでスナップショットを作成できます。

また、スナップショットを作成したプロキシボリュームを、前述の 5 通りの方法でグローバルゾーンから使用することもできます。

グローバルゾーンでの GDS Snapshot の操作方法は、物理環境での操作方法と同じです。