Contidos dentroLocalizar Mais DocumentaçãoDestaques de Recursos de Suporte | Fazer download desta apostila em PDF (2012 KB)
第 10 章 ZFS のその他のトピックこの章では、ZFS ボリューム、ゾーンがインストールされた Solaris システムで ZFS を使用する方法、ZFS 代替ルートプール、および ZFS 権利プロファイルについて説明します。 この章は、次の節で構成されます。 ZFS ボリュームZFS ボリュームとは、ブロックデバイスを表すデータセットです。ZFS ボリュームは、/dev/zvol/{dsk,rdsk}/path ディレクトリのデバイスとして識別されます。 次の例では、5G バイトの ZFS ボリューム tank/vol が作成されます。
ボリュームを作成すると、そのボリュームの初期サイズの予約が自動的に設定されます。予約されるサイズは、予期しない動作が発生しないように、ボリュームのサイズと等しくなるように継続的に調整されます。たとえば、ボリュームのサイズを縮小すると、データが破壊される可能性があります。ボリュームのサイズを変更するときは、注意深く行う必要があります。 また、サイズが変化するボリュームのスナップショットを作成する場合は、スナップショットをロールバックしたり、スナップショットからのクローンを作成しようとすると、ファイルシステムの不一致が発生する可能性があります。 ボリュームに適用可能なファイルシステムプロパティーについては、表 6–1 を参照してください。 ゾーンがインストールされた Solaris システムを使用している場合は、非大域ゾーンの中で ZFS ボリュームを作成または複製することはできません。非大域ゾーンからボリュームを作成または複製しようとすると、すべて失敗します。ZFS ボリュームを大域ゾーンで使用する方法については、「ZFS ボリュームを非大域ゾーンに追加する」を参照してください。 ZFS ボリュームをスワップデバイスまたはダンプデバイスとして使用するZFS ルートファイルシステムをインストールするとき、または UFS ルートファイルシステムから移行するときに、ZFS ルートプールの ZFS ボリュームにスワップデバイスが作成されます。次に例を示します。
ZFS ルートファイルシステムをインストールするとき、または UFS ルートファイルシステムから移行するときに、ZFS ルートプールの ZFS ボリュームにダンプデバイスが作成されます。ダンプデバイスを設定したあとは、ダンプデバイスの管理は不要です。次に例を示します。
CR 6724860 のため、ZFS ダンプボリュームを使用している場合は、クラッシュダンプを保存するには savecore を手動で実行する必要があります。 システムのインストール後またはアップグレード後にスワップ領域やダンプデバイスを変更する必要がある場合は、以前の Solaris 10 リリースと同様に swap コマンドと dumpadm コマンドを使用します。追加のスワップ領域を設定する必要がある場合は、特定のサイズの ZFS ボリュームを作成してから、そのデバイスでスワップを有効にします。次に例を示します。
ZFS ファイルシステム上のファイルには、スワップしないでください。ZFS スワップファイルの構成はサポートされていません。 スワップボリュームとダンプボリュームのサイズの調整については、「ZFS スワップデバイスおよびダンプデバイスのサイズを調整する」を参照してください。 ZFS ボリュームを Solaris iSCSI ターゲットとして使用するこの Solaris リリースでは、Solaris iSCSI ターゲットおよびイニシエータがサポートされています。 また、ボリュームに shareiscsi プロパティーを設定すれば、簡単に ZFS ボリュームを iSCSI ターゲットとして作成できます。次に例を示します。
iSCSI ターゲットが作成されたら、iSCSI イニシエータを設定します。Solaris iSCSI ターゲットおよびイニシエータの詳細については、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 14 章「Solaris iSCSI ターゲットおよびイニシエータの構成 (手順)」を参照してください。 注 – また、Solaris iSCSI ターゲットは、iscsitadm コマンドを使って作成および管理することもできます。ZFS ボリュームに shareiscsi プロパティーを設定した場合は、iscsitadm コマンドを使用して同じターゲットデバイスをまた作成しないでください。同じデバイスのターゲット情報が重複して作成されてしまうためです。 iSCSI ターゲットとしての ZFS ボリュームは、ほかの ZFS データセットとまったく同じように管理されます。ただし、iSCSI ターゲットでは、名前の変更、エクスポート、およびインポートの操作が少し異なります。
iSCSI ターゲットの構成情報はすべてデータセット内に格納されます。NFS 共有ファイルシステムと同様に、別のシステム上にインポートされる iSCSI ターゲットは正しく共有されます。 ゾーンがインストールされている Solaris システムで ZFS を使用する以降の節では、Solaris ゾーンを備えたシステムで ZFS を使用する方法について説明します。 ZFS ルートファイルシステムがインストールされたシステムにゾーンを構成し、Solaris Live Upgrade で移行やパッチの適用を行う方法については、「ゾーンが含まれているシステムを Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」または「ゾーンが含まれているシステムを Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 および Solaris 10 10/09)」を参照してください。 ZFS データセットをゾーンに関連付けるときは、次の点に留意してください。
以降の節では、ZFS データセットはファイルシステムまたはクローンを指します。 データセットを追加すると、非大域ゾーンは大域ゾーンと領域を共有できます。ただし、ゾーン管理者は、配下のファイルシステム階層でプロパティーを制御したり、新しいファイルシステムを作成したりすることはできません。この制限は、ほかの種類のファイルシステムをゾーンに追加する場合にも適用されます。共通の領域を共有することが目的の場合にのみ使用してください。 ZFS では、データセットを非大域ゾーンに委任して、データセットとそのすべての子を完全に制御する権限をゾーン管理者に渡すこともできます。ゾーン管理者は、そのデータセット内でファイルシステムやクローンを作成および破棄したり、データセットのプロパティーを変更したりできます。ゾーン管理者は、ゾーンに追加されていないデータセットを操作できません。また、エクスポートしたデータセットに最上位レベルの割り当て制限が設定されている場合には、その割り当て制限を超過することはできません。 Solaris ゾーンがインストールされたシステム上で ZFS を操作する場合には、次の影響を考慮してください。
ZFS ファイルシステムを非大域ゾーンに追加する大域ゾーンと領域を共有する必要がある場合は、ZFS ファイルシステムを汎用のファイルシステムとして追加して、その目的のためだけに使用できます。 非大域ゾーンに追加する ZFS ファイルシステムは、mountpoint プロパティーを legacy に設定する必要があります。 zonecfg コマンドの add fs サブコマンドを使用することで、ZFS ファイルシステムを非大域ゾーンに追加できます。次に例を示します。 次の例では、大域ゾーンの大域管理者が、ZFS ファイルシステムを非大域ゾーンに追加しています。
この構文では、ZFS ファイルシステム tank/zone/zion がすでに構成済みの zion ゾーンに追加され、/export/shared にマウントされます。ファイルシステムの mountpoint プロパティーは、legacy に設定する必要があります。別の場所にすでにマウントされているファイルシステムは追加できません。ゾーン管理者は、ファイルシステム内でファイルを作成および破棄することができます。ファイルシステムを別の場所に再マウントすることはできません。また、ゾーン管理者がファイルシステムのプロパティー (atime、readonly、compression など) を変更することもできません。大域ゾーン管理者は、ファイルシステムのプロパティーの設定および制御を担当します。 zonecfg コマンドの詳細および zonecfg を使用したリソースタイプの設定の詳細については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』のパート II「ゾーン」を参照してください。 データセットを非大域ゾーンに委任するストレージの管理をゾーンに委任する必要がある場合は、ZFS ではその目的のために、zonecfg コマンドの add dataset サブコマンドを使用してデータセットを非大域ゾーンに追加することができます。 次の例では、大域ゾーンの大域管理者が、ZFS ファイルシステムを非大域ゾーンに委任しています。
ファイルシステムを追加する場合と異なり、この構文を実行すると、ZFS ファイルシステム tank/zone/zion がすでに構成済みの zion ゾーンから見えるようになります。ゾーン管理者は、ファイルシステムのプロパティーを設定し、子を作成することができます。また、ゾーン管理者は、スナップショットを作成し、クローンを作成し、およびファイルシステム階層全体を制御することができます。 Solaris Live Upgrade を使用して非大域ゾーンを含む ZFS BE をアップグレードする場合は、Live Upgrade 操作の前にあらゆる委任データセットを削除してください。削除しないと、読み取り専用ファイルシステムエラーのため、Upgrade 操作が失敗します。次に例を示します。
ゾーンでどのような操作が許可されるかの詳細については、「ZFS プロパティーをゾーンで管理する」を参照してください。 ZFS ボリュームを非大域ゾーンに追加するzonecfg コマンドの add dataset サブコマンドを使用して、ZFS ボリュームを非大域ゾーンに追加することはできません。ZFS ボリュームを追加しようとしていることが検出されると、ゾーンは起動できません。ただし、zonecfg コマンドの add device サブコマンドを使って、ボリュームをゾーンに追加することはできます。 次の例では、大域ゾーンの大域管理者が ZFS ボリュームを非大域ゾーンに追加しています。
この構文では、tank/vol ボリュームがゾーンにエクスポートされます。raw ボリュームをゾーンに追加する操作は、そのボリュームが物理ディスクに対応していない場合でも、潜在的なセキュリティー上の危険を伴います。特に、ゾーン管理者が作成したファイルシステムの形式が正しくない場合には、マウントしようとするときにファイルシステムでパニックが発生します。デバイスをゾーンに追加することおよびそれに関連するセキュリティー上の危険の詳細については、「zoned プロパティーについて」を参照してください。 デバイスをゾーンに追加する方法の詳細については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』のパート II「ゾーン」を参照してください。 ZFS ストレージプールをゾーンで使用するZFS ストレージプールをゾーンの内部で作成または変更することはできません。委任管理モデルを使用することで、大域ゾーン内の物理ストレージデバイスの制御と仮想ストレージの制御をすべて非大域ゾーンで行うことができます。プールレベルのデータセットをゾーンに追加することはできますが、デバイスを作成したり、追加したり、削除したりするなど、プールの物理特性を変更するコマンドはゾーンの内部から実行することはできません。zonecfg コマンドの add device サブコマンドを使用して物理デバイスをゾーンに追加する場合でも、ファイルを使用する場合でも、zpool コマンドを使用してゾーンの内部に新しいプールを作成することはできません。 ZFS プロパティーをゾーンで管理するデータセットをゾーンに追加したあとで、ゾーン管理者は特定のデータセットプロパティーを制御できます。ゾーンに追加したデータセットのすべての祖先は、読み取り専用データセットとして表示されます。ただし、データセット自体およびそのすべての子は書き込み可能です。たとえば、次のような構成を考えてみます。
tank/data/zion をゾーンに追加した場合には、各データセットのプロパティーは次のようになります。
tank/zone/zion のすべての親は読み取り専用として表示され、すべての子は書き込み可能になり、親階層に含まれないデータセットは完全に非表示になります。非大域ゾーンは NFS サーバーとして動作できないため、ゾーン管理者が sharenfs プロパティーを変更することはできません。また、次の節で説明するように、zoned プロパティーを変更するとセキュリティー上の危険にさらされるため、ゾーン管理者はこの操作を行うこともできません。 quota プロパティーとデータセット自体を除いて、ほかの設定可能なプロパティーはすべて変更できます。大域ゾーン管理者は、この動作を利用して、非大域ゾーンで使用されるすべてのデータセットが使用する容量を制御できます。 また、データセットを非大域ゾーンに追加したあとに、大域ゾーン管理者が sharenfs および mountpoint プロパティーを変更することもできません。 zoned プロパティーについてデータセットを非大域ゾーンに追加するときに、特定のプロパティーが大域ゾーンのコンテキストで解釈されないように、データセットに特別な設定を行う必要があります。ゾーン管理者が制御している非大域ゾーンに追加されたデータセットは、すでにその内容が信頼できる状態でなくなっています。どのファイルシステムにも該当することですが、setuid バイナリやシンボリックリンクなどの安全性に問題のある内容が含まれていることがあります。これらは、大域ゾーンのセキュリティーを低下させる可能性があります。また、mountpoint プロパティーは、大域ゾーンのコンテキストでは解釈できません。さらに、ゾーン管理者が大域ゾーンの名前空間を操作してしまう可能性もあります。後者の問題に対処するために、ZFS では zoned プロパティーを使って、データセットがある時点で非大域ゾーンに委任されていることを示しています。 zoned プロパティーはブール値で、ZFS データセットを含むゾーンが最初に起動するときに自動的にオンに設定されます。ゾーン管理者が、このプロパティーを手動でオンに設定する必要はありません。zoned プロパティーが設定されている場合には、そのデータセットを大域ゾーンでマウントまたは共有することはできません。また、zfs share -a コマンドまたは zfs mount -a コマンドを実行するときに、このデータセットは無視されます。次の例では、tank/zone/zion はゾーンに追加されていますが、tank/zone/global は追加されていません。
mountpoint プロパティーと、tank/zone/zion データセットが現在マウントされているディレクトリとが異なっていることに注意してください。mountpoint プロパティーには、データセットがシステム上で現在マウントされている場所ではなく、ディスクに格納されているプロパティーが反映されます。 データセットがゾーンから削除されたり、ゾーンが破棄されたりした場合でも、zoned プロパティーが自動的に消去されることはありません。これらの操作に関連するセキュリティー上の危険が潜在的に存在するために、このような動作になっています。信頼されないユーザーがデータセットとその子へのアクセスを完了してしまっているので、mountpoint プロパティーが不正な値に設定されたり、ファイルシステムに setuid バイナリが存在したりする可能性があります。 意図しないセキュリティー上の危険を防ぐために、データセットをなんらかの方法で再利用する場合には、大域管理者が zoned プロパティーを手動で消去する必要があります。zoned プロパティーを off に設定する前に、データセットおよびそのすべての子の mountpoint プロパティーが適切な値に設定されていること、および setuid バイナリが存在しないことを確認するか、または setuid プロパティーを無効に設定します。 セキュリティーが脆弱なままでないことを確認したあとで、zfs set または zfs inherit コマンドを使用して zoned プロパティーをオフに設定できます。データセットがゾーンで使用されているときに zoned プロパティーをオフに設定すると、システムが予期しない動作をする可能性があります。このプロパティーを変更するのは、データセットが非大域ゾーンで使用されていないことを確認した場合にのみ行なってください。 ZFS 代替ルートプールを使用するプールが作成されると、そのプールはデフォルトでホストシステムに関連付けられます。ホストシステムでは、プールに関する情報を管理しているので、プールが使用できなくなったときにそのことを自動的に検出することができます。この情報は、通常の操作では有効な情報ですが、代替メディアから起動するときまたはリムーバブルメディアにプールを作成するときには障害になることがあります。この問題を解決するために、ZFS には「代替ルート」プール機能が用意されています。代替ルートプールは、システムの再起動後には有効でなくなり、すべてのマウントポイントはプールのルートへの相対パスに変更されます。 ZFS 代替ルートプールを作成する代替ルートプールの作成は、リムーバブルメディアを使用するときによく行われます。このような場合には、必要なファイルシステムは通常 1 つだけなので、ターゲットシステムでユーザーが選択した場所にマウントする必要があります。-R オプションを使用して代替ルートプールを作成すると、ルートファイルシステムのマウントポイントは代替ルートと同じ / に自動的に設定されます。 次の例では、morpheus という名前のプールが 代替ルートパスとしての /mnt に作成されます。
ファイルシステムが 1 つだけで (morpheus)、そのマウントポイントがプールの代替ルート /mnt であることに注意してください。ディスクに格納されているマウントポイントは、実際に / になっています。/mnt のフルパスは、代替ルートプールのコンテキストでのみ解釈されます。このファイルシステムをエクスポートすれば、別のシステムの任意の代替ルートプールにインポートすることができます。 代替ルートプールをインポートする代替ルートを使って、プールをインポートすることもできます。この機能は、回復を行う状況で利用できます。つまり、マウントポイントを現在のルートのコンテキストではなく、修復を実行できるように一時的なディレクトリとして解釈するような状況で利用できます。すでに説明したように、この機能はリムーバブルメディアをマウントするときにも使用できます。 次の例では、morpheus という名前のプールが代替ルートパスとしての /mnt にインポートされます。この例では、morpheus がすでにエクスポート済みであることを前提としています。
ZFS 権利プロファイルスーパーユーザー (root) アカウントを使用しないで ZFS 管理タスクを実行する必要がある場合は、次のいずれかのプロファイルが割り当てられた役割引き受けて ZFS 管理タスクを実行できます。
役割の作成または割り当ての詳細については、『Solaris のシステム管理 (セキュリティサービス)』を参照してください。 RBAC の役割を使用して ZFS ファイルシステムを管理するほかに、ZFS 委任管理を使用して ZFS 管理タスクを分散することも検討できます。詳細は、第 9 章ZFS 委任管理を参照してください。 |
|||||||||||||||||||||||||||||||||||||||||||