ここでは、ZFS ブート環境において、以下の構成で GDS ミラー方式のシステムディスクミラーリングを設定する方法を説明します。
本構成は、システムディスクにZFSルートプール用のスライスとデータ用のスライスが存在し、システムディスクとは別にダンプ用のディスクが存在する場合の例です。
システムディスクにデータ用のスライスが存在しない場合、またはダンプ用のディスクが存在しない場合でも、この方法で設定できます。
GDS : Global Disk Services
以降の手順では、物理スライス名、ボリューム名、プール名などを、実際のシステムで使用する名前に置き換えてください。
GDS ミラー方式のシステムディスクミラーリングの設定は、以下の手順で行います。
GDS : Global Disk Services
上図 [5] の手順 9) でシステムの再起動が必要ですが、それ以外の設定は、業務やアプリケーションプログラムを動作させたまま実行できます。
上図 [2]の手順 6) で ZFS による再同期化処理、上図 [6] の手順 12) で GDS による等価性コピー処理が実行されます。このときも、業務やアプリケーションプログラムを停止する必要はありません。
ただし、より安全性が求められる場合は、業務やアプリケーションプログラムを停止し、システムのバックアップを採取してから設定を行ってください。
所要時間は、サーバやディスクの性能、スライスやファイルシステムのサイズなどに左右され、システムによって異なります。
ここでは、「7.1.1 ZFS ブート環境のシステムディスクミラーリングの設定 (GDS ミラー方式)」の図のように、システムディスクにZFSルートプール用のスライスとデータ用のスライスが存在し、システムディスクとは別にダンプ用のディスクが存在する場合の設定方法を説明します。
システムディスクにデータ用のスライスが存在しない場合、またはダンプ用のディスクが存在しない場合は、存在しないディスクやスライスに対する設定は必要ありません。
1) GDS のチューニングパラメタを設定します。
SAN ブート環境でシステムディスクが12Gbps SAS カードに接続されている場合にのみ、本設定を行います。
1-1) チューニングパラメタを設定します。
/etc/opt/FJSVsdx/sdx.cfファイルに“SDX_BOOT_PROPERTY=off”を追記します。
# vi /etc/opt/FJSVsdx/sdx.cf
~
SDX_BOOT_PROPERTY=off
1-2) チューニングパラメタが設定されていることを確認します。
# grep SDX_BOOT_PROPERTY /etc/opt/FJSVsdx/sdx.cf
SDX_BOOT_PROPERTY=off
2) ミラー先ディスクにスライスを作成します。
OS の format(1M) コマンド等を使用し、ミラー先ディスクのスライス構成をシステムディスクと同じ構成にします。
スライス構成を紙またはファイルなどに記録しておいてください。システムディスクのミラーリングを解除する際に、必要になります。
3) SAN ブート環境の場合、ブートデバイスのパス名を確認します。
OS がインストールされているスライス (ZFS ルートプールを構成するスライス) のデバイスパス名と、手順 2) で作成したスライスのデバイスパス名を確認します。
確認したデバイスパス名は、紙またはファイルなどに記録しておいてください。システム起動時やシステムディスクのミラーリングを解除する際に必要になります。
参照
確認方法の詳細は、以下のドキュメントを参照してください。
MPxIO を使用する場合
SPARC Enterprise SAN Boot環境構築ガイド (Leadvilleドライバ編)
https://updatesite.jp.fujitsu.com/unix/jp/download/driver/pfca-8info/
ETERNUS マルチパスドライバを使用する場合
SPARC Enterprise SAN Boot環境構築ガイド
https://updatesite.jp.fujitsu.com/unix/jp/download/driver/pfca-4/
4) ミラー先ディスクをルートクラスに登録します。
4-1) システムディスクのミラー先ディスクをルートクラスに登録します。
# sdxdisk -M -c System -a type=root -d c1t0d0=Root2:keep (*1) (*2) (*3)
(*1) ルートクラス名
(*2) システムディスクのミラー先ディスク
(*3) システムディスクのミラー先ディスクの SDX ディスク名
4-2) ダンプ用ディスクのミラー先ディスクをルートクラスに登録します。
# sdxdisk -M -c System -a type=root -d c1t0d1=Root4:keep (*1) (*2) (*3)
(*1) ルートクラス名
(*2) ダンプ用ディスクのミラー先ディスク
(*3) ダンプ用ディスクのミラー先ディスクの SDX ディスク名
5) ミラー先ディスクをグループに接続します。
5-1) システムディスクのミラー先ディスクをグループに接続します。
# sdxdisk -C -c System -g Group1 -d Root2 -v 0=rpool:on,1=datapool:on (*1) (*2) (*3) (*4) (*5)
(*1) ルートクラス名
(*2) システムディスクのグループのグループ名
(*3) システムディスクのミラー先ディスクの SDX ディスク名
(*4) 手順2)で作成した、ZFSルートプール用のスライスのミラー先にするスライス(この例ではc1t0d0s0)に対する設定を、num=volume:jrmの形式で指定する。numにはスライス番号、volumeにはボリューム名、jrmにはJRMモード(通常はon)を指定する。
(*5) 手順2)で作成した、システムディスク上のデータ用スライスのミラー先にするスライス(この例ではc1t0d0s1)に対する設定を、num=volume:jrmの形式で指定する。numにはスライス番号、volumeにはボリューム名、jrmにはJRMモード(通常はon)を指定する。
5-2) ダンプ用ディスクのミラー先ディスクをグループに接続します。
# sdxdisk -C -c System -g Group2 -d Root4 -v 0=dumppool:on (*1) (*2) (*3) (*4)
(*1) ルートクラス名
(*2) ダンプ用ディスクのグループのグループ名
(*3) ダンプ用ディスクのミラー先ディスクの SDX ディスク名
(*4) 手順2)で作成した、ダンプ用ディスクのスライスのミラー先にするスライス(この例ではc1t0d1s0)に対する設定を、num=volume:jrmの形式で指定する。numにはスライス番号、volumeにはボリューム名、jrmにはJRMモード(通常はon)を指定する。
6) ミラー先ディスク上のボリュームを ZFS ルートプールおよびZFSストレージプールに接続します。
zpool attach コマンド実行後、ZFS の再同期処理が実行されます。このとき、コンソールに OS のメッセージ (SUNW-MSG-ID: ZFS-8000-QJ) が出力されることがありますが、システムには影響ありません。
6-1) ZFSルートプールにボリュームを接続します。
# zpool attach rpool c0t0d0s0 /dev/sfdsk/System/dsk/rpool (*1) (*2) (*3) (*4)
(*1) ZFS ルートプール名 (zpool status コマンドで確認可能 )
(*2) OS がインストールされているスライス (ZFS ルートプールを構成するスライス )
(*3) ルートクラス名
(*4) 手順 5-1) で作成された、ZFSルートプール用のボリュームのボリューム名
6-2) データ用のZFSストレージプールにボリュームを接続します。
# zpool attach datapool c0t0d0s1 /dev/sfdsk/System/dsk/datapool (*1) (*2) (*3) (*4)
(*1) データ用のZFS ストレージプールのプール名 (zpool status コマンドで確認可能 )
(*2) システムディスク上のデータ用スライス (ZFS ストレージプールを構成するスライス )
(*3) ルートクラス名
(*4) 手順 5-1) で作成された、データ用のボリュームのボリューム名
6-3) ダンプ用のZFSストレージプールにボリュームを接続します。
# zpool attach dumppool c0t0d1s0 /dev/sfdsk/System/dsk/dumppool (*1) (*2) (*3) (*4)
(*1) ダンプ用のZFS ストレージプールのプール名 (zpool status コマンドで確認可能 )
(*2) ダンプ用ディスクのスライス
(*3) ルートクラス名
(*4) 手順 5-2) で作成された、ダンプ用のボリュームのボリューム名
7) ZFS ルートプールおよびZFSストレージプールの状態を確認します。
以下では、ZFSルートプールの状態を確認する方法を説明します。
同様の方法で、ZFSストレージプールの状態も確認してください。
# zpool status rpool (*1) ZFS ルートプール名 pool: rpool state: ONLINE scan: resilvered ~ config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t0d0s0 ONLINE 0 0 0 (*2) /dev/sfdsk/System/dsk/rpool ONLINE 0 0 0 (*3)
以下のように表示されることを確認します。
state に ONLINE と表示されること。
※ ZFS の再同期処理実行中、state に "DEGRADED" と表示されることがありますが、再同期処理完了後、state に "ONLINE" と表示されれば問題ありません。
scrub または scan に "resilvered" または "resilver completed" と表示されること。
※再同期処理実行中は、 scrub または scan に "resilver in progress" と表示されます。
※再同期処理実行中にシステムが再起動された場合、再同期処理は中止され、 scrub または scan に "none requested" と表示されます。この場合、 zpool scrub コマンドを使用して、再同期処理を再実行してください。
config に、 OS をインストールしたスライス (*2) と、手順 5) で接続したボリューム (*3) が表示されること。
8) ミラー先ディスク上のボリュームにブートブロックをインストールします。
以下の環境の場合、この手順は実行しないでください。
Solaris 10 を使用し、カーネルパッチ 144500-19以降を適用している場合
Solaris 11 11/11以降の場合
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk \ /dev/sfdsk/System/rdsk/rpool (*1) (*2)
(*1) ルートクラス名
(*2) 手順 6-1) でZFSルートプールに接続したボリュームのボリューム名
9) システムを再起動します。
ブートディスクからリブートする手順は、以下の2つの場合で異なります。
SANブート環境でシステムディスクが12Gbps SASカードに接続されている場合
その他の場合
[SANブート環境でシステムディスクが12Gbps SASカードに接続されている場合]
9a-1) ZFSルートプール用のボリュームを構成するスライスのパーティションを確認します。
# ls -l /dev/dsk | grep c0t600000E00D0000000001060300040000d0s0 (*1) lrwxrwxrwx 1 root root 64 Feb 2 13:57 c0t600000E00D0000000001060300040000d0s0 -> ../../devices/scsi_vhci/disk@g600000e00d28000000280cc600000000:a (*2)
(*1) ZFSルートプール用のボリュームを構成するスライス ( 手順 2) で作成したスライス )
(*2) スライスのパーティション
9a-2) ブートディスクの情報を確認します。
# prtconf -v /dev/rdsk/c0t600000E00D0000000001060300040000d0s0 disk, instance #0 Driver properties: ~ Hardware properties: ~ Paths from multipath bus adapters: Path 33: /pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/iport@f0/disk@w500000e0d0460306,0 lsc#3(online) (*1) (*2) ~
(*1) diskノード名 ( この例では disk@w500000e0d0460306,0 )
(*2) SAS Address ( この例では 500000e0d0460306 )
9a-3) OpenBoot 環境に移行します。
# shutdown -y -g0 -i0
9a-4) ディスクが接続されているSAS HBAのデバイスパスを確認します。
ok probe-scsi-all
/pci@8100/pci@4/pci@0/pci@0/LSI,sas@0 (*1)
FCode Version 1.00.65, MPT Version 2.05, Firmware Version 4.00.00.00 Target a Unit 0 Disk TOSHIBA MBF2300RC 3706 585937500 Blocks, 300 GB SASDeviceName 50000393d82956d4 SASAddress 500000e0d0460306 PhyNum 0 (*2) Target b Unit 0 Disk TOSHIBA MBF2300RC 3706 585937500 Blocks, 300 GB SASDeviceName 50000393d828bbfc SASAddress 500000e0da0cc620 PhyNum b ~ ok
(*1) デバイスパス
(*2) SAS Address ( 手順9a-2) の*2で確認したSAS Address)
9a-5) OpenBoot 環境でシステムを起動します。
ok boot /pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0d0460306,0:a (*4)
(*4) 手順 9a-4) の デバイスパス(*1) と、手順 9a-2) のdiskノード名(*1)と、手順9a-1)のスライスのパーティション (*2) を連結したデバイス名
[その他の場合 ]
9b-1) システムを再起動します。
# shutdown -y -g0 -i6
10) 元のシステムディスクおよび元のダンプ用ディスクを ZFS ルートプールおよびZFSストレージプールから切り離します。
10-1) ZFSルートプールからスライスを切り離します。
# zpool detach rpool c0t0d0s0 (*1) (*2)
(*1) ZFS ルートプール名 (zpool status コマンドで確認可能 )
(*2) OS をインストールしたスライス
10-2) データ用のZFSストレージプールからスライスを切り離します。
# zpool detach datapool c0t0d0s1 (*1) (*2)
(*1) データ用のZFS ストレージプールのプール名 (zpool status コマンドで確認可能 )
(*2) 元のシステムディスク上のデータ用のスライス
10-3) ダンプ用のZFSストレージプールからスライスを切り離します。
# zpool detach dumppool c0t0d1s0 (*1) (*2)
(*1) ダンプ用のZFS ストレージプールのプール名 (zpool status コマンドで確認可能 )
(*2) 元のダンプ用ディスクのスライス
11) 元のシステムディスクおよび元のダンプ用ディスクをルートクラスに登録します。
11-1) 元のシステムディスクをルートクラスに登録します。
# sdxdisk -M -c System -d c0t0d0=Root1 (*1) (*2) (*3)
(*1) ルートクラス名
(*2) 元のシステムディスク
(*3) 元のシステムディスクの SDX ディスク名
11-2) 元のダンプ用ディスクをルートクラスに登録します。
# sdxdisk -M -c System -d c0t0d1=Root3 (*1) (*2) (*3)
(*1) ルートクラス名
(*2) 元のダンプ用ディスク
(*3) 元のダンプ用ディスクの SDX ディスク名
12) 元のシステムディスクおよび元のダンプ用ディスクを手順 5) で作成したグループに接続します。
12-1) 元のシステムディスクをグループに接続します。
# sdxdisk -C -c System -g Group1 -d Root1 (*1) (*2) (*3)
(*1) ルートクラス名
(*2) 手順 5-1) で作成した、システムディスクのグループのグループ名
(*3) 元のシステムディスクの SDX ディスク名
12-2) 元のダンプ用ディスクをグループに接続します。
# sdxdisk -C -c System -g Group2 -d Root3 (*1) (*2) (*3)
(*1) ルートクラス名
(*2) 手順 5-2) で作成した、ダンプ用ディスクのグループのグループ名
(*3) 元のダンプ用ディスクの SDX ディスク名
13) 正常にミラーリングされていることを確認します。
以下では、ZFSルートプールの状態を確認する方法を説明します。
同様の方法で、ZFSストレージプールの状態も確認してください。
# zpool status rpool (*1) ZFS ルートプール名 pool: rpool state: ONLINE scan: resilvered ~ config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 /dev/sfdsk/System/dsk/rpool ONLINE 0 0 0 (*2)
以下のように表示されることを確認します。
state に ONLINE と表示されること。
config に、手順 6) で接続したボリューム (*2) だけが表示されること。
# sdxinfo -S -c System (*3) ルートクラス名 OBJ CLASS GROUP DISK VOLUME STATUS ------ ------- ------- ------- --------- ------- slice System Group1 Root1 rpool ACTIVE slice System Group1 Root2 rpool ACTIVE slice System Group1 Root1 datapool ACTIVE slice System Group1 Root2 datapool ACTIVE slice System Group2 Root3 dumppool ACTIVE slice System Group2 Root4 dumppool ACTIVE
以下のように表示されることを確認します。
元のシステムディスク (この例では Root1) と、ミラー先ディスク(この例では Root2) の情報が表示されること。
元のダンプ用ディスク (この例では Root3) と、ミラー先ディスク(この例では Root4) の情報が表示されること。
STATUS に ACTIVE と表示されること。
※手順 12) の操作の後、 GDS の等価性コピー処理が実行されます。等価性コピー処理実行中は、元のシステムディスク ( この例では Root1) 上および元のダンプ用ディスク(この例ではRoot3)上のスライスの STATUS は COPY と表示されます。
14) ミラー先のディスクをOBPの環境変数(boot-deviceおよびmultipath-boot?)に設定します。
SANブート環境でシステムディスクが12Gbps SASカードに接続されている場合にのみ、本設定を行います。
14-1) ミラー元のディスクのOBPのboot-deviceプロパティを確認します。
# eeprom boot-device
boot-device=/pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0d0460300,0:a (*1)
(*1) ミラー元ディスクのbootデバイス
14-2) ミラー先のディスクのbootデバイスをOBPのboot-deviceプロパティに設定します。
# eeprom boot-device="/pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0d0460300,0:a
(*1)
/pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0d0460306,0:a"
(*2)
(*1) 手順14-1) で確認したbootデバイス
(*2) 手順9a) で確認したbootデバイス
14-3) OBPのmultipath-boot?プロパティを確認します。
# eeprom multipath-boot?
multipath-boot?=false
14-4) OBPのmultipath-boot?プロパティにtrueを設定します。
# eeprom multipath-boot?=true
14-5) OBPのmultipath-boot?プロパティにtrueが設定されていることを確認します。
# eeprom
~
boot-device=/pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0d0460300,0:a /pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0d0460306,0:a
~
multipath-boot?=true