Oracle Solaris ZFS 管理ガイド

第 2 章 Oracle Solaris ZFS 入門

この章では、基本的な Oracle Solaris ZFS 構成の設定に関する詳しい手順を提供します。この章を読み終わると、ZFS コマンドの機能の基本を理解し、基本的なプールとファイルシステムを作成できるようになります。この章では、ZFS の包括的な概要を提供しません。また、ZFS の詳細については、以降の章を参照してください。

この章は、次の節で構成されます。

ZFS のハードウェアとソフトウェアに関する要件および推奨要件

ZFS ソフトウェアを使用する前に、次に示すハードウェアとソフトウェアの要件および推奨要件を確認してください。

基本的な ZFS ファイルシステムを作成する

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

プールの中に、さらに別のファイルシステムを作成することをお勧めします。ファイルシステムに基づいてプールを管理すれば、プールに含まれるさまざまなデータを管理しやすくなります。

次の例は、ストレージプール tankfs という名前のファイルシステムを作成する方法を示しています。


# 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 ストレージプールを作成する

前述の例では、ZFS の操作が簡単であることを示しました。この章の残りの部分では、実際の環境に近い、より詳細な例を提供します。最初に、ストレージ要件を確認して、ストレージプールを作成します。プールによって、ストレージの物理的な特性が決まります。どのようなファイルシステムを作成する場合にも、最初にプールを作成する必要があります。

ProcedureZFS ストレージプールのストレージ要件を確認する方法

  1. ストレージプールに使用可能なデバイスを決定します。

    ストレージプールを作成する前に、データを格納するデバイスを決定する必要があります。デバイスのサイズは、128M バイト以上にしてください。オペレーティングシステムのほかの部分で使われていてはいけません。事前にフォーマットされているディスク上のスライスを個別に選択するか、1 つの大きなスライスとしてフォーマットされたディスク全体を選択することができます。

    「ZFS ストレージプールを作成する方法」のストレージ例では、ディスク /dev/dsk/c1t0d0 および /dev/dsk/c2t0d0 の全体が使用されることを前提としています。

    ディスクの詳細、および使用方法と名前の付け方については、「ZFS ストレージプール内でディスクを使用する」を参照してください。

  2. データの複製を選択します。

    ZFS では、複数の種類のデータ複製がサポートされます。プールが対応できるハードウェア障害の種類は、データ複製の種類によって決まります。ZFS では、非冗長 (ストライプ) 構成、ミラー構成、および RAID-Z (RAID-5 の一種) がサポートされます。

    「ZFS ストレージプールを作成する方法」のストレージ例では、使用可能な 2 台のディスクを基本的な方法でミラー化しています。

    ZFS の複製機能の詳細については、「ZFS ストレージプールの複製機能」を参照してください。

ProcedureZFS ストレージプールを作成する方法

  1. root になるか、適切な ZFS 権利プロファイルが割り当てられた root と同等の役割を引き受けます。

    ZFS 権利プロファイルの詳細については、「ZFS 権利プロファイル」を参照してください。

  2. ストレージプールの名前を選択します。

    この名前は、zpool または zfs コマンドの使用時にストレージプールを識別するために使用されます。ほとんどのシステムに必要なプールは 1 つだけです。任意の名前を選択できますが、「ZFS コンポーネントに名前を付けるときの規則」の名前の付け方の規則に準拠している必要があります。

  3. プールを作成します。

    たとえば次のコマンドは、tank という名前のミラープールを作成します。


    # zpool create tank mirror c1t0d0 c2t0d0
    

    1 つ以上のデバイスに別のファイルシステムが含まれる場合、または 1 つ以上のデバイスが使用中である場合は、このコマンドを使ってプールを作成することはできません。

    ストレージプールの作成方法の詳細については、「ZFS ストレージプールを作成する」を参照してください。デバイスの使用状況を確認する方法の詳細については、「使用中のデバイスを検出する」を参照してください。

  4. 結果を確認します。

    プールが正常に作成されたかどうかは、zpool list コマンドを使って確認できます。


    # zpool list
    NAME                    SIZE    ALLOC   FREE    CAP  HEALTH     ALTROOT
    tank                     80G    137K     80G     0%  ONLINE     -

    プールの状態を確認する方法の詳細については、「ZFS ストレージプールの状態のクエリー検索を行う」を参照してください。

ZFS ファイルシステム階層を作成する

