この章では、 Solaris ボリュームマネージャの RAID-1 ボリュームに関連する作業について説明します。関連する概念については、第 10 章「RAID-1 (ミラー) ボリューム (概要)」を参照してください。
次の表に、Solaris ボリュームマネージャの RAID-1 ボリュームを管理するために必要な作業を示します。
作業 |
説明 |
参照先 |
---|---|---|
未使用のスライスからミラーを作成する |
Solaris ボリュームマネージャの GUI か metainit コマンドを使って、未使用のスライスからミラーを作成します。 | |
既存のファイルシステムからミラーを作成する |
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 コマンドを使って、ミラーのバックアップを行います。 |
を作成する手順を示します。3 面ミラーまたは 4 面ミラーを作成する場合も、手順は同じです。
「Solaris ボリュームマネージャコンポーネントを作成するための前提条件」 と 「RAID-1 ボリュームの作成と保守」を確認します。
ストライプまたは連結を 2 つ作成します。これらのコンポーネントがサブミラーになります。
「RAID-0 (ストライプ方式) ボリュームを作成するには」または「RAID-0 (連結方式) ボリュームを作成するには」を参照してください。
次のどちらかの方法でミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使って 1 面ミラーを作成します。
# metainit volume-name -m submirror-name |
作成するボリュームの名前を指定します。
ミラーを作成することを指定します。
ミラーの最初のサブミラーとして使用するコンポーネントの名前を指定します。
詳細については、次の例と metainit(1M) のマニュアルページを参照してください。
次のどちらかの方法で 2 つめのサブミラーを追加します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、変更するミラーを選択します。「アクション (Action)」、「プロパティ (Properties)」、「サブミラー (Submirrors)」の順に選択します。画面の指示に従って、サブミラーを追加します。詳細は、オンラインヘルプを参照してください。
次の形式の metattach コマンドを実行します。
# metattach volume-name submirror-name |
サブミラーを追加する RAID-1 ボリュームの名前を指定します。
次にミラーに追加するサブミラーとなるコンポーネントの名前を指定します。
詳細は、次の例と 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 つのサブミラーからミラーを作成します。metattach コマンドではなく、metainit コマンドを使ってミラーを作成した場合は、再同期操作が行われません。この場合、Solaris ボリュームマネージャはミラーの両側が同一であるとみなし、両方を区別なく使用するため、データが破壊されるおそれがあります。
新たに作成したミラーにファイルシステムを作成する方法については、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 18 章「UFS、TMPFS、LOFS ファイルシステムの作成 (手順)」を参照してください。データベースなど、アプリケーションによってはファイルシステムを使用しません。これらのアプリケーションでは、代わりに raw デバイスを使用します。アプリケーションは独自の方法で raw デバイスにアクセスできなければなりません。
この手順では、既存のファイルシステムをミラー化します。このファイルシステムがマウント解除できる場合は、システムをリブートしなくても、ここに示すすべての手順を完了することができます。/usr や /swap のようなマウント解除できないファイルシステムの場合、手順を完了するには、システムをリブートする必要があります。
スライス上に構築された既存のファイルシステムから RAID-1 ボリュームを作成する場合は、そのスライスだけを一次 RAID-0 ボリューム (サブミラー) に含めるようにします。システムにとって重要なファイルシステムをミラー化する場合は、すべてのサブミラーが単一のスライスだけで構成されている必要があります。
ルート (/) ファイルシステムのミラー化に関連する手順については、「SPARC: ルート (/) ファイルシステムから RAID-1 ボリュームを作成するには」および 「x86: DCA を使ってルート (/) ファイルシステムから RAID-1 ボリュームを作成するには」を参照してください。
この手順の例では、既存スライスは c1t0d0s0 です。2 番目のスライス c1t1d0s0 はミラーの 2 番目として使用します。サブミラーは d1 と d2、ミラーは d0 です。
まず metainit コマンドで 1 面ミラーを作成してから、metattach コマンドで追加のサブミラーを接続します。metattach コマンドを使用しないと、再同期は実行されません。この場合、Solaris ボリュームマネージャはミラーの両側が同一であるとみなし、両方を区別なく使用するため、データが破壊されるおそれがあります。
「Solaris ボリュームマネージャコンポーネントを作成するための前提条件」 と 「RAID-1 ボリュームの作成と保守」を確認します。
ミラー化する既存ファイルシステムが格納されているスライスを特定します。この例では、スライス c1t0d0s0 を使用します。
次のどちらかの方法を使って、前の手順で特定したスライスに新しい RAID-0 ボリュームを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit -f volume-name number-of-stripes components-per-stripe component-name |
コマンド処理を強制的に続けます。スライスにマウントされたファイルシステムが含まれている場合は、このオプションを使用する必要があります。
作成するボリュームの名前を指定します。ボリュームの命名方式については、「ボリューム名」を参照してください。
作成するストライプの数を指定します。
各ストライプに与えるコンポーネントの数を指定します。
使用するコンポーネントの名前を指定します。この例では、ルートスライス c0t0d0s0 を使用します。
未使用のスライス (この例では c1t1d0s0) に 2 番目の RAID-0 ボリューム (連結) を作成します。これは、後で 2 番目のサブミラーとして使用します。2 番目のサブミラーのサイズは、最初のサブミラー以上でなければなりません。この手順では、次のどちらかの方法を使用します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name number-of-stripes components-per-stripe component-name |
オプションの説明については、手順 2 を参照してください。
次のどちらかの方法で 1 面ミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name -m submirror-name |
作成するボリュームの名前を指定します。
ミラーを作成することを指定します。
ミラーの最初のサブミラーとして使用するコンポーネントの名前を指定します。この例では、ルートスライスが含まれる RAID-0 ボリュームです。
詳細は、metainit(1M) のマニュアルページを参照してください。
既存のファイルシステムからミラーを作成する場合は、データが破壊されないように、次の 2 つの手順に忠実に従ってください。
ファイルシステムのマウント手順が (ブロックデバイスではなく) ミラーを参照するように、/etc/vfstab ファイルを編集します。/etc/vfstab ファイルについての詳細は、『Solaris のシステム管理 (デバイスとファイルシステム)』の「ファイルシステムのマウント」を参照してください。
たとえば、/etc/vfstab ファイルにファイルシステム用の次のエントリが指定されているとします。
/dev/dsk/slice /dev/rdsk/slice /var ufs 2 yes - |
次のようにエントリを変更します。
/dev/md/dsk/mirror-name /dev/md/rdsk/mirror-name /var ufs 2 yes - |
次のどちらかの方法で、新たにミラー化したファイルシステムをマウントし直します。
マウント解除可能なファイルシステムをミラー化している場合は、ファイルシステムをマウント解除してから再びマウントします。
# umount /filesystem # mount /filesystem |
マウント解除できないファイルシステムをミラー化している場合は、システムをリブートします。
# reboot |
次の形式の metattach コマンドを使って、2 番目のサブミラーを追加します。
# metattach volume-name submirror-name |
サブミラーを追加する RAID-1 ボリュームの名前を指定します。
次にミラーに追加するサブミラーとなるコンポーネントの名前を指定します。
詳細は、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 ファイルを編集します。/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 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 |
この例では、 /usr ファイルシステムが含まれるスライスを使用して、2 面ミラーを作成します。まず、-f オプションを使用して、最初の連結 d12 を強制的に作成します。これには、/dev/dsk/c0t3d0s6 にマウントされているファイルシステム /usr が含まれています。次に 2 番目の連結 d22 を /dev/dsk/c1t0d0s6 から作成します。このスライスは d12 と同じかそれ以上のサイズにする必要があります。そして、metainit コマンドに -m オプションを付けて実行し、/usr ファイルシステムを含む連結から1 面ミラー d2 を作成します。次に、/usr のエントリがミラーを参照するように /etc/vfstab ファイルを編集します。
/etc/vfstab ファイルには、/usr ファイルシステムに対応する次のエントリが指定されています。
/dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /usr ufs 1 yes - |
次のようにエントリを変更します。
/dev/md/dsk/d2 /dev/md/rdsk/d2 /usr ufs 1 yes - |
リブートが終わると、2 番目のサブミラー 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 のエントリがある場合は、このエントリがミラーを参照するようにファイルを編集する必要があります。
/etc/vfstab ファイルには、swap 領域に対応する次のエントリが指定されています。
/dev/dsk/c0t0d0s1 - - swap - no - |
次のようにエントリを変更します。
/dev/md/dsk/d1 - - swap - no - |
リブートが終わると、2 番目のサブミラー d21 がミラーに接続され、ミラーの再同期が実行されます。
swap 領域をミラー化した場合、クラッシュダンプを保存するには、dumpadm コマンドを使ってダンプデバイスをボリュームとして構成する必要があります。たとえば、swap デバイスの名前が /dev/md/dsk/d2 であれば、dumpadm コマンドを使ってこのデバイスをダンプデバイスとして設定します。
SPARC プラットフォームでルート (/) ファイルシステムをミラー化する手順は、マウント解除できないルート以外のファイルシステムをミラー化する手順と同様です。異なるところは、/etc/vfstab ファイルを手動で編集するのではなく、metaroot コマンドを実行する点です。さらに、ルート (/) ファイルシステムをミラー化するには、代替ブートデバイスへのパスを記録する必要があります。サブミラーに障害が発生した場合、この代替ブートデバイスがシステムをリブートします。
この手順の例では、既存スライスは c1t0d0s0 です。2 番目のスライス c1t1d0s0 はミラーの 2 番目として使用します。サブミラーは d1 と d2、ミラーは d0 です。
まず metainit コマンドで 1 面ミラーを作成してから、metattach コマンドで追加のサブミラーを接続します。metattach コマンドを使用しないと、再同期は実行されません。この場合、Solaris ボリュームマネージャはミラーの両側が同一であるとみなし、両方を区別なく使用するため、データが破壊されるおそれがあります。
「Solaris ボリュームマネージャコンポーネントを作成するための前提条件」 と 「RAID-1 ボリュームの作成と保守」を確認します。
ミラー化する既存のルート (/) ファイルシステムが含まれているスライスを特定します。この例では、スライス c1t0d0s0 を使用します。
次のどちらかの方法を使って、前の手順で特定したスライスに新しい RAID-0 ボリュームを作成します。RAID-0 ボリュームに含めることができるのは、単一のスライスだけです。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit -f volume-name number-of-stripes components-per-stripe component-name |
コマンド処理を強制的に続けます。スライスにマウントされたファイルシステムが含まれている場合は、このオプションを使用する必要があります。
作成するボリュームの名前を指定します。ボリュームの命名方式については、「ボリューム名」を参照してください。
作成するストライプの数を指定します。
各ストライプに与えるコンポーネントの数を指定します。
使用するコンポーネントの名前を指定します。この例では、ルートスライス c0t0d0s0 を使用します。
未使用のスライス (この例では c1t1d0s0) に 2 番目の RAID-0 ボリュームを作成します。このボリュームは 2 番目のサブミラーとして使用します。2 番目のサブミラーのサイズは、最初のサブミラー以上でなければなりません。この手順では、次のどちらかの方法を使用します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name number-of-stripes components-per-stripe component-name |
オプションの説明については、ステップ 2 を参照してください。
次のどちらかの方法で 1 面ミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name -m submirror-name |
作成するボリュームの名前を指定します。
ミラーを作成することを指定します。
ミラーの最初のサブミラーとして使用するコンポーネントの名前を指定します。この例では、ルートスライスが含まれる RAID-0 ボリュームです。
新たにミラー化したファイルシステムをマウントし直します。metaroot volume-name コマンドを実行します。volume-name のところには、作成したミラーの名前を入れます。さらに、システムをリブートします。
# metaroot volume-name # reboot |
詳細は、metaroot(1M) のマニュアルページを参照してください。
次の形式の metattach コマンドを使って、2 番目のサブミラーを接続します。
# metattach volume-name submirror-name |
サブミラーを追加する RAID-1 ボリュームの名前を指定します。
次にミラーに追加するサブミラーとなるコンポーネントの名前を指定します。
詳細は、metattach(1M) のマニュアルページを参照してください。
代替ブートパスを記録します。
代替ルートデバイスへのパスを調べます。2 番目のサブミラーとしてルート (/) ファイルシステムのミラーに接続するスライスで、ls -l コマンドを使用します。
# ls -l /dev/dsk/c1t1d0s0 lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c1t1d0s0 -> \ ../../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/c1t1d0s0 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 |
# metainit -f d1 1 1 c0t0d0s0 d1: Concat/Stripe is setup # metainit d2 1 1 c0t1d0s0 d2: Concat/Stripe is setup # metainit d0 -m d1 d0: Mirror is setup # metaroot d0 # lockfs -fa # reboot ... # metattach d0 d2 d0: Submirror d2 is attached # ls -l /dev/dsk/c0t1d0s0 lrwxrwxrwx 1 root root 88 Feb 8 15:51 /dev/rdsk/c1t3d0s0 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a # init 0 . . . ok nvalias backup_root /pci@1f,0/pci@1,1/ide@3/disk@0,0:a ok setenv boot-device disk backup_root net ok nvstore |
この例では、-f オプションによって、最初の RAID-0 ボリュームとして d1 を作成します。これには、/dev/dsk/c0t0d0s0 にマウントされているルート (/) ファイルシステムが含まれています。次に 2 番目の連結 d2 を /dev/dsk/c0t1d0s0 から作成します。このスライスは d1 と同じかそれより大きいサイズにする必要があります。そして、metainit コマンドに -m オプションを付けて実行し、ルート (/) を含む連結から1 面ミラー d0 を作成します。
次に metaroot コマンドを使って /etc/vfstab ファイルと /etc/system ファイルを編集し、システムがボリューム上のルート (/) ファイルシステムからブートされるように指定します。リブートを行う前に lockfs -fa コマンドを実行することが推奨されます。詳細は、lockfs(1M) のマニュアルページを参照してください。
システムをリブートする前に、2 番目のサブミラーを接続しないでください。metaroot コマンドを実行した後、2 番目のサブミラーを接続する前に、システムをリブートする必要があります。
リブートが終わると、サブミラー d2 がミラーに接続され、ミラーの再同期が実行されます連結とミラーが設定され、サブミラー d2 が接続されたことを示すメッセージが表示されます。
最後に、ルート raw デバイスに対して ls-l コマンドを実行して、代替ルートデバイスへのパスを表示します。このパスは、このデバイスからシステムをブートしなければならない状況が発生したときに必要になります。
Solaris 10 1/06 リリースから、x86 ベースシステムのブート処理とその構成に使用される Device Configuration Assistant (デバイス構成用補助、DCA) が GRand Unified Bootloader (GRUB) に置き換えられました。この機能とその拡張機能の概要については、『Solaris 10 の概要』の「GRUB ベースのブート」を参照してください。
この節では、ルート (/) ファイルシステムから RAID-1 ボリュームを作成する手順について説明します。Solaris 10 1/06 以降のリリースの OS を実行している場合は、GRUB を使用する最初の手順に従ってください。それ以外の場合は、DCA を使用する 2 番目の手順に従ってください。
x86 ベースシステムでルート (/) ファイルシステムをミラー化するプロセスは、SPARC システムでルートをミラー化するプロセスとほぼ同じです。ただし、x86 ベースシステムでは、BIOS と fdisk パーティションという複雑な階層があります。
この手順の例では、既存スライスは c1t0d0s0 です。2 番目のスライス c1t1d0s0 はミラーの 2 番目として使用します。サブミラーは d1 と d2、ミラーは d0 です。
手順を実行する前に、「Solaris ボリュームマネージャコンポーネントを作成するための前提条件」と「RAID-1 ボリュームの作成と保守」を確認してください。
ミラーの 2 番目のディスクからシステムがブートできるように、BIOS ブートデバイスの順番を構成できることを確認します。
カーネルが起動される前は、システムは、x86 ベースシステム上のファームウェアインタフェースである、読み取り専用メモリー (ROM) の Basic Input/Output System (BIOS) によって制御されます。この BIOS は、SPARC ベースシステムのブート PROM に似ています。BIOS に対して、以降の作業を行います。
起動関数を実行します。
システムをブートする正しいデバイスを検出します。
前述のデバイスからマスターブートレコードをロードし、システムが自動的にブートするようにします。
通常は、BIOS を構成して、ブートレコードを探すデバイスの順番を選択できます。さらに、最近のほとんどの BIOS 実装では、二次サブミラーへのフェイルオーバーが自動的に行われるようにデバイスを構成できます。システムの BIOS にこの機能がなく、一次サブミラーで障害が発生した場合は、システムのブート中に BIOS にアクセスし、二次ルートスライスからブートするようにシステムを再構成する必要があります。BIOS の設定を構成する方法については、BIOS のユーザーガイドを参照してください。
ルートミラーを設定する前に、システム上の BIOS で、複数のディスクからブートできることを確認します。デバイスドライバによっては、システムの 1 つのディスクしか認識しないように構成されているものもあります。
ルートのミラー化をサポートするように fdisk パーティションが構成されていることを確認します。
別途 x86 ブートパーティションが存在する場合は、ルート (/) ファイルシステムのミラー化中に問題が発生します。x86 ブートパーティションは Solaris fdisk パーティションの外部に存在しているため、Solaris ボリュームマネージャではミラー化できません。さらに、x86 ブートパーティションのコピーは 1 つしかないため、シングルポイント障害にもなります。
Solaris 10 1/06 リリース以降に導入された GRUB ベースのインストールプログラムでは、x86 ブートパーティションは自動的には作成されません。しかし、システムに x86 がすでに存在する場合、インストールプログラムはデフォルトでそのパーティションを保存します。
システムに別途 x86 ブートパーティションがあるかどうかは、/etc/vfstab ファイルを確認すればわかります。このファイルに次のようなエントリが含まれている場合、x86 ブートパーティションは存在しています。
/dev/dsk/c2t1d0p0:boot - /boot pcfs - no - |
Solaris ボリュームマネージャを使ってルート (/) ファイルシステムをミラー化する場合、このファイルシステムで単一の Solaris fdisk パーティションを使用する必要があります。したがって、システム内にすでに x86 ブートパーティションが存在する場合は、fdisk コマンドでこのパーティションを削除してから、Solaris ソフトウェアを再インストールしてください。再インストール時には、ブートパーティションは作成されません。
Solaris ボリュームマネージャでミラー化できるのは、Solaris fdisk パーティション内のスライスだけです。複数の fdisk パーティションが存在する場合、Solaris fdisk パーティションの外にあるデータを保護するには、別の方法を使用する必要があります。
マスターブートプログラムを使って、二次サブミラーをブート可能にします。
マスターブートプログラムを指定します。
# fdisk -b /usr/lib/fs/ufs/mboot /dev/rdsk/c1t1d0p0 |
次の画面が表示されます。
Total disk size is 31035 cylinders Cylinder size is 1146 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active Solaris 1 31034 31034 100 SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection: |
メニューから 5 番を選択して、Return キーを押します。
二次ディスクをブート可能にします。
# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0 |
installgrub の詳細は、installgrub(1M) のマニュアルページを参照してください。
ミラー化する既存のルート (/) ファイルシステムが含まれているスライスを特定します。
この例では、スライス c1t0d0s0 を使用します。
前の手順で指定したスライス上で新しい RAID-0 ボリュームを作成します。
RAID-0 ボリュームに含めることができるのは、単一のスライスだけです。この手順では、次のどちらかの方法を使用します。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit -f volume-name number-of-stripes components-per-stripe component-name |
コマンド処理を強制的に続けます。スライスにマウントされたファイルシステムが含まれている場合は、このオプションを使用する必要があります。
作成するボリュームの名前を指定します。ボリュームの命名方式については、「ボリューム名」を参照してください。
作成するストライプの数を指定します。
各ストライプに与えるコンポーネントの数を指定します。
使用するコンポーネントの名前を指定します。この例では、ルートスライス c0t0d0s0 を使用します。
未使用のスライス上で、2 番目のサブミラーとして機能する 2 番目の RAID-0 ボリューム (この例では c1t1d0s0) を作成します。
2 番目のサブミラーのサイズは、最初のサブミラー以上でなければなりません。2 番目のサブミラーとして使用するスライスには「root」というスライスタグを付ける必要があります。また、ルートスライスはスライス 0 である必要があります。
スライスの構成方法については、format(1M) のマニュアルページを参照してください。
次のどちらかの方法を選択します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name number-of-stripes components-per-stripes component-names |
オプションの説明については、手順 6 を参照してください。
次のどちらかの方法で 1 面ミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name -m submirror-name |
作成するボリュームの名前を指定します。
ミラーを作成することを指定します。
ミラーの最初のサブミラーとして使用するコンポーネントの名前を指定します。この例では、ルートスライスが含まれる RAID-0 ボリュームです。
新しくミラー化されたファイルシステムを再マウントし、システムをリブートします。
# metaroot volume-name # reboot |
詳細は、metaroot(1M) のマニュアルページを参照してください。
# metattach volume-name submirror-name |
サブミラーを追加する RAID-1 ボリュームの名前を指定します。
次にミラーに追加するサブミラーとなるコンポーネントの名前を指定します。
詳細は、metattach(1M) のマニュアルページを参照してください。
menu.lst ファイルに代替ブートパスを定義します。
二次サブミラーを持つディスクからシステムがブートできるようにするには、そのディスクを代替ブートデバイスとして認識するようにシステムを構成します。現在の c1t1d0s0 の例では、代替パスは、二次ディスクの最初の fdisk パーティションの、最初のスライス上にあります。したがって、menu.lst を次のように編集します。
title alternate boot root (hd1,0,a) kernel /boot/multiboot module /boot/x86.miniroot-safe |
menu.lst のエントリを適切に編集するには、GRUB のディスク命名規則について熟知している必要があります。詳細は、『Solaris のシステム管理 (基本編)』の第 11 章「GRUB ベースのブート (手順)」を参照してください。
menu.lst ファイルの編集後、システムは二次ディスクで処理を継続するようになります。一次ディスクで障害が発生した場合、システムが二次ディスクからブートするように、ディスク番号が変更されます。
場合によっては、BIOS の自動ディスク番号再割り当て機能が、使用できなくなった一次ディスクからの回復に影響を及ぼすことがあります。ディスク番号再割り当て機能により、システムが強制的に二次ディスクからブートするようになると、一次ディスクのブートアーカイブは無効になります。同じ一次ディスクがあとで使用可能になって、システムをブートした場合、デフォルトの一次ディスクからシステムがブートするように、ディスク番号が再度切り替わります。しかし、この段階では、一次ディスクのブートアーカイブは無効なままです。したがって、システムはまったくブートしない可能性があります。このような場合は、GRUB メニューから正しいエントリを選択して、システムが有効なブートアーカイブからブートするようにします。システムの起動プロセスが完了したら、通常どおり metadevice による保守を実行して、一次ディスクと二次ディスクを同期化し、再度一次ディスクを有効なブートアーカイブにします。
ミラーの 2 番目のディスクからシステムがブートできるように、BIOS ブートデバイスの順番を構成できることを確認します。
カーネルが起動される前は、システムは、x86 ベースシステム上のファームウェアインタフェースである、読み取り専用メモリー (ROM) の Basic Input/Output System (BIOS) によって制御されます。この BIOS は、SPARC ベースシステムのブート PROM に似ています。ほかの起動機能に加えて、BIOS は正しいブートデバイスを見つけ、そのデバイスからマスターブートレコードを読み込んで、システムがブートできるようにします。通常は、BIOS を構成して、ブートレコードを探すデバイスの順番を選択できます。さらに、最近のほとんどの BIOS 実装では、二次サブミラーへのフェイルオーバーが自動的に行われるようにデバイスを構成できます。使用中のシステムにこの機能がない場合で、一次サブミラーに障害が発生したときは、システムのブート中に BIOS にアクセスして、二次ルートスライスからブートするよう構成し直す必要があります。BIOS の設定を構成する方法については、BIOS のユーザーガイドを参照してください。
システム上の DCA を使って、複数のディスクからブート可能であることを確認できます。デバイスドライバによっては、システムの 1 つのディスクしか認識しないように構成されているものもあります。
ルートのミラー化をサポートするように fdisk パーティションが構成されていることを確認します。
x86 ベースシステムのもう一つの特長は、fdisk パーティションを使用することです。Solaris OS インストールプログラムのブートディスクパーティションのデフォルトのレイアウトでは、Solaris fdisk パーティションとは別に、「x86 ブートパーティション」という、10M バイトくらいの小さな fdisk パーティションが作成されます。
x86 ブートパーティションは、ルート (/) ファイルシステムをミラー化するときに問題になります。x86 ブートパーティションは、Solaris fdisk パーティションの外にあります。このため、x86 ブートパーティションは Solaris ボリュームマネージャでミラー化できません。さらに、x86 ブートパーティションのコピーは 1 つしかないため、シングルポイント障害にもなります。
Solaris OS に独立した x86 ブートパーティションがあるかどうかは、次のように識別できます。x86 ブートパーティションは、/etc/vfstab ファイル内に、次のようなエントリでマウントされます。
/dev/dsk/c2t1d0p0:boot - /boot pcfs - no - |
別の x86 ブートパーティションが存在しない場合、このエントリは /etc/vfstab ファイルに存在しません。
ルート (/) ファイルシステムをミラー化するためには、fdisk パーティションをカスタマイズして、x86 ブートパーティションを削除し、単一の Solaris fdisk パーティションを使用するようにします。Solaris ボリュームマネージャのルートミラー化を使用する予定がある場合、システムのインストール時に、独立した x86 ブートパーティションを作成しないでください。すでにシステムがインストールされ、別の x86 ブートパーティションが作成されている場合、fdisk コマンドを使って、その fdisk パーティションを削除して、システムをインストールし直します。インストール中に別の x86 ブートパーティションを作成しないようにするには、インストールプロセス中にディスクパーティションをカスタマイズします。
Solaris ボリュームマネージャでミラー化できるのは、Solaris fdisk パーティション内のスライスだけです。複数の fdisk パーティションが存在する場合、Solaris fdisk パーティションの外にあるデータを保護するには、別の方法を使用する必要があります。
マスターブートプログラムを使って、二次サブミラーをブート可能にします。
fdisk コマンドを使って、マスターブートプログラムを指定します。
# fdisk -b /usr/lib/fs/ufs/mboot /dev/rdsk/c1t1d0p0 |
次の画面が表示されます。
Total disk size is 31035 cylinders Cylinder size is 1146 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active Solaris 1 31034 31034 100 SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection: |
メニューから 5 番を選択して、Return キーを押します。
二次サブミラーをブート可能にするため、二次サブミラーにブートブロックをインストールします。
この fdisk パーティションから Solaris OS をブートするには、二次サブミラーがあるディスクにスライス 8 が必要です。このスライスには、パーティションブートレコード (pboot)、当該ディスクの Solaris VTOC、およびブートブロックが含まれます。この情報はディスクに固有であり、Solaris ボリュームマネージャではミラー化されません。しかし、一次ディスクに障害が発生した場合に二次ディスクからブートできるようにするには、両方のディスクがブート可能であることを保証する必要があります。installboot コマンドを使って、2 番目のディスクを Solaris ブート可能ディスクと設定します。詳細は、installboot(1M) のマニュアルページを参照してください。
このディスクのスライス 2 をデバイスとして指定する必要があります。さらに、このスライス 2 はディスク全体から構成されている必要があります。
# installboot /usr/platform/i86pc/lib/fs/ufs/pboot \ /usr/platform/i86pc/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s2 |
ミラー化する既存のルート (/) ファイルシステムが含まれているスライスを特定します。この例では、スライス c1t0d0s0 を使用します。
次のどちらかの方法を使って、前の手順で特定したスライスに新しい RAID-0 ボリュームを作成します。RAID-0 ボリュームに含めることができるのは、単一のスライスだけです。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit -f volume-name number-of-stripes components-per-stripe component-name |
コマンド処理を強制的に続けます。スライスにマウントされたファイルシステムが含まれている場合は、このオプションを使用する必要があります。
作成するボリュームの名前を指定します。ボリュームの命名方式については、「ボリューム名」を参照してください。
作成するストライプの数を指定します。
各ストライプに与えるコンポーネントの数を指定します。
使用するコンポーネントの名前を指定します。この例では、ルートスライス c0t0d0s0 を使用します。
未使用のスライス (この例では c1t1d0s0) に 2 番目の RAID-0 ボリュームを作成します。このボリュームは 2 番目のサブミラーとして使用します。2 番目のサブミラーのサイズは、最初のサブミラー以上でなければなりません。この手順では、次のどちらかの方法を使用します。
2 番目のサブミラーとして使用するスライスは「root」というスライスタグを持っており、かつ、ルートスライスはスライス 0 である必要があります。スライスを構成する方法については、format(1M) のマニュアルページを参照してください。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name number-of-stripes components-per-stripes component-names |
オプションの説明については、手順 6 を参照してください。
次のどちらかの方法で 1 面ミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name -m submirror-name |
作成するボリュームの名前を指定します。
ミラーを作成することを指定します。
ミラーの最初のサブミラーとして使用するコンポーネントの名前を指定します。この例では、ルートスライスが含まれる RAID-0 ボリュームです。
新たにミラー化したファイルシステムをマウントし直します。metaroot volume-name コマンドを実行します。volume-name のところには、作成したミラーの名前を入れます。さらに、システムをリブートします。
# metaroot volume-name # reboot |
詳細は、metaroot(1M) のマニュアルページを参照してください。
次の形式の metattach コマンドを使って、2 番目のサブミラーを接続します。
# metattach volume-name submirror-name |
サブミラーを追加する RAID-1 ボリュームの名前を指定します。
次にミラーに追加するサブミラーとなるコンポーネントの名前を指定します。
詳細は、metattach(1M) のマニュアルページを参照してください。
代替ブートパスを記録します。
一次サブミラーに障害が発生した場合に二次サブミラーからブートするように、システムを構成する必要があります。二次サブミラーを持つディスクからシステムがブートできるようにするには、そのディスクを代替ブートデバイスとして認識するようにシステムを構成します。
代替ブートデバイスへのパスを調べます。2 番目のサブミラーとしてルート (/) ファイルシステムのミラーに接続するスライスで、ls -l コマンドを使用します。
# ls -l /dev/dsk/c1t1d0s0 lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c1t1d0s0 -> ../. ./devices/eisa/eha@1000,0/cmdk@1,0:a |
ここで、/devices ディレクトリに続く文字列 /eisa/eha@1000,0/cmdk@1,0:a を記録しておきます。これがデバイスツリーパスです。
システムが利用できない場合に備えて、システム上以外の場所にもこの情報を書き留めておくべきです。これによって、DCA を使ってシステムをブートする必要がある場合に、デバイスツリーパス情報の入力が簡単になります。
eeprom コマンドを使って、代替ブートパスを定義します。たとえば、次のように指定します。
# eeprom altbootpath=/eisa/eha@1000,0/cmdk@1,0:a |
一次サブミラーに障害が発生した場合、システムは二次サブミラーからブートしようとします。自動的に二次ディスクにフェイルオーバーするように BIOS を構成できる場合、このブートプロセスは自動的に行われます。そうでない場合、BIOS に入って、二次ディスクからブートするように構成する必要があります。ブートを開始したあと、システムはまず、bootpath デバイスからブートしようとします。ルートミラーの一次ブートディスクは動作していないため、システムは次に、altbootpath デバイスからブートしようとします。BIOS の設定を構成する方法については、BIOS のユーザーガイドを参照してください。
システムが自動的にブートしない場合、DCA を使って、二次サブミラーを選択できます。システムによっては、ブートプロセス中に DCA に入ることも選択できます。この方法が使用できない場合、x86 ブートフロッピーディスクからブートしてから、DCA を使って、二次サブミラーを選択する必要があります。オペレーティングシステムがブートしたあと、eeprom bootpath の値を、代替ブートパスとして設定した値 (altbootpath の値) に変更します。こうすれば、システムが自動的にブートします。
eeprom コマンドを使用する方法についての詳細は、eeprom(1M) のマニュアルページを参照してください。
# metainit -f d1 1 1 c0t0d0s0 d1: Concat/Stripe is setup # metainit d2 1 1 c0t1d0s0 d2: Concat/Stripe is setup # metainit d0 -m d1 d0: Mirror is setup # metaroot d0 # lockfs -fa # reboot ... # metattach d0 d2 d0: Submirror d2 is attached # ls -l /dev/dsk/c0t1d0s0 lrwxrwxrwx 1 root root 88 Feb 8 15:51 /dev/dsk/c1t3d0s0 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a,raw # eeprom altbootpath=/pci@1f,0/pci@1,1/ide@3/dad@0,0:a,raw # fdisk -b /usr/lib/fs/ufs/mboot /dev/dsk/c0t1d0p0 Total disk size is 31035 cylinders Cylinder size is 1146 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active Solaris 1 31034 31034 100 SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection: 5 # installboot /usr/platform/i86pc/lib/fs/ufs/pboot \ /usr/platform/i86pc/lib/fs/ufs/bootblk /dev/rdsk/c0t1d0s2 |
ルート (/) ファイルシステムをミラー化すると、エラーメッセージがコンソールに表示され、/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 |
このようなエラーメッセージは無視してかまいません。
「can't attach labeled submirror to an unlabeled mirror」というエラーメッセージは、ミラーに RAID-0 ボリュームを接続できなかったことを意味します。ラベル付きボリューム (サブミラー) とは、その最初のコンポーネントがシリンダ 0 から始まるものをいいます。一方、ラベルなしボリュームの最初のコンポーネントはシリンダ 1 から始まります。Solaris ボリュームマネージャでは、ラベル付きサブミラーのラベルが壊れるのを防ぐため、ラベル付きサブミラーのラベルなしミラーへの接続を許可しません。
「RAID-1 ボリュームの作成と保守」を確認します。
サブミラーとして使用するコンポーネント (連結またはストライプ) を特定します。
コンポーネントは、ミラー内の既存のサブミラーと同じかそれ以上のサイズにする必要があります。サブミラーとして使用するボリュームをまだ作成していない場合は、「RAID-0 (ストライプ方式) ボリュームの作成」または 「RAID-0 (連結方式) ボリューム」を参照してください。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
metastat コマンドを使って、 作業するミラーが「Okay」状態であることを確認します。
# metastat mirror |
次のどちらかの方法でサブミラーを接続します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択して、「サブミラー (Submirror)」タブをクリックします。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
metattach mirror submirror コマンドを実行します。
# metattach mirror submirror |
詳細は、metattach(1M) のマニュアルページを参照してください。
metastat コマンドを使って、ミラーの状態を調べます。
# metastat mirror |
# 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 ボリュームの作成と保守」を確認します。
root 権限を持っていることを確認します。すべてのデータについて、最新のバックアップがあることを確認します。
metastat コマンドを使って、 作業するミラーが「Okay」状態であることを確認します。
次のどちらかの方法でサブミラーを切り離します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択して、「サブミラー (Submirror)」タブをクリックします。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
metadetach コマンドを使ってミラーからサブミラーを切り離します。
# metadetach mirror submirror |
詳細は、metadetach(1M) のマニュアルページを参照してください。
# metastat d5: mirror Submirror 0: d50 ... # metadetach d5 d50 d5: submirror d50 is detached |
この例では、ミラー d5 にサブミラー d50 があります。metadetach コマンドを使って、サブミラーを切り離します。d50 のスライスは他の場所で再使用できます。ミラーからサブミラーを切り離すと、確認メッセージが表示されます。
metaonline コマンドを実行できるのは、そのサブミラーが metaoffline コマンドによってオフラインにされている場合に限られます。metaonline コマンドを実行すると、サブミラーとミラーの再同期が自動的に開始します。
metaoffline コマンドの機能は、metadetach コマンドの機能と同様です。ただし、metaoffline コマンドでは、サブミラーとミラーの論理的な関連付けは切り離されません。
「RAID-1 ボリュームの作成と保守」を確認します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
次のどちらかの方法でサブミラーをオンラインまたはオフラインにします。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択して、「サブミラー (Submirror)」タブをクリックします。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
metaoffline コマンドでサブミラーをオフラインにします。
# metaoffline mirror submirror |
詳細は、metaoffline(1M) のマニュアルページを参照してください。
metaonline コマンドでサブミラーをオンラインにします。
# metaonline mirror submirror |
詳細は、metaonline(1M) のマニュアルページを参照してください。
# metaoffline d10 d11 d10: submirror d11 is offlined |
この例では、サブミラー d11 をミラー d10 からオフラインにします。読み取りは、他のサブミラーから引き続き行われます。最初の書き込みが行われた時点でミラーは同期していない状態になります。この不整合の状態は、オフラインにしたサブミラーをオンラインに戻すと訂正されます。
# metaonline d10 d11d10: submirror d11 is onlined |
この例では、サブミラー d11 をミラー d10 でオンラインに戻します。
「RAID-1 および RAID-5 ボリューム内のコンポーネントの交換と有効化の概要」および 「RAID-1 ボリュームの作成と保守」を確認します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
次のどちらかの方法でサブミラー内のスライスを有効にします。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択して、「サブミラー (Submirror)」タブをクリックします。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
metareplace コマンドを使用して、サブミラー内のエラーが発生したスライスを有効にします。
# metareplace -e mirror failed-slice |
metareplace コマンドを実行すると、修復または交換されたスライスとミラーのほかの部分との再同期が自動的に開始されます。
詳細は、metareplace(1M) のマニュアルページを参照してください。
# metareplace -e d11 c1t4d0s7 d11: device c1t4d0s7 is enabled |
この例では、ミラー d11 のサブミラーに含まれるスライス c1t4d0s7 にソフトエラーがあります。-e オプションを付けた metareplace コマンドを実行して、エラーの発生したスライスを有効にします。
物理ディスクに障害が発生した場合は、そのディスクをシステム上で利用可能なほかのディスク (およびそのスライス) と交換できます (「サブミラー内のスライスを交換するには」を参照)。あるいは、ディスクを修復または交換し、フォーマットした上で、この例のように、 -e オプションを指定した metareplace コマンドを使用することもできます。
RAID-1 ボリュームとサブミラーに関連する状態情報の概要については、「保守作業を決定するサブミラーの状態」を参照してください。
次のどちらかの方法でミラーやサブミラーの状態をチェックします。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
ミラーに metastat コマンドを実行し、各サブミラーの状態を表示します。
# metastat mirror |
ミラーのパス番号、読み取りオプション、または書き込みオプションを変更する方法については、「RAID-1 ボリュームオプションを変更するには」を参照してください。
デバイス状態のチェックについては、metastat(1M) のマニュアルページを参照してください。
次に、metastat コマンドの出力例を示します。ミラー名を指定しないで metastat コマンドを使用すると、すべてのミラーのあらゆる状態が表示されます。
# metastatd70: 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 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 コマンドを使用すると、そのミラーに対応する出力が表示されます。
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 |
metastat コマンドは、ミラーのサブミラーごとに、その状態、「invoke」行 (エラーがある場合)、割り当てられたホットスペア集合 (ホットスペアがある場合)、ブロック数、サブミラーの各スライスの情報を表示します。
「RAID-1 ボリュームのオプション」を確認します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
次のどちらかの方法で、RAID-1 オプションを変更します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
metaparam コマンドを使ってミラーのオプションを表示および変更します。
# metaparam [mirror options] 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 ボリュームの作成と保守」を確認します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
次のどちらかの方法でミラーを拡張します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。さらに「アクション (Action)」、「プロパティ (Properties)」の順に選択し、サブミラー (Submirror) タブをクリックします。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
metattach コマンドを使って各サブミラーにスライスを接続します。
# metattach submirror slice |
ミラー内のすべてのサブミラーを拡張する必要があります。詳細は、metattach(1M) のマニュアルページを参照してください。
metattach コマンドを使って、ミラーのサイズをサブミラーのサイズに基づいて計算し直すように指示します。
# metattach mirror |
# 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 # metattach d8 |
この例では、2 つのディスクドライブをミラーの2 つのサブミラーに連結することによって、ミラー化したマウント済みのファイルシステムを拡張します。ミラー d8 は、2 つのサブミラー d9 と d10 から構成されています。
UFS の場合は、ミラーボリュームに対して growfs(1M) コマンドを実行します。「ファイルシステムを拡張するには」を参照してください。
データベースなど、raw ボリュームを使用するアプリケーションは、独自の方法で記憶領域を拡張できなければなりません。
「RAID-1 および RAID-5 ボリューム内のコンポーネントの交換と有効化の概要」および 「RAID-1 ボリュームの作成と保守」を確認します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
metastat コマンドで RAID-1 ボリュームとそのサブミラーの状態を調べます。
# metastat mirror-name |
次のどちらかの方法でサブミラー内のスライスを交換します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択して、「サブミラー (Submirror)」タブをクリックします。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の 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 ボリュームの作成と保守」を確認します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
metastat コマンドで RAID-1 ボリュームとそのサブミラーの状態を調べます。
# metastat mirror-name |
次のどちらかの方法でサブミラーを交換します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開きます。ミラーを選択します。次に、「アクション (Action)」、「プロパティ (Properties)」の順に選択して、「サブミラー (Submirror)」タブをクリックします。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
metadetach、metaclear、metatinit、および metattach コマンドを使って、サブミラー全体を交換します。
metadetach コマンドを使ってミラーから障害のあるサブミラーを切り離します。
# metadetach -f mirror-name submirror |
切り離しを強制的に実行します。
ミラー名を指定します。
切り離すサブミラーを指定します。
metaclear コマンドを使用して、サブミラーを削除します。
# metaclear -f submirror |
サブミラーの削除を強制的に実行します。
削除するサブミラーを指定します。
metainit コマンドを使用して、新しいサブミラーを作成します。
# metainit volume-name number-of-stripes components-per-stripe component-name |
作成するボリュームの名前を指定します。ボリュームの命名方式については、「ボリューム名」を参照してください。
作成するストライプの数を指定します。
各ストライプに与えるコンポーネントの数を指定します。
使用するコンポーネントの名前を指定します。この例では、ルートスライス c0t0d0s0 を使用します。
metattach コマンドを使って新しいサブミラーを接続します。
# metattach mirror submirror |
次の例では、アクティブなミラー内のサブミラーを交換します。
# 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 コマンドは、作成し直したサブミラーを接続します。ミラーの再同期が自動的に開始されます。
新しいボリューム d22 の構成は、置き換えるコンポーネントによって異なります。この場合は連結で十分に連結を置き換えることができます。しかし、ストライプの場合は性能に影響が出るので、連結が最適な置換とはなりません。
ミラーが1 面ミラーとなっている間は、データの冗長性が一時的に失われます。
この手順では、システムの動作中にマウント解除できるファイルシステムのミラー化を解除します。ルート (/)、 /var、/usr、swap、またはシステムの稼働中はマウントを解除できないその他のファイルシステムのミラー化を解除する場合は、「マウント解除できないファイルシステムのミラー化を解除するには」を参照してください。
「RAID-1 ボリュームの作成と保守」を確認します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。
# metastat mirror |
ファイルシステムをマウント解除します。
# umount /file-system |
サブミラーを切り離します。このサブミラーは、この後もこのファイルシステムのために使用されます。
# metadetach mirror submirror |
詳細は、metadetach(1M) のマニュアルページを参照してください。
# metaclear -r mirror |
詳細は、metaclear(1M) のマニュアルページを参照してください。
必要であれば、/etc/vfstab ファイルを編集して、手順 4 で切り離したコンポーネントを使用するように指定します。
ファイルシステムを再びマウントします。
# mount /file-system |
# metastat d4 d4: Mirror Submirror 0: d2 State: Okay Submirror 1: d3 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 2100735 blocks (1.0 GB) d2: Submirror of d4 State: Okay Size: 2100735 blocks (1.0 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c0t0d0s0 0 No Okay Yes d3: Submirror of d4 State: Okay Size: 2100735 blocks (1.0 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t0d0s0 0 No Okay Yes ... # umount /opt # metadetach d4 d2 d4: submirror d2 is detached # metaclear -r d4 d4: Mirror is cleared d3: Concat/Stripe is cleared (Edit the /etc/vfstab file so that the entry for /opt is changed from d4 to the underlying slice or volume) # mount /opt |
この例の /opt ファイルシステムは 2 面ミラー d4 から構成されています。このミラーのサブミラーは d2 と d3 です。サブミラーはスライス /dev/dsk/c0t0d0s0 と /dev/dsk/c1t0d0s0 からなります。metastat コマンドを使用して、少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。(「正常 (Okay)」状態のサブミラーが存在しないミラーは、最初に修復する必要があります)。ファイルシステムのマウントを解除します。次に、サブミラー d2 を切り離します。metaclear -r コマンドで、ミラーともう 1 つのサブミラー d3 を削除します。
次に、該当するスライスを参照するように /etc/vfstab ファイル内の /opt 用のエントリを編集します。
この例では、/etc/vfstab ファイルに /opt ファイルシステム用の次のエントリが指定されています。
/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 を含め、通常のシステム稼働時にはマウントを解除できないファイルシステムのミラー化を解除します。
すべてのデータの最新のバックアップを取っているか確認します。また、この操作には root 権限が必要です。
少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。
# metastat mirror |
サブミラーを切り離します。このサブミラーは、引き続きファイルシステム用として使用します。
# metadetach mirror submirror |
詳細は、metadetach(1M) のマニュアルページを参照してください。
ミラー化を解除するファイルシステムに応じて、次のどちらかのコマンドを使用します。
/usr、/opt、またはswap ファイルシステムの場合は、/etc/vfstab ファイルに指定されているファイルシステムエントリを変更し、Solaris ボリュームマネージャ以外のデバイス (スライス) が使用されるようにします。
ルート (/) ファイルシステムの場合のみ:metaroot コマンドを実行します。
# metaroot rootslice |
詳細は、metaroot(1M) のマニュアルページを参照してください。
システムをリブートします。
# reboot |
残りのミラーとサブミラーを削除します。
# metaclear -r mirror |
詳細は、metaclear(1M) のマニュアルページを参照してください。
# metastat d0 d0: Mirror Submirror 0: d10 State: Okay Submirror 1: d20 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 2100735 blocks (1.0 GB) d10: Submirror of d0 State: Okay Size: 2100735 blocks (1.0 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c0t3d0s0 0 No Okay Yes d20: Submirror of d0 State: Okay Size: 2100735 blocks (1.0 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t3d0s0 0 No Okay Yes # 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 |
この例のルート (/) ファイルシステムは 2 面ミラー d0 です。このミラーのサブミラーは 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 ファイルシステムは、2 面ミラー d1 からなります。このミラーのサブミラーは d11 と d21 です。サブミラーはスライス /dev/dsk/c0t3d0s1 と /dev/dsk/c1t3d0s1 からなります。metastat コマンドを使用して、少なくとも 1 つのサブミラーが「正常 (Okay)」状態であることを確認します。(「正常 (Okay)」状態のサブミラーが存在しないミラーは、最初に修復する必要があります)。次に、サブミラー d21 を切り離して、ミラー d1 を 1 面ミラーにします。次に、/etc/vfstab ファイルを編集して、swap のエントリが、サブミラー d21 のスライスを参照するように指定します。
この例では、/etc/vfstab ファイルに swap ファイルシステム用の次のエントリが指定されています。
/dev/md/dsk/d4 /dev/md/rdsk/d4 /opt ufs 2 yes - |
/dev/md/dsk/d1 - - swap - no - |
次のようにエントリを変更します。
/dev/dsk/c0t3d0s1 - - swap - no - |
システムのリブート後、metaclear -r コマンドは、このミラーともう 1 つのサブミラー d11 を削除します。最後の metaclear コマンドは、サブミラー d21 を削除します。
Solaris ボリュームマネージャは「バックアップ製品」を意図しているわけではありません。しかし、Solaris ボリュームマネージャは次のいずれも引き起こすことなく、ミラー化されたデータをバックアップする手段を提供します。
ミラーのマウント解除
ミラー全体のオフライン化
システムの停止
ユーザーに対するデータアクセス拒否
Solaris ボリュームマネージャは、最初にサブミラーの 1 つをオフラインにすることによって、ミラー化されたデータをバックアップします。バックアップの間、ミラー化は一時的に使用できなくなります。バックアップの完了と同時に、サブミラーがオンラインに戻り、再同期が実行されます。
UFS のスナップショット機能で、ファイルシステムをオフラインにすることなく、システムをバックアップすることもできます。サブミラーの切り離しや、あとでミラーを再同期させることによる性能低下を伴わずに、バックアップを実行できます。UFS のスナップショット機能によるバックアップを実行する前に、UFS ファイルシステム上の使用可能領域が十分かどうかを確認してください。詳細は、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 26 章「UFS スナップショットの使用 (手順)」を参照してください。
この手順は、ルート (/) 以外のすべてのファイルシステムに使用できます。このタイプのバックアップは、動作中のファイルシステムのある時点での内容を保存することに注意してください。ファイルシステムへの書き込みをロックしたときのファイルシステムの使用状況によっては、バックアップしたファイルがディスク上の実際のファイルに対応しないことがあります。
この手順には次の制約があります。
この手順を 2 面ミラーに対して使用すると、1 つのサブミラーをバックアップのためにオフラインにしたときに、データの冗長性が失われます。多面ミラーにはこの問題はありません。
バックアップの完了後に、再接続されたサブミラーを再同期するときに、システムにある程度のオーバーヘッドが生じます。
この手順の概要は次のとおりです。
ファイルシステムへの書き込みをロックします (UFS のみ)。ルート (/) はロックしないようにします。
キャッシュのすべてのデータをディスクにフラッシュします。
metadetach コマンドを使って、このミラーの 1 つのサブミラーを切り離します。
ファイルシステムのロックを解除します。
fsck コマンドを使って、切り離されたサブミラーにファイルシステムがあることを確認します。
切り離されたサブミラーのデータをバックアップします。
metattach コマンドを使って、切り離されたサブミラーをミラーに再び接続します。
このような手順を定常的に使用する場合は、これをスクリプトにしておくと実行が容易になります。
より安全な方法としては、ミラーに 3 番目または 4 番目のサブミラーを接続し、これを再同期し、バックアップに使用します。これによって、データの冗長性が常に保たれます。
ミラーが「正常 (Okay)」状態であることを確認します。
ミラーが「保守 (Maintenance)」状態の場合は、まずそれを修復する必要があります。
# metastat mirror |
キャッシュのデータと UFS ロギングデータをディスクにフラッシュし、このファイルシステムの書き込みをロックします。
# /usr/sbin/lockfs -w mount-point |
書き込みをロックする必要があるファイルシステムは UFS ボリュームだけです。このボリュームがデータベース管理ソフトウェアなどのアプリケーション用に raw デバイスとして設定されている場合は、lockfs コマンドを実行する必要はありません。ただし、ベンダー提供の適切なユーティリティーを実行してバッファーをフラッシュしたり、アクセスをロックする必要がある場合もあります。
ルート (/) ファイルシステムは書き込みロックしてはなりません。ルート (/) ファイルシステムを書き込みロックすると、システムが停止します。ルート (/) ファイルシステムをバックアップしている場合は、この手順をスキップします。
ミラーから 1 つのサブミラーを切り離します。
# metadetach mirror submirror |
ミラーのボリューム名です。
切り離すサブミラー (ボリューム) のボリューム名です。
読み取りは、他のサブミラーから引き続き行われます。最初の書き込みが行われた時点でミラーは同期していない状態になります。この不整合の状態は、手順 7 でサブミラーが再び接続された時点で修復されます。
ファイルシステムのロックを解除し、書き込みを再開します。
# /usr/sbin/lockfs -u mount-point |
手順 2 で使用したベンダー提供のユーティリティーを使用して、必要なロック解除手順を実行しなければならない場合があります。
fsck コマンドを使って、切り離されたサブミラーにファイルシステムがあることを確認します。この手順によって、クリーンなバックアップが保証されます。
# fsck /dev/md/rdsk/name |
オフラインにしたサブミラーのバックアップを取ります。
これには、ufsdump コマンド、または通常使用しているバックアップユーティリティーを使用します。ufsdump コマンドを使ってバックアップを実行する方法については、「ufsdump コマンドによるマウント済みファイルシステムのバックアップ」を参照してください。
適切なバックアップを確実に行うには、raw ボリューム名 (/dev/md/rdsk/d4 など) を使用します。raw ボリューム名を使用すると、2G バイトを超える記憶領域にアクセスできます。
サブミラーを接続します。
# metattach mirror submirror |
サブミラーとミラーの再同期が自動的に開始されます。
この例では、ミラー d1 を使用します。このミラーはサブミラー d2、d3、および d4 からなります。サブミラー d3 を切り離して、このサブミラーのバックアップを取ります。この間、サブミラー d2 と d4 はオンラインのままです。このミラーにあるファイルシステムは /home1 です。
# metastat d1 d1: Mirror Submirror 0: d2 State: Okay Submirror 1: d3 State: Okay Submirror 1: d4 State: Okay ... # /usr/sbin/lockfs -w /home1 # metadetach d1 d3 # /usr/sbin/lockfs -u /home1 # /usr/sbin/fsck /dev/md/rdsk/d3 (Perform backup using /dev/md/rdsk/d3) # metattach d1 d3 |