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

7.2.2 ZFS ブート環境のシステムディスクミラーリングの解除 (ZFS ミラー方式)

ここでは、ZFS ブート環境において、以下の構成で ZFS ミラー方式のシステムディスクミラーリングを解除する方法を説明します。

図7.10 解除前の構成

GDS : Global Disk Services


図7.11 解除後の構成

以降の手順では、物理スライス名、ボリューム名、プール名などを、実際のシステムで使用する名前に置き換えてください。

7.2.2.1 システムディスクミラーリングの解除の流れ (ZFS ブート環境 : ZFS ミラー方式)

ZFSミラー方式のシステムディスクミラーリングの解除は、以下の手順で行います。

図7.12 解除手順の概要

GDS : Global Disk Services


上図 [8] の手順 19) でシステムの再起動が必要ですが、それ以外の設定は、業務やアプリケーションプログラムを動作させたまま実行できます。

上図 [4] の手順 10) で ZFS による再同期化処理が実行されますが、このときも、業務やアプリケーションプログラムを停止する必要はありません。

ただし、より安全性が求められる場合は、業務やアプリケーションプログラムを停止し、システムのバックアップを採取してから解除を行ってください。

所要時間は、サーバやディスクの性能、ディスクやファイルシステムのサイズなどに左右され、システムによって異なります。

7.2.2.2 システムディスクミラーリングの解除手順 (ZFS ブート環境 : ZFS ミラー方式)

1) ミラーリングを解除した後にシステムディスクとして使用するディスクを決定し、物理スライス番号、SDX ディスク名、グループ名、ボリューム名を確認します。

プールに接続されているボリュームを確認し、ボリュームが存在するディスクを確認します。どちらのディスクもミラーリング解除後のシステムディスクにすることができます。

# 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
            /dev/sfdsk/System/dsk/Volume2  ONLINE       0     0     0
                                  (*2)
            /dev/sfdsk/System/dsk/Volume1  ONLINE       0     0     0
                                  (*3)

(*2) プールに接続されているボリュームのボリューム名

(*3) プールに接続されているボリュームのボリューム名


ボリューム情報の詳細を確認します。

# sdxinfo -e long -o Volume2
OBJ    NAME    TYPE   CLASS   GROUP   ~ SNUM PJRM
------ ------- ------ ------- ------- ~ ---- ----
volume Volume2 mirror System  Group2  ~   0    *
                                           (*4)

(*4) ボリュームを構成しているスライスのスライス番号


# sdxinfo -e long -o Volume1
OBJ    NAME    TYPE   CLASS   GROUP   ~ SNUM PJRM
------ ------- ------ ------- ------- ~ ---- ----
volume Volume1 mirror System  Group1  ~   0    *
                                           (*5)

(*5) ボリュームを構成しているスライスのスライス番号


# sdxinfo -D -c System
                (*6) ルートクラス名
OBJ   NAME    TYPE   CLASS   GROUP   DEVNAM  ~
----- ------- ------ ------- ------- ------- ~
disk  Root2   mirror System  Group2  c1t0d0  ~
disk  Root1   mirror System  Group1  c0t0d0  ~

# sdxinfo -S -c System
                (*7) ルートクラス名
OBJ    CLASS   GROUP   DISK    VOLUME  STATUS
------ ------- ------- ------- ------- --------
slice  System  Group2  Root2   Volume2 ACTIVE
slice  System  Group1  Root1   Volume1 ACTIVE

この例では、ディスク c1t0d0 を、ミラーリング解除後のシステムディスクにします。

物理スライス番号は 0 、SDX ディスク名は Root2 、グループ名は Group2 、ボリューム名は Volume2 です。


2) ミラーリング解除後にシステムディスクとして使用するディスク上のボリュームを ZFS ルートプールから切り離します。

# zpool detach rpool /dev/sfdsk/System/dsk/Volume2
               (*1)             (*2)       (*3)

