この章では、 Solaris ボリュームマネージャの RAID 1 ボリュームに関連する作業について説明します。 関連する概念については、第10章「RAID 1 (ミラー) ボリューム (概要)」を参照してください。
次の表に、Solaris ボリュームマネージャの RAID 1 ボリュームを管理するのに必要な作業を示します。
作業 |
説明 |
参照先 |
---|---|---|
未使用のスライスからミラーを作成する |
Solaris ボリュームマネージャの GUI か metainit コマンドを使って、未使用のスライスからミラーを作成します。 | |
既存のファイルシステムからミラーを作成する |
Solaris ボリュームマネージャの GUI か metainit コマンドを使って、既存のファイルシステムからミラーを作成します。 | |
ミラー化されたルートの代替起動デバイスへのパスを指定する |
代替起動デバイスへのパスを起動手順の中で指定します。 | |
サブミラーを接続する |
Solaris ボリュームマネージャの GUI か metattach コマンドを使ってサブミラーを接続します。 | |
サブミラーを切り離す |
Solaris ボリュームマネージャの GUI か metattach コマンドを使ってサブミラーを切り離します。 | |
サブミラーをオンラインまたはオフラインにする |
Solaris ボリュームマネージャの GUI か metaonline コマンドを使って、サブミラーをオンラインにします。 Solaris ボリュームマネージャの GUI か metaoffline コマンドを使用して、サブミラーをオフラインにします。 | |
サブミラー内のコンポーネントを有効にする |
Solaris ボリュームマネージャの GUI か metareplace コマンドを使って、サブミラー内のスライスを有効にします。 | |
ミラーの状態をチェックする |
Solaris ボリュームマネージャの GUI か metastat コマンドを使って、RAID 1 ボリュームの状態をチェックします。 | |
ミラーオプションを変更する |
Solaris ボリュームマネージャの GUI か metaparam コマンドを使って、特定の RAID 1 ボリュームのオプションを変更します。 | |
ミラーを拡張する |
Solaris ボリュームマネージャの GUI か metattach コマンドを使ってミラーの容量を拡張します。 | |
サブミラー内のスライスを置き換える |
Solaris ボリュームマネージャの GUI か metareplace コマンドを使って、サブミラーのスライスを交換します。 | |
サブミラーを置き換える |
Solaris ボリュームマネージャの GUI か metattach コマンドを使ってサブミラーを置き換えます。 | |
ミラーを削除する (ミラー化を解除する) |
Solaris ボリュームマネージャの GUI、あるいは、metadetach または metaclear コマンドを使って、ファイルシステムのミラー化を解除します。 | |
マウント解除できないファイルシステムのミラーを削除する (ミラー化を解除する) |
Solaris ボリュームマネージャの GUI、あるいは、 metadetach または metaclear コマンドを使って、マウント解除できないファイルシステムのミラーを削除 (ミラー化を解除) します。 | |
ミラーを使ってバックアップを実行する |
Solaris ボリュームマネージャの GUI、あるいは、metaonline と metaoffline コマンドを使って、ミラーのバックアップを行います。 |
「Solaris ボリュームマネージャコンポーネントを作成するための前提条件 」と 「RAID 1 ボリュームを作成するための背景情報 」を確認します。
サブミラーとして使用する 2 つのストライプまたは連結を作成します。
「RAID 0 (ストライプ方式) ボリュームを作成するには 」または 「RAID 0 (連結方式) ボリュームを作成するには 」を参照してください。
次のどちらかの方法でミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使って 1 面ミラーを作成します。
metainit volume-name -m submirror-name |
volume-name は、作成するボリュームの名前です。
-m はミラーを作成することを意味します。
submirror-name には、ミラーの最初のサブミラーとして使用するコンポーネントの名前を指定します。
詳細については、次の例と metainit(1M) のマニュアルページを参照してください。
次のどちらかの方法で 2 つめのサブミラーを追加します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、変更するミラーを選択します。 「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブを開き、画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
次の形式の metattach コマンドを実行します。
metattach mirror-name new-submirror-name |
volume-name は、変更する RAID 1 ボリュームの名前です。
submirror-name には、ミラーの次のサブミラーとして使用するコンポーネントの名前を指定します。
詳細については、次の例と metattach(1M) のマニュアルページを参照してください。
# metainit d51 1 1 c0t0d0s2 d51: Concat/Stripe is setup # metainit d52 1 1 c1t0d0s2 d52: Concat/Stripe is setup # metainit d50 -m d51 d50: Mirror is setup # metattach d50 d52 d50: Submirror d52 is attached |
この例では、2 面ミラー d50 を作成します。 metainit コマンドは、 RAID 0 ボリュームである、2 つのサブミラー (d51 と d52) を作成します。 metainit -m コマンドは、RAID 0 ボリューム d51 から 1 面ミラーを作成します。 metattach コマンドは、 d52 を接続して 2 面ミラーを作成し、同期を取り直します。 (接続されたサブミラー上のデータは、再同期の際に他のサブミラーによって上書きされます。) 最後にミラーが作成されたことを示すメッセージが表示されます。
# metainit d51 1 1 c0t0d0s2 d51: Concat/Stripe is setup # metainit d52 1 1 c1t0d0s2 d52: Concat/Stripe is setup # metainit d50 -m d51 d52 metainit: d50: WARNING: This form of metainit is not recommended. The submirrors may not have the same data. Please see ERRORS in metainit(1M) for additional information. d50: Mirror is setup |
この例でも、2 面ミラー d50 を作成します。 metainit コマンドは、 RAID 0 ボリュームである、2 つのサブミラー (d51 と d52) を作成します。 metainit -m コマンドは、2 つのサブミラーから RAID 0 ボリューム d51 を作成します。ただし、再同期は実行されません。 このミラーの情報はすべて無効であるとみなされるため、ミラーを使用する前に、newfs などを実行することによって情報が再生成されます。
新たに作成したミラーにファイルシステムを作成する方法については、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 16 章「UFS、TMPFS、LOFS ファイルシステムの作成 (手順)」を参照してください。 データベースなど、raw ボリュームを使用するアプリケーションは、独自の方法でこのボリュームを認識できなければなりません。
この手順では、既存のファイルシステムをミラー化します。 このファイルシステムがマウント解除できる場合は、システムを再起動しなくても、ここに示すすべての手順を完了することができます。 ルート (/) など、マウント解除できないファイルシステムの場合は、手順の中でシステムの再起動が必要になります。
スライス上に構築された既存のファイルシステムから RAID 1 ボリュームを作成する場合は、そのスライスだけを一次 RAID 0 ボリューム (サブミラー) に含めるようにします。 ルートなど、システムにとって重要なファイルシステムをミラー化する場合は、すべてのサブミラーが単一のスライスで構成されていなければなりません。
ルート (/) をミラー化するときは、一次サブミラーに障害が発生し、システムを再起動しなければならない場合に備えて、二次ルートスライスの名前を記録しておく必要があります。 この情報は、システム上に記録するのではなく、書き留めておきます。システムは常に使用可能であるとは限りません。 代替起動デバイスの記録と代替起動デバイスからの起動については、第26章「Solaris ボリュームマネージャの障害追跡 (作業) 」を参照してください。
x86 システムでルートをミラー化する場合は、RAID 0 や RAID 1 デバイスを作成する前に、起動情報を代替起動ディスクに記録する必要があります。 『Solaris のシステム管理 (基本編)』の第 10 章「システムのブート (手順)」を参照してください。
この手順では、既存のデバイスを c1t0d0s0 とします。 2 番目のデバイス c1t1d0s0 はミラーの 2 番目として使用します。 サブミラーは d1 と d2、ミラーは d0 です。
まず metainit コマンドで 1 面ミラーを作成してから、metattach コマンドで追加のサブミラーを接続します。 metattach コマンドを使用しないと、再同期は実行されません。 この場合、Solaris ボリュームマネージャはミラーの両側が同一であるとみなし、両方を区別なく使用するため、データが破壊されるおそれがあります。
「Solaris ボリュームマネージャコンポーネントを作成するための前提条件 」と 「RAID 1 ボリュームを作成するための背景情報 」を確認します。
ミラー化するファイルシステムが含まれているスライスを特定します (この例では c1t0d0s0)。
次のどちらかの方法を使って、前の手順で特定したスライスに新しい RAID 0 ボリュームを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metainit -f raid-0-volume-name 1 1 ctds-of-slice コマンドを実行します。
# metainit -f d1 1 1 c1t0d0s0 |
未使用のスライス (この例では c1t1d0s0) に 2 番目の RAID 0 ボリューム (連結) を作成します。これは、後で 2 番目のサブミラーとして使用します。 2 番目のサブミラーのサイズは、最初のサブミラー以上でなければなりません。 この手順では、次のどちらかの方法を使用します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metainit second-raid-0-volume-name 1 1 ctds-of-slice コマンドを実行します。
# metainit d2 1 1 c1t1d0s0 |
次のどちらかの方法で 1 面ミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metainit mirror-name -m raid-0-volume-name コマンドを実行します。
# metainit d0 -m d1 |
詳細については、metainit(1M) のマニュアルページを参照してください。
既存のファイルシステムからミラーを作成する場合は、データが破壊されないように、次の 2 つの手順に忠実に従ってください。
ルート (/) 以外のファイルシステムをミラー化する場合は、そのファイルシステムのマウント手順がミラー (ブロックデバイスではなく) を参照するように /etc/vfstab ファイルを編集する必要があります。
/etc/vfstab ファイルの詳細については、『Solaris のシステム管理 (デバイスとファイルシステム)』の「ファイルシステムのマウント」を参照してください。
次のいずれかの方法で、新たにミラー化したファイルシステムをマウントし直します。
ルート (/) ファイルシステムをミラー化している場合は、metaroot d0 コマンドを実行します (d0 には、先ほど作成したミラーの名前を指定する)。次にシステムを再起動します。
詳細については、metaroot(1M) のマニュアルページを参照してください。
マウント解除可能なファイルシステムをミラー化している場合は、ファイルシステムをマウント解除してから再びマウントします。
マウント解除できない、ルート (/) 以外のファイルシステムをミラー化している場合は、システムを再起動します。
metattach コマンドを使用して、2 番目のサブミラーを接続します。
# metattach d0 d2 |
詳細については、metattach(1M) のマニュアルページを参照してください。
ルートファイルシステムをミラー化した場合は、代替起動パスを記録しておきます。
「代替起動デバイスへのパスを記録するには」を参照してください。
# metainit -f d1 1 1 c1t0d0s0 d1: Concat/Stripe is setup # metainit d2 1 1 c1t1d0s0 d2: Concat/Stripe is setup # metainit d0 -m d1 d0: Mirror is setup # umount /master (ファイルシステムがミラーを参照するように /etc/vfstab ファイルを編集する) # mount /master # metattach d0 d2 d0: Submirror d2 is attached |
まず、-f オプションを使用して、最初の連結 d1 を強制的に作成します。これには、/dev/dsk/c1t0d0s0 にマウントされているファイルシステム /master が含まれています。 次に 2 番目の連結 d2 を /dev/dsk/c1t1d0s0 から作成します。 (このスライスのサイズは d1 以上である必要があります)。 そして、metainit コマンドに -m オプションを付けて実行し、d1 から1 面ミラー d0 を作成します。
次に、このファイルシステムのエントリがミラーを参照するように /etc/vfstab ファイルを編集します。 たとえば、次の行を見てください。
/dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 /var ufs 2 yes - |
上記の行を次のように変更します。
/dev/md/dsk/d0 /dev/md/rdsk/d0 /var ufs 2 yes - |
最後に、ファイルシステムをマウントし直し、サブミラー d2 をミラーに接続して、ミラーの同期を取り直します。 RAID 0 と RAID 1 ボリュームが設定され、サブミラー d2 が接続されたことを示すメッセージが表示されます。
# metainit -f d1 1 1 c0t0d0s0 d1: Concat/Stripe is setup # metainit d2 1 1 c0t1d0s0 d2: Concat/Stripe is setup # metainit d0 -m d1d0: Mirror is setup # metaroot d0 # lockfs -fa # reboot ... # metattach d0 d2 d0: Submirror d2 is attached # ls -l /dev/rdsk/c0t1d0s0 lrwxrwxrwx 1 root root 88 Feb 8 15:51 /dev/rdsk/c1t3d0s0 -> ../../devices/iommu@f,e0000000/vme@f,df010000/SUNW,pn@4d,1080000/ipi3sc@0,0/i d@3,0:a,raw |
システムを再起動する前に、2 番目のサブミラーを接続しないでください。 metaroot コマンドを実行した後、2 番目のサブミラーを接続する前に、システムを再起動する必要があります。
まず、-f オプションを使って最初の RAID 0 ボリューム d1 を強制的に作成します。これには、/dev/dsk/c0t0d0s0 にマウントされているファイルシステム、ルート (/) が含まれています。 次に 2 番目の連結 d2 を /dev/dsk/c0t1d0s0 から作成します。 (このスライスのサイズは d1 以上でなければなりません。) そして、metainit コマンドに -m オプションを付けて実行し、ルート (/) を含む連結から1 面ミラー d0 を作成します。
次に、metaroot コマンドを使用して、/etc/vfstab ファイルと /etc/system ファイルを編集し、システムがボリューム上のルート (/) ファイルシステムから起動されるように指定します。 (再起動を行う前に lockfs -fa コマンドを実行するようにします)。 再起動が終わると、サブミラー d2 がミラーに接続され、ミラーの再同期が実行されます (連結とミラーが設定され、サブミラー d2 が接続されたことを示すメッセージが表示されます)。 最後に、ルート raw デバイスに対して ls-l コマンドを実行して、代替ルートデバイスへのパスを表示します。このパスは、このデバイスからシステムを起動しなければならない状況が発生したときに必要になります。
# metainit -f d12 1 1 c0t3d0s6 d12: Concat/Stripe is setup # metainit d22 1 1 c1t0d0s6 d22: Concat/Stripe is setup # metainit d2 -m d12 d2: Mirror is setup (/usr がミラーを参照するように /etc/vfstab ファイルを編集する) # reboot ... # metattach d2 d22 d2: Submirror d22 is attached |
まず、-f オプションを使用して、最初の連結 d12 を強制的に作成します。これには、/dev/dsk/c0t3d0s6 にマウントされているファイルシステム /usr が含まれています。 次に 2 番目の連結 d22 を /dev/dsk/c1t0d0s6 から作成します。 (このスライスのサイズは d12 以上である必要があります)。 metainit コマンドに -m オプションを付けて実行し、/usr を含む連結から 1 面ミラー d2 を作成します。 次に、/usr のエントリがミラーを参照するように /etc/vfstab ファイルを編集します。 たとえば、次の行を見てください。
/dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /usr ufs 1 yes - |
上記の行を次のように変更します。
/dev/md/dsk/d2 /dev/md/rdsk/d2 /usr ufs 1 yes - |
再起動が終わると、2 番目のサブミラー d22 がミラーに接続され、ミラーの再同期が実行されます。 (連結とミラーが設定され、サブミラー d22 が接続されたことを示すメッセージが表示されます。)
# metainit -f d11 1 1 c0t0d0s1 d11: Concat/Stripe is setup # metainit d21 1 1 c1t0d0s1 d21: Concat/Stripe is setup # metainit d1 -m d11 d1: Mirror is setup (swap がこのミラーを参照するように /etc/vfstab ファイルを編集する) # reboot ... # metattach d1 d21 d1: Submirror d21 is attached |
まず、-f オプションを指定して最初の連結 d11 を強制的に作成します。これには、/dev/dsk/c0t0d0s1 にマウントされているファイルシステム swap が含まれています。 次に 2 番目の連結 d21 を /dev/dsk/c1t0d0s1 から作成します。 (このスライスのサイズは d11 以上である必要があります)。 metainit コマンドに -m オプションを付けて実行し、swap を含む連結から 1 面ミラー d1 を作成します。 次に、/etc/vfstab ファイルにswap のエントリがある場合は、このエントリがミラーを参照するようにファイルを編集する必要があります。 たとえば、次の行を見てください。
/dev/dsk/c0t0d0s1 - - swap - no - |
上記の行を次のように変更します。
/dev/md/dsk/d1 - - swap - no - |
再起動が終わると、2 番目のサブミラー d21 がミラーに接続され、ミラーの再同期が実行されます。 (連結とミラーが設定され、サブミラー d21 が接続されたことを示すメッセージが表示されます。)
swap をミラー化した場合、クラッシュダンプを保存するためには、dumpadm コマンドを使ってダンプデバイスをボリュームとして構成する必要があります。 たとえば、swap デバイスの名前が /dev/md/dsk/d2 であれば、dumpadm コマンドを使ってこのデバイスをダンプデバイスとして設定します。
ルート (/) をミラー化する作業は、マウント解除できない他のファイルシステムをミラー化する場合の作業と同じです。ただし、ルートのミラー化では、/etc/vfstab ファイルを手動で編集する代わりに、metaroot コマンドを実行する必要があります。 「ファイルシステムから RAID 1 ボリュームを作成するには」を参照してください。 次の各項では、ルート (/) ファイルシステムのミラー化に関する特殊な考慮事項と問題点について説明します。
ルート (/) ファイルシステムをミラー化すると、エラーメッセージがコンソールに表示され、(/etc/syslog.conf での定義に従って) システムログに記録されます。 これらのメッセージは問題を意味するものではありません。現在使用していないデバイスタイプすべてに対して表示されます。使用していないモジュールは強制的にロードできないからです。 次のようなエラーメッセージが表示されます。
Jul 13 10:17:42 ifr genunix: [ID 370176 kern.warning] WARNING: forceload of misc/md_trans failed Jul 13 10:17:42 ifr genunix: [ID 370176 kern.warning] WARNING: forceload of misc/md_raid failed Jul 13 10:17:42 ifr genunix: [ID 370176 kern.warning] WARNING: forceload of misc/md_hotspares failed |
このような警告メッセージは無視してかまいません。
ルート (/) をミラー化する場合は、一次デバイスに障害が発生したときのために代替起動デバイスへのパスが必要になります。 代替起動デバイスを検出および記録する方法は、システムのアーキテクチャによって異なります。 「SPARC: 例 代替起動デバイスへのパスを記録する」または 「x86: 例 代替起動デバイスへのパスを記録する」を参照してください。
この例では、代替ルートデバイスへのパスを調べます。そのためには、ルート (/) ミラーに 2 番目のサブミラーとして接続されているスライスに対して ls -l コマンドを実行する必要があります。
# ls -l /dev/dsk/c1t3d0s0 lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c1t3d0s0 -> \ ../../devices/sbus@1,f8000000/esp@1,200000/sd@3,0:a |
ここで、/devices ディレクトリに続く次の文字列を記録しておきます。 /sbus@1,f8000000/esp@1,200000/sd@3,0:a
この文字列を編集して、メジャー名 (この場合は sd) を disk に変更し、「/sbus@1,f8000000/esp@1,200000/disk@3,0:a」のようにします。 システムが IDE バスを使用している場合、オリジナルのフルパスは次のようになります。
$ ls -l /dev/dsk/c0t0d0s0 lrwxrwxrwx 1 root root 38 Mar 13 15:03 /dev/dsk/c0t0d0s0 -> \ ../../devices/pci@1f,0/ide@d/dad@0,0:a |
メジャー名 dad を disk に変更すると、「/pci@1f,0/ide@d/disk@0,0:a」のようになります。
OpenBootTM Prom の nvalias コマンドを使用すると、二次ルート (/) ミラー用の「バックアップルート」デバイス別名を定義できます。 たとえば、次のように指定します。
ok nvalias backup_root /sbus@1,f8000000/esp@1,200000/disk@3,0:a |
次に、boot-device 別名が一次サブミラーと二次サブミラーの両方を参照するようにこの別名を再定義し、構成を保存します。サブミラーは、指定された順に使用されます。
ok printenv boot-device boot-device = disk net ok setenv boot-device disk backup-root net boot-device = disk backup-root net ok nvstore |
一次ルートディスクに障害が発生すると、システムは 2 番目のサブミラーから自動的に起動されます。 自動起動ではなく、手動で起動する場合は、次のように入力します。
ok boot backup_root |
この例では、代替起動デバイスへのパスを調べます。そのためには、ルート (/) ミラーに 2 番目のサブミラーとして接続されているスライスに対して ls -l コマンドを実行する必要があります。
# ls -l /dev/dsk/c1t0d0s0 lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c1t0d0s0 -> ../. ./devices/eisa/eha@1000,0/cmdk@1,0:a |
ここで、/devices ディレクトリに続く次の文字列を記録しておきます。 /eisa/eha@1000,0/cmdk@1,0:a
ミラー化されたルート (/) の一次サブミラーに障害が発生した場合は、他のサブミラーからシステムを起動する必要があります。 ミラーの 2 番目のサブミラーから自動的に起動するように構成することもできますし、2 番目のサブミラーから手動で起動するように構成することも可能です。
『Solaris のシステム管理 (基本編)』の第 10 章「システムのブート (手順)」を参照してください。
「can't attach labeled submirror to an unlabeled mirror」というエラーメッセージが表示された場合、ミラーに RAID 0 ボリュームを接続できなかったことを意味します。 ラベル付きボリューム (サブミラー) とは、その最初のコンポーネントがシリンダ 0 から始まるものをいいます。一方、ラベルなしボリュームの最初のコンポーネントはシリンダ 1 から始まります。Solaris ボリュームマネージャでは、ラベル付きサブミラーのラベルが壊れるのを防ぐため、ラベル付きサブミラーのラベルなしミラーへの接続を許可しません。
サブミラーとして使用するコンポーネント (連結またはストライプ) を特定します。
サブミラーのサイズは、ミラー内の既存のサブミラーと同じかそれ以上でなければなりません。 サブミラーとして使用するボリュームをまだ作成していない場合は、 「RAID 0 (ストライプ方式) ボリュームの作成」または 「RAID 0 (連結方式) ボリューム 」を参照してください。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
次のどちらかの方法でサブミラーを接続します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択してから、「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブをクリックします。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metattach mirror submirror コマンドを実行します。
# metattach mirror submirror |
詳細は、metattach(1M) のマニュアルページを参照してください。
# metastat d30 d30: mirror Submirror 0: d60 State: Okay ... # metattach d30 d70 d30: submirror d70 is attached # metastat d30 d30: mirror Submirror 0: d60 State: Okay Submirror 1: d70 State: Resyncing Resync in progress: 41 % done Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 2006130 blocks ... |
この例では、サブミラー d70 を 1 面ミラー d30 に接続して、2 面ミラーを作成します。 ミラー d30 は、最初、サブミラー d60 から構成されています。 サブミラー d70 は RAID 0 ボリュームです。 まず、サブミラーを接続する前に、metastat コマンドでミラーが「正常 (Okay)」状態であることを確認します。 metattach コマンドを実行すると、新しいサブミラーと既存のミラーの同期がとられます。 ミラーに新しいサブミラーが接続されると、そのことを示すメッセージが表示されます。 サブミラーとミラーの同期がとられていることを確認するために、 metastat コマンドを実行します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
「RAID 1 ボリュームの背景情報」を確認します。
次のどちらかの方法でサブミラーを切り離します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択してから、「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブをクリックします。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metadetach コマンドを使ってミラーからサブミラーを切り離します。
# metadetach mirror submirror |
詳細は、metadetach(1M) のマニュアルページを参照してください。
# metastat d5: mirror Submirror 0: d50 ... # metadetach d5 d50 d5: submirror d50 is detached |
この例では、metadetach コマンドを使用して、ミラー d5 からサブミラー d50 を切り離します。 d50 のスライスは他の場所で再使用されます。 サブミラーが切り離されると、そのことを示すメッセージが表示されます。
metaonline コマンドを実行できるのは、そのサブミラーが metaoffline コマンドによってオフラインにされている場合に限られます。 metaonline コマンドを実行すると、サブミラーとミラーの再同期が自動的に開始します。
metaoffline コマンドの機能は、metadetach コマンドの機能に似ています。 ただし、metaoffline コマンドでは、サブミラーとミラーの論理的な関連付けは切り離されません。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
「RAID 1 ボリュームの背景情報」を確認します。
次のどちらかの方法でサブミラーをオンラインまたはオフラインにします。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択してから、「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブをクリックします。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metaoffline コマンドでサブミラーをオフラインにします。
# metaoffline mirror submirror |
詳細については、metaoffline(1M) のマニュアルページを参照してください。
metaonline コマンドでサブミラーをオンラインにします。
# metaonline mirror submirror |
詳細については、metaonline(1M) のマニュアルページを参照してください。
# metaoffline d10 d11 d10: submirror d11 is offlined |
この例では、サブミラー d11 をミラー d10 からオフラインにします。 読み取りは、他のサブミラーから引き続き行われます。 最初の書き込みが行われた時点でミラーは同期していない状態になります。 この不整合の状態は、オフラインにしたサブミラーをオンラインに戻すと訂正されます。
# metaonline d10 d11 d10: submirror d11 is onlined |
この例では、サブミラー d11 をミラー d10 でオンラインに戻します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
「RAID 1 および RAID 5 ボリューム内のコンポーネントの交換と有効化の概要」と 「RAID 1 ボリュームの背景情報」を確認します。
次のどちらかの方法でサブミラー内のスライスを有効にします。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択してから、「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブをクリックします。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metareplace コマンドを使用して、サブミラー内のエラーが発生したスライスを有効にします。
# metareplace -e mirror failed-slice |
metareplace コマンドを実行すると、修復または交換されたスライスとミラーのほかの部分との再同期が自動的に開始されます。
詳細については、metareplace(1M) のマニュアルページを参照してください。
# metareplace -e d11 c1t4d0s7 d11: device c1t4d0s7 is enabled |
この例では、ミラー d11 のサブミラーに含まれるスライス c1t4d0s7 にソフトエラーがあります。 -e オプションを付けた metareplace コマンドを実行して、エラーの発生したスライスを有効にします。
物理ディスクに障害が発生した場合は、そのディスクをシステム上で利用可能なほかのディスク (およびそのスライス) と交換できます (「サブミラー内のスライスを交換するには 」を参照)。 あるいは、ディスクを修復または交換し、フォーマットした上で、この例のように、 -e オプションを指定した metareplace コマンドを使用することもできます。
Solaris ボリュームマネージャでは RAID 1 ボリュームやサブミラーの状態が表示されるため、システム管理者は、どのような保守が必要であるか判断できます。 次の表に、ミラーの状態を示します。
表 111 サブミラーの状態
状態 |
説明 |
---|---|
正常 (Okay) |
サブミラーにはエラーがなく正常に動作しています。 |
再同期中 (Resyncing) |
サブミラーで再同期処理が実行されている。 エラーが発生したが、すでに訂正され、オンラインに戻されたか、あるいは、新しいサブミラーが接続されています。 |
保守が必要 (Needs Maintenace) |
サブミラー内のスライスに入出力エラーまたはオープンエラーが発生しました。 スライスに対するすべての読み取りと書き込みはすでに停止されています。 |
また、metastat コマンドを実行すると、サブミラー内のスライスごとに、「デバイス(Device)」(ストライプに属するスライスのデバイス名) や、「開始ブロック(Start Block)」(スライスが始まるブロック)、「Dbase」(スライスに状態データベースの複製が含まれているかどうか)、「状態 (State)」(スライスの状態)、「ホットスペア(Hot Spare)」(障害が発生したスライスのホットスペアとして使用されるスライス) が表示されます。
ミラーのエラーに対処する場合は、おそらく、スライスの状態がもっとも重要な情報となります。 サブミラーの状態は、「正常 (Okay)」や「保守が必要 (Needs Maintenance)」などの一般的な状態情報を提供するだけです。 サブミラーの状態が「保守が必要(Needs Maintenance)」の場合は、スライスの状態を参照する必要があります。 スライスの状態が「保守 (Maintenance)」の場合と「最後にエラー (Last Erred)」の場合では、障害から回復するための処置が異なります。 スライスの状態が「保守 (Maintenance)」だけの場合は、どのような順序でスライスを修理してもかまいませんが、 「保守 (Maintenance)」と「最後にエラー (Last Erred)」のスライスが混在している場合は、「保守 (Maintenance)」のスライスを修復してから「最後にエラー (Last Erred)」のスライスを修復する必要があります。 「RAID 1 および RAID 5 ボリューム内のコンポーネントの交換と有効化の概要」を参照してください。
次の表に、サブミラーのスライスの状態と実行可能な処置を示します。
表 112 サブミラーのスライスの状態
状態 |
説明 |
処置 |
---|---|---|
正常 (Okay) |
コンポーネントにエラーはなく、正常に動作しています。 |
必要ない |
再同期中 (Resyncing) |
コンポーネントで再同期処理が実行されています。 エラーが発生したが、すでに訂正され、オンラインに戻されたか、あるいは、新しいサブミラーが接続されています。 |
必要であれば、再同期処理が終了するまでサブミラーの状態を監視します。 |
保守 (Maintenance) |
コンポーネントで 入出力エラーかオープンエラーが発生しました。 このコンポーネントに対するすべての読み取りと書き込みはすでに停止されています。 |
障害が発生したコンポーネントを有効にするか交換します。 「サブミラー内のスライスを有効にするには 」または 「サブミラー内のスライスを交換するには 」を参照してください。 metastat コマンドを実行すると、metareplace コマンドを使って行うべき処置を示す invoke 回復メッセージが表示されます。 metareplace -e コマンドを使用することもできます。 |
最後にエラー (Last Erred) |
コンポーネントで 入出力エラーかオープンエラーが発生しました。 しかし、別のスライスに障害があるため、データは他のスライスには複製されません。 したがって、入出力は引き続きこのスライスに対して行われます。 この入出力がエラーになると、ミラー入出力は失敗します。 |
まず、「保守 (Maintenance)」状態のコンポーネントを有効にするか、交換します。 「サブミラー内のスライスを有効にするには 」または 「サブミラー内のスライスを交換するには 」を参照してください。 通常は、このエラーがあるとデータが失われるため、ミラーの修復後にミラーを検証する必要があります。 ファイルシステムの場合は、fsck コマンドを実行してからデータをチェックします。 アプリケーションやデータベースでは、独自の方法でデバイスを検証できなければなりません。 |
次のどちらかの方法でミラーやサブミラーの状態をチェックします。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択し、「アクション (Action)」、「プロパティ (Properties)」の順に選択します。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
ミラーに対して metastat コマンドを実行し、各サブミラーの状態、パス番号、読み取りオプション、書き込みオプション、およびミラーの合計ブロック数を表示します。 たとえば、1 面ミラー d70 の状態をチェックするには、次のようにします。
# metastat d70 d70: Mirror Submirror 0: d71 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 12593637 blocks d71: Submirror of d70 State: Okay Size: 12593637 blocks Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t3d0s3 0 No Okay Yes Stripe 1: Device Start Block Dbase State Reloc Hot Spare c1t3d0s4 0 No Okay Yes Stripe 2: Device Start Block Dbase State Reloc Hot Spare c1t3d0s5 0 No Okay Yes |
ミラーのパス番号、読み取りオプション、または書き込みオプションを変更する方法については、「RAID 1 ボリュームオプションを変更するには」を参照してください。
デバイス状態のチェックについては、metastat(1M) のマニュアルページを参照してください。
# metastat d0: Mirror Submirror 0: d1 State: Okay Submirror 1: d2 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 5600 blocks d1: Submirror of d0 State: Okay Size: 5600 blocks Stripe 0: Device Start Block Dbase State Hot Spare c0t2d0s7 0 No Okay ... |
metastat コマンドは、ミラーのサブミラーごとに、その状態、「invoke」行 (エラーがある場合)、割り当てられたホットスペア集合 (ホットスペアがある場合)、ブロック数、サブミラーの各スライスの情報を表示します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
次のどちらかの方法でミラーオプションを変更します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択し、「アクション (Action)」、「プロパティ (Properties)」の順に選択します。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metaparam コマンドを使ってミラーのオプションを表示および変更します。 たとえば、読み取りポリシーについて、ミラーを「round robin」から、「first」に変更する場合は、次のコマンドを実行します。
# metaparam -r first mirror |
ミラーオプションについては、「RAID 1 ボリュームのオプション 」を参照してください。 また、metaparam(1M) のマニュアルページも参照してください。
# metaparam -r geometric d30 # metaparam d30 d30: mirror current parameters are: Pass: 1 Read option: geometric (-g) Write option: parallel (default) |
この例の -r オプションは、ミラーの読み取りポリシーを geometric に変更します。
# metaparam -w serial d40 # metaparam d40 d40: mirror current parameters are: Pass: 1 Read option: roundrobin (default) Write option: serial (-S) |
この例の -w オプションは、ミラーの書き込みポリシーを serial に変更します。
# metaparam -p 5 d50 # metaparam d50 d50: mirror current parameters are: Pass: 5 Read option: roundrobin (default) Write option: parallel (default) |
この例の -p オプションは、ミラーのパス番号を 5 に変更します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
「RAID 1 ボリュームの背景情報」を確認します。
次のどちらかの方法でミラーを拡張します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択してから、「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブをクリックします。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metattach コマンドを使って各サブミラーにスライスを接続します。 たとえば、サブミラーにコンポーネントを接続するには、次のコマンドを実行します。
# metattach submirror component |
ミラー内のすべてのサブミラーを拡張する必要があります。 詳細は、metattach(1M) のマニュアルページを参照してください。
# metastat d8: Mirror Submirror 0: d9 State: Okay Submirror 1: d10 State: Okay ... # metattach d9 c0t2d0s5 d9: component is attached # metattach d10 c0t3d0s5 d10: component is attached |
この例では、2 つのディスクドライブをミラーの2 つのサブミラーに連結することによって、ミラー化したマウント済みのファイルシステムを拡張します。 ミラー d8 は、2 つのサブミラー d9 と d10 から構成されています。
UFS の場合は、ミラーボリュームに対して growfs(1M) コマンドを実行します。 「ファイルシステムを拡張するには」を参照してください。
データベースなど、raw ボリュームを使用するアプリケーションは、独自の方法で領域を拡張できなければなりません。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
「RAID 1 および RAID 5 ボリューム内のコンポーネントの交換と有効化の概要」と 「RAID 1 ボリュームの背景情報」を確認します。
次のどちらかの方法でミラー内のスライスを交換します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択してから、「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブをクリックします。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
次の形式の metareplace コマンドを使用して、サブミラーのスライスを交換します。
metareplace mirror-name component-name |
mirror-name は、作成するボリュームの名前です。
component-name には、置き換えられるコンポーネントの名前を指定します。
詳細は、次の例と metainit(1M) のマニュアルページを参照してください。
次の例では、障害が発生したスライスを交換します。ただし、システムは、ホットスペア集合を使って障害が発生したディスクを自動的に交換するようには構成されていないものとします。 ホットスペア集合については、第16章「ホットスペア集合 (概要)」を参照してください。
# metastat d6 d6: Mirror Submirror 0: d16 State: Okay Submirror 1: d26 State: Needs maintenance ... d26: Submirror of d6 State: Needs maintenance Invoke: metareplace d6 c0t2d0s2 new device> ... # metareplace d6 c0t2d0s2 c0t2d2s2 d6: device c0t2d0s2 is replaced with c0t2d2s2 |
metastat コマンドを使用して、ミラー d6 にサブミラー d26 があり、そのスライスの状態が「保守が必要 (Needs maintenance)」であることを確認します。 metareplace コマンドにより、metastat コマンドの出力中の「起動」行に従って、このスライスをシステム内の別のスライスで置き換えます。 スライスが置き換えられ、サブミラーの再同期が開始されたことを示すメッセージが表示されます。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
「RAID 1 および RAID 5 ボリューム内のコンポーネントの交換と有効化の概要」と 「RAID 1 ボリュームの背景情報」を確認します。
次のどちらかの方法でサブミラーを交換します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、ミラーを選択してから、「アクション (Action)」、「プロパティ (Properties)」の順に選択し、「サブミラー (Submirrors)」タブをクリックします。 画面の指示に従います。 詳細については、オンラインヘルプを参照してください。
metadetach、metaclear 、metatinit、および metattach コマンドを使って、サブミラー全体を交換します。
次の例では、アクティブなミラー内のサブミラーを交換します。
新しいボリューム d22 の構成は、置き換えるコンポーネントによって異なります。 この例のように、連結で連結を置き換える場合は問題ありませんが、連結でストライプを置き換えた場合には性能が低下するおそれがあり、最適な置き換えとはいえません。
# metastat d20 d20: Mirror Submirror 0: d21 State: Okay Submirror 1: d22 State: Needs maintenance ... # metadetach -f d20 d22 d20: submirror d22 is detached # metaclear -f d22 d22: Concat/Stripe is cleared # metainit d22 2 1 c1t0d0s2 1 c1t0d1s2 d22: Concat/Stripe is setup # metattach d20 d22 d20: components are attached |
metastat コマンドを使用して、2 面ミラー d20 にサブミラー d22 があり、その状態が「保守が必要 (Needs maintenance)」であることを確認します。 この例では、サブミラー全体を削除し、作成し直します。 metadetach コマンドに -f オプションを指定して、障害のあるサブミラーを強制的にミラーから切り離します。 metaclear コマンドは、サブミラーを削除します。 metainit コマンドは、新しいスライスからサブミラー d22 を再作成します。 metattach コマンドは、再作成されたサブミラーを接続します。これによって、ミラーの再同期が自動的に開始されます。
ミラーが1 面ミラーとなっている間は、データの冗長性が一時的に失われます。
この手順では、システムの動作中にマウント解除できるファイルシステムのミラー化を解除します。 ルート (/)、 /var、/usr、swap など、システムの動作中にマウント解除できないファイルシステムのミラー化を解除する場合は、 「マウント解除できないファイルシステムのミラー化を解除するには」を参照してください。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作にはルート権限が必要です。
「RAID 1 ボリュームの背景情報」を確認します。
少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。
# metastat |
ファイルシステムをマウント解除します。
# umount /home |
サブミラーを切り離します。このサブミラーは、この後もこのファイルシステムのために使用されます。
詳細については、metadetach(1M) のマニュアルページを参照してください。
# metadetach d1 d10 |
詳細については、metaclear(1M) のマニュアルページを参照してください。
# metaclear -r d1 |
必要であれば、/etc/vfstab ファイルを編集して、手順1 で切り離したコンポーネントを使用するように指定します。
ファイルシステムを再びマウントします。
# metastat d4 d4: Mirror Submirror 0: d2 State: Okay Submirror 1: d3 State: Okay ... # umount /opt # metadetach d4 d2 d4: submirror d2 is detached # metaclear -r d4 d4: Mirror is cleared d3: Concat/Stripe is cleared (/opt のエントリが d4 の代わりにそのスライスまたはボリュームを指すように /etc/vfstab ファイルを編集する) # mount /opt |
この例の /opt ファイルシステムは 2 面ミラー d4 から構成されています。そのサブミラー d2 と d3 はそれぞれ、スライス /dev/dsk/c0t0d0s0 と /dev/dsk/c1t0d0s0 から構成されています。 metastat コマンドを使用して、少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。 (「正常 (Okay)」状態のサブミラーが存在しないミラーは、最初に修復する必要があります)。 次に、このファイルシステムのマウントを解除してから、サブミラー d2 を切り離します。 metaclear -r コマンドは、ミラーともう 1 つのサブミラー d3 を削除します。
次に、/opt のエントリが、該当するスライスを参照するように /etc/vfstab ファイルを編集します。 たとえば、d4 がミラーで、d2 がサブミラーであれば、次のように変更します。
/dev/md/dsk/d4 /dev/md/rdsk/d4 /opt ufs 2 yes - |
上記の行を次のように変更します。
/dev/md/dsk/d2 /dev/md/rdsk/d2 /opt ufs 2 yes - |
サブミラー名を使用することによって、ファイルシステムをボリュームにマウントしたままにできます。 最後に、/opt ファイルシステムを再びマウントします。
/etc/vfstab ファイル内で d4 の代わりに d2 を使用したことによって、このミラーのミラー化を解除しています。 d2 は 1 つのスライスから構成されているため、このデバイスでボリュームをサポートしたくなければ、ファイルシステムをスライス名 (/dev/dsk/c0t0d0s0) にマウントできます。
ルート (/)、 /usr、/opt、swap など、システムが通常に動作している間はマウント解除できないファイルシステムのミラー化を解除するには、次の手順を実行します。
metastat コマンドを実行して、少なくとも 1 つのサブミラーの状態が「正常 (Okay)」であることを確認します。
ルート (/)、/usr、/opt、または swap を含むミラーに対して metadetach コマンドを実行して、このミラーを 1 面ミラーにします。
/usr、/opt、 swap の場合は、 /etc/vfstab ファイルを編集して、このファイルシステムのエントリが Solaris ボリュームマネージャ以外のデバイス (スライス) を参照するようにします。
ルート (/) だけの場合は、 metaroot コマンドを実行します。
システムを再起動します。
metaclear コマンドを実行してミラーとサブミラーを削除します。
# metadetach d0 d20 d0: submirror d20 is detached # metaroot /dev/dsk/c0t3d0s0 # reboot ... # metaclear -r d0 d0: Mirror is cleared d10: Concat/Stripe is cleared # metaclear d20 d20: Concat/Stripe is cleared |
この例では、ルート (/) は d0 という名前の 2 面ミラーです。そのサブミラー d10 と d20 はそれぞれ、スライス /dev/dsk/c0t3d0s0 と /dev/dsk/c1t3d0s0 から構成されています。 metastat コマンドを使用して、少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。 (「正常 (Okay)」状態のサブミラーが存在しないミラーは、最初に修復する必要があります)。 次に、サブミラー d20 を切り離して、ミラー d0 を 1 面ミラーにします。 metaroot コマンドには、システムの起動に使用する rootslice を指定します。 このコマンドは、/etc/system と /etc/vfstab ファイルを編集して、ルート (/) のミラー化を指定する情報を削除します。 再起動後の metaclear -r コマンドは、ミラーともう 1 つのサブミラー d10 を削除します。 最後の metaclear コマンドは、サブミラー d20 を削除します。
# metastat d1 d1: Mirror Submirror 0: d11 State: Okay Submirror 1: d21 State: Okay ... # metadetach d1 d21 d1: submirror d21 is detached (/etc/vfstab ファイルを編集して、swap のエントリをメタデバイスからスライス名に変更する) # reboot ... # metaclear -r d1 d1: Mirror is cleared d11: Concat/Stripe is cleared # metaclear d21 d21: Concat/stripe is cleared |
この例では、swap は d1 という名前の 2 面ミラーです。そのサブミラー d11 と d21 はそれぞれ、スライス /dev/dsk/c0t3d0s1 と /dev/dsk/c1t3d0s1 から構成されています。 metastat コマンドを使用して、少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。 (「正常 (Okay)」状態のサブミラーが存在しないミラーは、最初に修復する必要があります)。 次に、サブミラー d21 を切り離して、ミラー d1 を 1 面ミラーにします。 次に、/etc/vfstab ファイルを編集して、swap のエントリが、サブミラー d21 のスライスを参照するように指定します。 たとえば、d1 がミラーで、d21 がスライス /dev/dsk/c0t3d0s1 を含むサブミラーであれば、次のように変更します。
/dev/md/dsk/d1 - - swap - no - |
上記の行を次のように変更します。
/dev/dsk/c0t3d0s1 - - swap - no - |
再起動後、metaclear -r コマンドは、このミラーともう 1 つのサブミラー d11 を削除します。 最後の metaclear コマンドは、サブミラー d21 を削除します。
Solaris ボリュームマネージャは バックアップを意図した製品ではありませんが、ミラーをマウント解除したり、ミラー全体をオフラインにすることなく、また、システムを停止したり、データへのユーザーアクセスを中断することなく、ミラー化されたデータをバックアップする手段を提供します。 データをバックアップするには、 まず、サブミラーの 1 つを切り離して (ミラーの機能は一時的に失われます)、そのバックアップをとります。 バックアップが完了したら、そのサブミラーを再び接続し、再同期を実行します。
UFS スナップショット機能では、システムをバックアップする際に、ファイルシステムをオフラインにしたり、サブミラーを切り離す必要はありません。したがって、後でミラーを再同期する場合に起る性能の低下を避けることができます。 詳細については、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 24 章「UFS スナップショットの使用 (手順)」を参照してください。
この手順は、ルート (/) 以外のすべてのファイルシステムに使用できます。 このタイプのバックアップは、動作中のファイルシステムのある時点での内容を保存することに注意してください。 ファイルシステムへの書き込みをロックしたときのファイルシステムの使用状況によっては、バックアップしたファイルやファイルの内容がディスク上の実際のファイルに対応しないことがあります。
この手順には次の制約があります。
この手順を 2 面ミラーに対して使用すると、1 つのサブミラーをバックアップのためにオフラインにしたときに、データの冗長性が失われます。 多面ミラーにはこの問題はありません。
バックアップの完了後に、再接続されたサブミラーを再同期するときに、システムにある程度のオーバーヘッドが生じます。
この手順の概要は次のとおりです。
ファイルシステムへの書き込みをロックします (UFS のみ)。 ルート (/) はロックしないようにします。
キャッシュのすべてのデータをディスクにフラッシュします。
metadetach コマンドを使って、このミラーの 1 つのサブミラーを切り離します。
ファイルシステムのロックを解除します。
fsck コマンドを使って、切り離されたサブミラーにファイルシステムがあることを確認します。
切り離されたサブミラーのデータをバックアップします。
metattach コマンドを使って、切り離されたサブミラーをミラーに再び接続します。
このような手順を定常的に使用する場合は、これをスクリプトにしておくと実行が容易になります。
より安全な方法としては、ミラーに 3 番目または 4 番目のサブミラーを接続し、これを再同期し、バックアップに使用します。 これによって、データの冗長性が常に保たれます。
metastat コマンドを実行して、ミラーが「正常 (Okay)」状態であることを確認します。
ミラーが「保守 (Maintenance)」状態の場合は、まずそれを修復する必要があります。
キャッシュのデータと UFS ロギングデータをディスクにフラッシュし、このファイルシステムの書き込みをロックします。
# /usr/sbin/lockfs -w mount point |
書き込みをロックする必要があるファイルシステムは UFS ボリュームだけです。 このボリュームがデータベース管理ソフトウェアなどのアプリケーション用に raw デバイスとして設定されている場合は、lockfs を実行する必要はありません。 (ただし、ベンダー提供の適切なユーティリティを実行してバッファをフラッシュしたり、アクセスをロックする必要がある場合もあります。)
ルート (/) の書き込みをロックするとシステムがハングアップしますので、絶対にロックしないでください。 ルートファイルシステムをバックアップしている場合は、この手順をスキップします。
ミラーから 1 つのサブミラーを切り離します。
# metadetach mirror submirror |
ここで、
は、ミラーのボリューム名です。
は、切り離すサブミラー (ボリューム) のボリューム名です。
読み取りは、他のサブミラーから引き続き行われます。 最初の書き込みが行われた時点でミラーは同期していない状態になります。 この不整合の状態は、手順1 でサブミラーが再び接続された時点で修復されます。
ファイルシステムのロックを解除し、書き込みを再開します。
# /usr/sbin/lockfs -u mount-point |
上の手順1 で使用したベンダー提供のユーティリティを使用して、必要なロック解除手順を実行しなければならない場合があります。
完全なバックアップを行うために、fsck コマンドを使って、切り離されたサブミラーのファイルシステムを調べます。
# fsck /dev/md/rdsk/name |
オフラインにしたサブミラーのバックアップをとります。
これには、ufsdump コマンド、または通常使用しているバックアップユーティリティを使用します。
適切なバックアップを確実に行うためには、raw ボリューム (/dev/md/rdsk/d4 など) を使用します。 「rdsk」では、2G バイトを超えるアクセスが可能です。
サブミラーを接続します。
# metattach mirror submirror |
サブミラーとミラーの再同期が自動的に開始されます。
この例では、ミラー d1 はサブミラー d2、d3、 d4 から構成されています。 サブミラー d3 を切り離して、このサブミラーのバックアップをとります。この間、サブミラー d2 と d4 はオンラインのままです。 このミラーにあるファイルシステムは /home1 です。
# /usr/sbin/lockfs -w /home1 # metadetach d1 d3 # /usr/sbin/lockfs -u /home1 # /usr/sbin/fsck /dev/md/rdsk/d3 (/dev/md/rdsk/d3 を使用してバックアップをとる) # metattach d1 d3 |