この章では、基本的な Oracle Solaris ZFS 構成の設定に関する詳しい手順を提供します。この章を読み終わると、ZFS コマンドの機能の基本を理解し、基本的なプールとファイルシステムを作成できるようになります。この章では、ZFS の包括的な概要を提供しません。また、ZFS の詳細については、以降の章を参照してください。
この章は、次の節で構成されます。
ZFS ソフトウェアを使用する前に、次に示すハードウェアとソフトウェアの要件および推奨要件を確認してください。
Solaris 10 6/06 以降のリリースが稼働している SPARC または x86 システムを使用してください。
ストレージプールに必要な最小ディスク容量は、64M バイトです。最小ディスクサイズは 128M バイトです。
Solaris システムのインストールに必要な最小メモリー容量は、768M バイトです。ただし、良好な ZFS パフォーマンスを得るには、1G バイト以上のメモリーを使用してください。
ミラー化ディスク構成を作成する場合は複数のコントローラを使用してください。
ZFS は、簡単に管理できるように設計されています。より少ないコマンドで有効なファイルシステムを作成できるようにすることが、設計目標の 1 つになっています。たとえば、新しいプールを作成すると、新しい ZFS ファイルシステムが自動的に作成されてマウントされます。
次の例は、tank という名前の基本的なミラー化ストレージプールと tank という名前の ZFS ファイルシステムを、1 つのコマンドで作成する方法を示しています。/dev/dsk/c1t0d0 ディスク全体と /dev/dsk/c2t0d0 ディスク全体を使用することを前提としています。
# zpool create tank mirror c1t0d0 c2t0d0 |
冗長な ZFS プール構成の詳細については、「ZFS ストレージプールの複製機能」を参照してください。
この新規 ZFS ファイルシステム tank は、使用可能なディスク領域を必要に応じて使用でき、/tank に自動的にマウントされます。
# mkfile 100m /tank/foo # df -h /tank Filesystem size used avail capacity Mounted on tank 80G 100M 80G 1% /tank |
プールの中に、さらに別のファイルシステムを作成することをお勧めします。ファイルシステムに基づいてプールを管理すれば、プールに含まれるさまざまなデータを管理しやすくなります。
次の例は、ストレージプール tank に fs という名前のファイルシステムを作成する方法を示しています。
# zfs create tank/fs |
この新規 ZFS ファイルシステム tank/fs は、使用可能なディスク領域を必要に応じて使用でき、/tank/fs に自動的にマウントされます。
# mkfile 100m /tank/fs/foo # df -h /tank/fs Filesystem size used avail capacity Mounted on tank/fs 80G 100M 80G 1% /tank/fs |
通常、ファイルシステムの階層を作成して編成するときには、組織の要件に一致させることをお勧めします。ZFS ファイルシステム階層の作成方法については、「ZFS ファイルシステム階層を作成する」を参照してください。
前述の例では、ZFS の操作が簡単であることを示しました。この章の残りの部分では、実際の環境に近い、より詳細な例を提供します。最初に、ストレージ要件を確認して、ストレージプールを作成します。プールによって、ストレージの物理的な特性が決まります。どのようなファイルシステムを作成する場合にも、最初にプールを作成する必要があります。
ストレージプールに使用可能なデバイスを決定します。
ストレージプールを作成する前に、データを格納するデバイスを決定する必要があります。デバイスのサイズは、128M バイト以上にしてください。オペレーティングシステムのほかの部分で使われていてはいけません。事前にフォーマットされているディスク上のスライスを個別に選択するか、1 つの大きなスライスとしてフォーマットされたディスク全体を選択することができます。
「ZFS ストレージプールを作成する方法」のストレージ例では、ディスク /dev/dsk/c1t0d0 および /dev/dsk/c2t0d0 の全体が使用されることを前提としています。
ディスクの詳細、および使用方法と名前の付け方については、「ZFS ストレージプール内でディスクを使用する」を参照してください。
データの複製を選択します。
ZFS では、複数の種類のデータ複製がサポートされます。プールが対応できるハードウェア障害の種類は、データ複製の種類によって決まります。ZFS では、非冗長 (ストライプ) 構成、ミラー構成、および RAID-Z (RAID-5 の一種) がサポートされます。
「ZFS ストレージプールを作成する方法」のストレージ例では、使用可能な 2 台のディスクを基本的な方法でミラー化しています。
ZFS の複製機能の詳細については、「ZFS ストレージプールの複製機能」を参照してください。
root になるか、適切な ZFS 権利プロファイルが割り当てられた root と同等の役割を引き受けます。
ZFS 権利プロファイルの詳細については、「ZFS 権利プロファイル」を参照してください。
ストレージプールの名前を選択します。
この名前は、zpool または zfs コマンドの使用時にストレージプールを識別するために使用されます。ほとんどのシステムに必要なプールは 1 つだけです。任意の名前を選択できますが、「ZFS コンポーネントに名前を付けるときの規則」の名前の付け方の規則に準拠している必要があります。
プールを作成します。
たとえば次のコマンドは、tank という名前のミラープールを作成します。
# zpool create tank mirror c1t0d0 c2t0d0 |
1 つ以上のデバイスに別のファイルシステムが含まれる場合、または 1 つ以上のデバイスが使用中である場合は、このコマンドを使ってプールを作成することはできません。
ストレージプールの作成方法の詳細については、「ZFS ストレージプールを作成する」を参照してください。デバイスの使用状況を確認する方法の詳細については、「使用中のデバイスを検出する」を参照してください。
結果を確認します。
プールが正常に作成されたかどうかは、zpool list コマンドを使って確認できます。
# zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 80G 137K 80G 0% ONLINE - |
プールの状態を確認する方法の詳細については、「ZFS ストレージプールの状態のクエリー検索を行う」を参照してください。
ストレージプールを作成してデータを格納したあとで、ファイルシステムの階層を作成できます。階層を利用すれば、情報を簡単かつ強力に編成することができます。ファイルシステムを使用したことがあれば、階層も同じように操作できます。
ZFS では、ファイルシステムを階層に編成できます。各ファイルシステムの親は 1 つだけです。階層のルートは常にプールの名前です。ZFS では、この階層を利用してプロパティーを継承することができるので、ファイルシステムのツリー全体に共通のプロパティーをすばやく簡単に設定できます。
ファイルシステムの構造を選択します。
ZFS の管理は、ファイルシステムに基づいて行います。このファイルシステムは、軽量で、簡単に作成できます。ファイルシステムは、ユーザーまたはプロジェクトごとに作成することをお勧めします。このモデルを使えば、プロパティー、スナップショット、およびバックアップをユーザーまたはプロジェクト単位で制御することができます。
「ZFS ファイルシステムを作成する方法」で、2 つの ZFS ファイルシステム bonwick および billm が作成されます。
ファイルシステムの管理方法の詳細については、第 6 章Oracle Solaris ZFS ファイルシステムの管理を参照してください。
属性が似ているファイルシステムをグループにまとめます。
ZFS では、ファイルシステムを階層に編成できます。そのため、属性が似ているファイルシステムをグループにまとめることがきます。このモデルを利用すれば、プロパティーの制御やファイルシステムの管理を一箇所で行うことができます。属性が似ているファイルシステムは、共通の名前の階層下に作成するようにしてください。
「ZFS ファイルシステムを作成する方法」の例では、2 つのファイルシステムが home という名前のファイルシステムの下に配置されます。
ファイルシステムのプロパティーを選択します。
ファイルシステムの特性のほとんどは、プロパティーによって制御されます。ファイルシステムがマウントされる場所、共有される方法、圧縮を使用するかどうか、割り当て制限が有効かどうかなど、さまざまな動作がこれらのプロパティーによって制御されます。
「ZFS ファイルシステムを作成する方法」の例では、すべてのホームディレクトリが /export/zfs/ user にマウントされ、NFS を使って共有され、圧縮が有効になっています。さらに、ユーザー bonwick には 10G バイトの割り当て制限が適用されます。
プロパティーの詳細については、「ZFS のプロパティーの紹介」を参照してください。
root になるか、適切な ZFS 権利プロファイルが割り当てられた root と同等の役割を引き受けます。
ZFS 権利プロファイルの詳細については、「ZFS 権利プロファイル」を参照してください。
必要な階層を作成します。
この例では、各ファイルシステムのコンテナとして機能するファイルシステムが作成されます。
# zfs create tank/home |
継承されるプロパティーを設定します。
ファイルシステムの階層が確立されたら、すべてのユーザーの間で共有すべきプロパティーをすべて設定します。
# zfs set mountpoint=/export/zfs tank/home # zfs set sharenfs=on tank/home # zfs set compression=on tank/home # zfs get compression tank/home NAME PROPERTY VALUE SOURCE tank/home compression on local |
ファイルシステムの作成時にファイルシステムのプロパティーを設定できます。次に例を示します。
# zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home |
プロパティーおよびプロパティーの継承の詳細については、「ZFS のプロパティーの紹介」を参照してください。
次に、各ファイルシステムが、プール tank の home ファイルシステムの下にグループとしてまとめられます。
ファイルシステムを個別に作成します。
ファイルシステムが作成されている場合があり、それからプロパティーが home レベルで変更されている場合があります。すべてのプロパティーは、ファイルシステムの使用中に動的に変更できます。
# zfs create tank/home/bonwick # zfs create tank/home/billm |
これらのファイルシステムは、親ファイルシステムからプロパティー値を継承します。このため、/export/zfs/user に自動的にマウントされ、NFS を使って共有されます。/etc/vfstab や /etc/dfs/dfstab ファイルを編集する必要はありません。
ファイルシステムの作成方法の詳細については、「ZFS ファイルシステムを作成する」を参照してください。
ファイルシステムのマウントおよび共有の詳細については、「ZFS ファイルシステムをマウントおよび共有する」を参照してください。
ファイルシステム固有のプロパティーを設定します。
この例では、ユーザー bonwick に 10G バイトの割り当て制限が適用されます。このプロパティーを設定すると、プールで消費できる容量に関係なく、ユーザーが使用できる容量に制限が適用されます。
# zfs set quota=10G tank/home/bonwick |
結果を確認します。
zfs list コマンドを使用して、利用できるファイルシステムの情報を確認します。
# zfs list NAME USED AVAIL REFER MOUNTPOINT tank 92.0K 67.0G 9.5K /tank tank/home 24.0K 67.0G 8K /export/zfs tank/home/billm 8K 67.0G 8K /export/zfs/billm tank/home/bonwick 8K 10.0G 8K /export/zfs/bonwick |
ユーザー bonwick が使用できる容量は 10G バイトだけですが、ユーザー billm はプール全体 (67G バイト) を使用できます。
ファイルシステムの状態の詳細については、「ZFS ファイルシステムの情報のクエリー検索を行う」を参照してください。
ディスク領域がどのように使用および計算されるかの詳細については、「ZFS のディスク領域の計上」を参照してください。