(*1) ZFS ルートプール名 (zpool status コマンドで確認可能 )

(*2) ルートクラス名

(*3) ボリューム名


3) ミラーリングが解除されていることを確認します。

# 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/Volume1  ONLINE       0     0     0
          (*2)

以下のように表示されることを確認します。

4) ボリュームを停止します。

# sdxvolume -F -c System -v Volume2
                  (*1)      (*2)

(*1) ルートクラス名

(*2) ボリューム名


5) ボリュームを削除します。

# sdxvolume -R -c System -v Volume2
                  (*1)      (*2)

(*1) ルートクラス名

(*2) ボリューム名


6) グループを削除します。

# sdxgroup -R -c System -g Group2
                 (*1)      (*2)

(*1) ルートクラス名

(*2) システムディスクが接続されていたグループのグループ名


7) ディスクをルートクラスから削除します。

# sdxdisk -R -c System -d Root2
                (*1)      (*2)

(*1) ルートクラス名

(*2) SDX ディスク名


8) 手順 7) のディスクを初期化します。

# dd if=/dev/zero of=/dev/rdsk/c1t0d0s0 bs=1024k
                              (*1)   (*2)

(*1) 手順 7) でルートクラスから削除したディスク

(*2) ZFS ルートプールを構成するボリュームの物理スライス番号 ( 手順 1) で確認した物理スライス番号 )


# format -e

(*1) のディスク (c1t0d0) を選択し、"Disk not labeled. Label it now?" という問合せが表示された場合、y を入力します。


9) 手順 8) のディスクにスライスを作成します。

OS の format(1M) コマンド等を使用し、元のシステムディスクと同じスライス構成にします。

参考

システムディスクのミラーリングを設定する際にシステムディスクのスライス構成を紙などに記録しなかった場合、システムディスクのグループに接続されているディスク ( この例では Root1) と同じスライス構成にしてください。グループに接続されているディスクのスライス構成は、OS のインストール CD でシステムを起動し、 format(1M) コマンドまたは prtvtoc(1M) コマンドで確認してください。

10) 手順 9) で作成したスライスを、 ZFS ルートプールに接続します。

zpool attach コマンド実行後、ZFS の再同期処理が実行されます。このとき、コンソールに OS のメッセージ (SUNW-MSG-ID: ZFS-8000-QJ) が出力されることがありますが、システムには影響ありません。

# zpool attach rpool /dev/sfdsk/System/dsk/Volume1 c1t0d0s0
               (*1)             (*2)       (*3)    (*4)

(*1) ZFS ルートプール名 (zpool status コマンドで確認可能 )

(*2) ルートクラス名

(*3) ZFS ルートプールを構成するボリュームのボリューム名

(*4) 手順 9) で作成したスライス


11) 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
            /dev/sfdsk/System/dsk/Volume1  ONLINE       0     0     0
            (*2)
            c1t0d0s0                       ONLINE       0     0     0
            (*3)

以下のように表示されることを確認します。

12) 手順 10) で接続したスライスに、ブートブロックをインストールします。

以下の環境の場合、この手順は実行しないでください。

13) ZFS ルートプールに接続されているボリュームを切り離します。

# zpool detach rpool /dev/sfdsk/System/dsk/Volume1
               (*1)             (*2)       (*3)

(*1) ZFS ルートプール名 (zpool status コマンドで確認可能 )

(*2) ルートクラス名

(*3) ボリューム名


14) ミラーリングが解除されていることを確認します。

# zpool status rpool
               (*1) ZFS ルートプール名
  pool: rpool
 state: ONLINE
  scan: resilvered ~
config:
        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c1t0d0s0  ONLINE       0     0     0
          (*2)

以下のように表示されることを確認します。

15) ボリュームを停止します。

# sdxvolume -F -c System -v Volume1
                  (*1)      (*2)

(*1) ルートクラス名

