ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: ZFS ファイルシステム Oracle Solaris 11 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
3. Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点
4. Oracle Solaris ZFS ストレージプールの管理
6. Oracle Solaris ZFS ファイルシステムの管理
スクリプトで使用できるように ZFS プロパティーのクエリー検索を行う
ZFS ファイルシステムでユーザーおよびグループの割り当て制限を設定する
7. Oracle Solaris ZFS のスナップショットとクローンの操作
8. ACL および属性を使用した Oracle Solaris ZFS ファイルの保護
10. Oracle Solaris ZFS の高度なトピック
11. Oracle Solaris ZFS のトラブルシューティングとプールの回復
13. 推奨の Oracle Solaris ZFS プラクティス
このセクションでは、ZFS でファイルシステムをマウントする方法について説明します。
デフォルトで、ZFS ファイルシステムは作成時に自動的にマウントされます。このセクションで説明するように、ユーザーはファイルシステムの特定のマウントポイント動作を決定することができます。
zpool create の -m オプションを使用すれば、プールを作成するときにプールのファイルシステムのデフォルトマウントポイントを設定することもできます。プールの作成方法については、「ZFS ストレージプールを作成する」を参照してください。
すべての ZFS ファイルシステムは、ZFS のブート時にサービス管理機能 (SMF) の svc://system/filesystem/local サービスを使用してマウントされます。ファイルシステムは、/path にマウントされます。path はファイルシステムの名前です。
デフォルトのマウントポイントをオーバーライドするには、zfs set コマンド使って mountpoint プロパティーを特定のパスに設定します。ZFS では指定されたマウントポイントを必要な場合に自動的に作成し、関連付けられたファイルシステムを自動的にマウントします。
ZFS ファイルシステムは、/etc/vfstab ファイルの編集を必要とすることなく、ブート時に自動的にマウントされます。
mountpoint プロパティーは継承されます。たとえば、pool/home の mountpoint プロパティーが /export/stuff に設定されている場合、pool/home/user は mountpoint プロパティー値の /export/stuff/user を継承します。
ファイルシステムがマウントされないようにするには、mountpoint プロパティーを none に設定します。さらに、canmount プロパティーを使えば、ファイルシステムをマウント可能にするかどうかを制御できます。canmount プロパティーの詳細については、「canmount プロパティー」を参照してください。
また、従来のマウントインタフェース経由でファイルシステムを明示的に管理することもできます。それには、zfs set を使って mountpoint プロパティーを legacy に設定します。このようにすると、ファイルシステムが自動的にマウントおよび管理されなくなります。代わりに、mount や umount コマンドなどのレガシーツールと、/etc/vfstab ファイルを使用する必要があります。レガシーマウントの詳細については、「レガシーマウントポイント」を参照してください。
mountpoint プロパティーを legacy または none から特定のパスに変更すると、ZFS はそのファイルシステムを自動的にマウントします。
ファイルシステムが ZFS によって管理されているのにそのマウントが現在解除されている場合は、mountpoint プロパティーを変更しても、そのファイルシステムのマウントは解除されたままになります。
mountpoint プロパティーが legacy に設定されていないファイルシステムは、すべて ZFS によって管理されます。次の例では、作成されたファイルシステムのマウントポイントが ZFS によって自動的に管理されます。
# zfs create pool/filesystem # zfs get mountpoint pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mountpoint /pool/filesystem default # zfs get mounted pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mounted yes -
次の例に示すように、mountpoint プロパティーを明示的に設定することもできます。
# zfs set mountpoint=/mnt pool/filesystem # zfs get mountpoint pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mountpoint /mnt local # zfs get mounted pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mounted yes -
mountpoint プロパティーを変更すると、ファイルシステムが古いマウントポイントから自動的にマウント解除されて、新しいマウントポイントに再マウントされます。マウントポイントのディレクトリは必要に応じて作成されます。ファイルシステムがアクティブであるためにマウント解除できない場合は、エラーが報告され、手動で強制的にマウント解除する必要があります。
mountpoint プロパティーを legacy に設定することで、ZFS ファイルシステムをレガシーツールを使って管理することができます。レガシーファイルシステムは、mount と umount コマンド、および /etc/vfstab ファイルを使用して管理する必要があります。レガシーファイルシステムは、ZFS がブートするときに自動的にマウントされません。ZFS の mount および umount コマンドは、この種類のファイルシステムでは使用できません。次の例では、ZFS ファイルシステムをレガシーモードで設定および管理する方法を示しています。
# zfs set mountpoint=legacy tank/home/eric # mount -F zfs tank/home/eschrock /mnt
ブート時にレガシーファイルシステムを自動的にマウントするには、/etc/vfstab ファイルにエントリを追加する必要があります。次に、/etc/vfstab ファイル内のエントリの例を示します。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # tank/home/eric - /mnt zfs - yes -
device to fsck エントリと fsck pass エントリは - に設定されていますが、これは、fsck コマンドが ZFS ファイルシステムで使用できないからです。ZFS データの整合性の詳細については、「トランザクションのセマンティクス」を参照してください。
ZFS では、ファイルシステムが作成されるときまたはシステムがブートするときに、ファイルシステムが自動的にマウントされます。zfs mount コマンドを使用する必要があるのは、マウントオプションを変更したりファイルシステムを明示的にマウントまたはマウント解除したりする必要がある場合だけです。
zfs mount コマンドを引数なしで実行すると、現在マウントされているファイルシステムのうち、ZFS が管理しているファイルシステムがすべて表示されます。レガシー管理されているマウントポイントは表示されません。例:
# zfs mount | grep tank/home zfs mount | grep tank/home tank/home /tank/home tank/home/jeff /tank/home/jeff
-a オプションを使用すると、ZFS が管理しているファイルシステムをすべてマウントできます。レガシー管理されているファイルシステムはマウントされません。例:
# zfs mount -a
デフォルトでは、空でないディレクトリの最上位にマウントすることは許可されません。次に例を示します。
# zfs mount tank/home/lori cannot mount 'tank/home/lori': filesystem already mounted
レガシーマウントポイントは、レガシーツールを使って管理する必要があります。ZFS ツールを使用しようとすると、エラーになります。例:
# zfs mount tank/home/bill cannot mount 'tank/home/bill': legacy mountpoint use mount(1M) to mount this filesystem # mount -F zfs tank/home/billm
ファイルシステムがマウントされるとき、ファイルシステムに関連付けられたプロパティー値に基づいてマウントオプションのセットが使用されます。プロパティーとマウントオプションは、次のような関係になっています。
表 6-4 ZFS のマウント関連プロパティーとマウントオプション
|
マウントオプション nosuid は、nodevices,nosetuid の別名です。
NFSv4 ミラーマウント機能を使用して、NFS マウント済みの ZFS ホームディレクトリをより適切に管理できます。
NFS サーバー上にファイルシステムが作成されると、NFS クライアントは新しく作成されたこれらのファイルシステムを、親ファイルシステムの既存マウント内で自動的に検出することができます。
たとえば、サーバー neo がすでに tank ファイルシステムを共有しており、クライアント zee がそれをマウントしている場合、サーバー上に /tank/baz が作成されると、それはクライアント上で自動的に認識されます。
zee# mount neo:/tank /mnt zee# ls /mnt baa bar neo# zfs create tank/baz zee% ls /mnt baa bar baz zee% ls /mnt/baz file1 file2
前セクションで説明したどのマウントオプションの場合にも、-zfs mount コマンドと o オプションを使って明示的に設定されている場合には、関連するプロパティー値が一時的に上書きされます。これらのプロパティー値は zfs get コマンドを実行すると temporary として報告されますが、ファイルシステムがマウント解除されるときに元の値に戻ります。ファイルシステムがマウントされるときにプロパティー値を変更した場合は、変更がすぐに有効になり、一時的な設定がすべて上書きされます。
次の例では、tank/home/neil ファイルシステムに読み取り専用マウントオプションが一時的に設定されます。ファイルシステムがマウント解除されているものと仮定しています。
# zfs mount -o ro users/home/neil
現在マウントされているファイルシステムのプロパティー値を一時的に変更するときは、特別な remount オプションを使用する必要があります。次の例では、現在マウントされているファイルシステムの atime プロパティーを一時的に off に変更しています。
# zfs mount -o remount,noatime users/home/neil NAME PROPERTY VALUE SOURCE users/home/neil atime off temporary # zfs get atime users/home/perrin
zfs mount コマンドの詳細については、zfs(1M) を参照してください。
zfs unmount サブコマンドを使用して、ZFS ファイルシステムをマウント解除できます。unmount コマンドの引数として、マウントポイントまたはファイルシステム名のいずれかを指定できます。
次の例では、ファイルシステム名を使ってファイルシステムをマウント解除しています。
# zfs unmount users/home/mark
次の例では、マウントポイントを使ってファイルシステムをマウント解除しています。
# zfs unmount /users/home/mark
ファイルシステムがビジー状態の場合には、unmount コマンドは失敗します。ファイルシステムを強制的にマウント解除する場合は、-f オプションを使用できます。アクティブに使用されているファイルシステムを強制的にマウント解除する場合は、十分に注意してください。アプリケーションが予期しない動作を行うことがあります。
# zfs unmount tank/home/eric cannot unmount '/tank/home/eric': Device busy # zfs unmount -f tank/home/eric
下位互換性を提供するために、従来の umount コマンドを使用して ZFS ファイルシステムをマウント解除することもできます。例:
# umount /tank/home/bob
zfs umount コマンドの詳細については、zfs(1M) を参照してください。