ストレージプールを作成してデータを格納したあとで、ファイルシステムの階層を作成できます。階層を利用すれば、情報を簡単かつ強力に編成することができます。ファイルシステムを使用したことがあれば、階層も同じように操作できます。

ZFS では、ファイルシステムを階層に編成できます。各ファイルシステムの親は 1 つだけです。階層のルートは常にプールの名前です。ZFS では、この階層を利用してプロパティーを継承することができるので、ファイルシステムのツリー全体に共通のプロパティーをすばやく簡単に設定できます。

ProcedureZFS ファイルシステム階層を決定する方法

  1. ファイルシステムの構造を選択します。

    ZFS の管理は、ファイルシステムに基づいて行います。このファイルシステムは、軽量で、簡単に作成できます。ファイルシステムは、ユーザーまたはプロジェクトごとに作成することをお勧めします。このモデルを使えば、プロパティー、スナップショット、およびバックアップをユーザーまたはプロジェクト単位で制御することができます。

    「ZFS ファイルシステムを作成する方法」で、2 つの ZFS ファイルシステム bonwick および billm が作成されます。

    ファイルシステムの管理方法の詳細については、第 6 章Oracle Solaris ZFS ファイルシステムの管理を参照してください。

  2. 属性が似ているファイルシステムをグループにまとめます。

    ZFS では、ファイルシステムを階層に編成できます。そのため、属性が似ているファイルシステムをグループにまとめることがきます。このモデルを利用すれば、プロパティーの制御やファイルシステムの管理を一箇所で行うことができます。属性が似ているファイルシステムは、共通の名前の階層下に作成するようにしてください。

    「ZFS ファイルシステムを作成する方法」の例では、2 つのファイルシステムが home という名前のファイルシステムの下に配置されます。

  3. ファイルシステムのプロパティーを選択します。

    ファイルシステムの特性のほとんどは、プロパティーによって制御されます。ファイルシステムがマウントされる場所、共有される方法、圧縮を使用するかどうか、割り当て制限が有効かどうかなど、さまざまな動作がこれらのプロパティーによって制御されます。

    「ZFS ファイルシステムを作成する方法」の例では、すべてのホームディレクトリが /export/zfs/ user にマウントされ、NFS を使って共有され、圧縮が有効になっています。さらに、ユーザー bonwick には 10G バイトの割り当て制限が適用されます。

    プロパティーの詳細については、「ZFS のプロパティーの紹介」を参照してください。

ProcedureZFS ファイルシステムを作成する方法

  1. root になるか、適切な ZFS 権利プロファイルが割り当てられた root と同等の役割を引き受けます。

    ZFS 権利プロファイルの詳細については、「ZFS 権利プロファイル」を参照してください。

  2. 必要な階層を作成します。

    この例では、各ファイルシステムのコンテナとして機能するファイルシステムが作成されます。


    # zfs create tank/home
    
  3. 継承されるプロパティーを設定します。

    ファイルシステムの階層が確立されたら、すべてのユーザーの間で共有すべきプロパティーをすべて設定します。


    # 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 のプロパティーの紹介」を参照してください。

    次に、各ファイルシステムが、プール tankhome ファイルシステムの下にグループとしてまとめられます。

  4. ファイルシステムを個別に作成します。

    ファイルシステムが作成されている場合があり、それからプロパティーが home レベルで変更されている場合があります。すべてのプロパティーは、ファイルシステムの使用中に動的に変更できます。


    # zfs create tank/home/bonwick
    # zfs create tank/home/billm
    

    これらのファイルシステムは、親ファイルシステムからプロパティー値を継承します。このため、/export/zfs/user に自動的にマウントされ、NFS を使って共有されます。/etc/vfstab /etc/dfs/dfstab ファイルを編集する必要はありません。

    ファイルシステムの作成方法の詳細については、「ZFS ファイルシステムを作成する」を参照してください。

    ファイルシステムのマウントおよび共有の詳細については、「ZFS ファイルシステムをマウントおよび共有する」を参照してください。

  5. ファイルシステム固有のプロパティーを設定します。

    この例では、ユーザー bonwick に 10G バイトの割り当て制限が適用されます。このプロパティーを設定すると、プールで消費できる容量に関係なく、ユーザーが使用できる容量に制限が適用されます。


    # zfs set quota=10G tank/home/bonwick
    
  6. 結果を確認します。

    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 のディスク領域の計上」を参照してください。