(*2) ボリューム名


16) ボリュームを削除します。

# sdxvolume -R -c System -v Volume1
                  (*1)      (*2)

(*1) ルートクラス名

(*2) ボリューム名


17) グループを削除します。

# sdxgroup -R -c System -g Group1
                 (*1)      (*2)

(*1) ルートクラス名

(*2)グループ名


18) ディスクをルートクラスから削除します。

# sdxdisk -R -c System -d Root1
                (*1)      (*2)

(*1) ルートクラス名

(*2) SDX ディスク名


19) OpenBoot の boot-device プロパティを設定します。

設定手順は、以下の4つの場合で異なります。

[SANブート環境でシステムディスクが12Gbps SASカードに接続されている場合]

19a-1) チューニングパラメタを削除します。

/etc/opt/FJSVsdx/sdx.cfファイルに“SDX_BOOT_PROPERTY=off”を削除します。

# vi /etc/opt/FJSVsdx/sdx.cf

SDX_BOOT_PROPERTY=off ← 本行を削除

19a-2) チューニングパラメタが削除されていることを確認します。

# grep SDX_BOOT_PROPERTY /etc/opt/FJSVsdx/sdx.cf
#

19a-3) ZFSルートプール用のボリュームを構成するスライスのパーティションを確認します。

# ls -l /dev/dsk | grep c0t600000E00D28000000280CC600000000d0s0
                        (*1)
lrwxrwxrwx 1 root root 64 Feb  2 13:57 c0t600000E00D28000000280CC600000000d0s0 ->
../../devices/scsi_vhci/disk@g600000e00d28000000280cc600000000:a
                                                               (*2)

(*1) ZFSルートプール用のボリュームを構成するスライス

(*2) スライスのパーティション


19a-4) ブートディスクの情報を確認します。

# prtconf -v /dev/rdsk/c0t600000E00D28000000280CC600000000d0s0
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@w500000e0da0cc620,0
        lsc#3(online)                                           (*1)  (*2)

(*1) diskノード名 ( この例では disk@w500000e0da0cc620,0 )

(*2) SAS Address ( この例では 500000e0da0cc620 )


19a-5) OpenBoot 環境に移行します。

# shutdown -y -g0 -i0

19a-6) ディスクが接続している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 (手順19a-4)の*2で確認したSAS Address)


19a-7) OpenBoot 環境でboot-deviceプロパティを設定します。

ok setenv boot-device /pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0da0cc620:a
                      (*4)

(*4) 手順 19a-6) の デバイスパス(*1) と、手順 19a-4) のdiskノード名(*1)と、手順19a-3)のスライスのパーティション (*2) を連結したデバイス名


19a-8) OpenBoot 環境でmultipath-boot?プロパティを設定します。

ok setenv multipath-boot? false

19a-9) システムを起動します。

ok boot

[6Gbps SAS カードに接続されている増設ファイルユニットのディスク、または、SPARC M12/M10SPARC T4-4/T4-2/T4-1/T3-4/T3-2/T3-1 の内蔵ディスクの場合 ]

19b-1) ZFSルートプールを構成するスライスのパーティションを確認します。

[Solaris 11.3 以前の例]

# ls -l /dev/dsk | grep c0t5000CCA0150FEA10d0s0
                        (*1)
lrwxrwxrwx   1 root     root          48 Apr 25 13:46 c0t5000CCA0150FEA10d0s0 ->
../../devices/scsi_vhci/disk@g5000cca0150fea10:a
                                              (*2)

(*1) 手順 10) で接続したスライス

(*2) スライスのパーティション


[Solaris 11.4 以降の例]

# ls -l /dev/dsk | grep c0t50000397683346A9d0s0
                        (*1)
lrwxrwxrwx   1 root     root          48  Jul 27  19:23 c0t50000397683346A9d0s0 ->
../../devices/scsi_vhci/disk@g50000397683346a9:a
                                              (*2)

(*1) 手順 10) で接続したスライス

(*2) スライスのパーティション


19b-2) ブートディスクの情報を確認します。

[Solaris 11.3 以前の場合]

obp-path パラメタを確認します。

# prtconf -v /dev/rdsk/c0t5000CCA0150FEA10d0s0
disk, instance #0
    Driver properties:
        ~
    Hardware properties:
        ~
    Paths from multipath bus adapters:
        ~
            name='obp-path' type=string items=1
                value='/pci@400/pci@2/pci@0/pci@e/scsi@0/disk@w5000cca0150fea11,0'
                       (*3)
                ~
    Device Minor Nodes:
        ~

(*3) obp-pathのパラメタ

[Solaris 11.4 以降の場合]

ddi-boot-path パラメタを確認します。

# prtconf -v /dev/rdsk/c0t50000397683346A9d0s2
disk, instance ~
    Device Hold:
        ~
    Driver properties:
        ~
    Hardware properties:
        ~
    Paths from multipath bus adapters:
        Path 1: /pci@8000/pci@4/pci@0/pci@0/scsi@0/iport@f/disk@w50000397683346aa,0
        mpt_sas#2 (online)
                name='ddi-boot-path' type=string items=1
                    value='/pci@8000/pci@4/pci@0/pci@0/scsi@0/disk@w50000397683346aa,0'
                           (*3)
                ~
    Device Minor Nodes:
        ~

(*3) ddi-boot-path のパラメタ


19b-3) OpenBoot 環境に移行します。

# shutdown -y -g0 -i0

19b-4) boot-device プロパティを設定します。

[Solaris 11.3 以前の場合]

ok setenv boot-device /pci@400/pci@2/pci@0/pci@e/scsi@0/disk@w5000cca0150fea11,0:a
                       (*4)

(*4) 手順 19b-2) で確認した obp-path パラメタ (*3) と 手順 19b-1) で確認したパーティション (*2) を連結したデバイス名

[Solaris 11.4 以降の場合]

ok setenv boot-device /pci@8000/pci@4/pci@0/pci@0/scsi@0/disk@w50000397683346aa,0:a
                       (*4)

(*4) 手順 19b-2) で確認した ddi-boot-path パラメタ (*3) と手順 19b-1) で確認したパーティション (*2) を連結したデバイス名


19b-5) システムを起動します。

ok boot

[SAN ブート環境の場合 ]

19c-1) 「7.2.1.2 システムディスクミラーリングの設定手順 (ZFS ブート環境 : ZFS ミラー方式)」の手順 2) で確認したデバイスパスのうち、本小項の手順 10) で接続したスライスのデバイスパス名を、boot-device プロパティに設定します。

参照

boot-device プロパティの設定方法は、以下のドキュメントを参照してください。

  • 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/


[その他の場合 ]

19d-1) ZFSルートプールを構成するスライスのデバイスパスを確認します。

# ls -l /dev/dsk | grep c1t0d0s0
                        (*1)
lrwxrwxrwx   1 root     root          63 Aug 20 12:00 c1t0d0s0 ->
../../devices/pci@1f,4000/scsi@3/sd@1,0:a
             (*2)

(*1) 手順 10) で接続したスライス

(*2) スライスのデバイスパス


19d-2) OpenBoot 環境に移行します。

# shutdown -y -g0 -i0

19d-3) OpenBoot 環境でデバイス名を確認し、確認結果に応じた方法で boot-device プロパティを設定します。

ok show-devs /pci@1f,4000/scsi@3
             (*3)
~
/pci@1f,4000/scsi@3/disk

(*3) 手順 19d-1)で表示されたパス (*2) から最終要素 ( この例では /sd@1,0:a) を除いたパス


上記確認結果に応じた方法で、 boot-device プロパティを設定します。

19d-4) システムを起動します。

ok boot