Go to main content
Oracle® Solaris 11.3 での ZFS ファイルシステムの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

ZFS ファイルシステムをマウントする

このセクションでは、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/usermountpoint プロパティー値の /export/stuff/user を継承します。

ファイルシステムがマウントされないようにするには、mountpoint プロパティーを none に設定します。さらに、canmount プロパティーを使えば、ファイルシステムをマウント可能にするかどうかを制御できます。canmount プロパティーの詳細については、canmount プロパティーを参照してください。

また、従来のマウントインタフェース経由でファイルシステムを明示的に管理することもできます。それには、zfs set を使って mountpoint プロパティーを legacy に設定します。このようにすると、ファイルシステムが自動的にマウントおよび管理されなくなります。代わりに、mountumount コマンドなどのレガシーツールと、/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 プロパティーが変更されると、ファイルシステムは古いマウントポイントから自動的にアンマウントされ、新しいマウントポイントに再マウントされます。マウントポイントのディレクトリは必要に応じて作成されます。ZFS がアクティブであるためにファイルシステムをアンマウントできない場合は、エラーが報告され、手動での強制マウントが必要になります。

レガシーマウントポイント

mountpoint プロパティーを legacy に設定することで、ZFS ファイルシステムをレガシーツールを使って管理することができます。レガシーファイルシステムは、mountumount コマンド、および /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 は、空でないディレクトリの最上位へのマウントを許可しません。例:

# 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(8) to mount this filesystem
# mount -F zfs tank/home/billm

ファイルシステムがマウントされるとき、ファイルシステムに関連付けられたプロパティー値に基づいてマウントオプションのセットが使用されます。プロパティーとマウントオプションは、次のような関係になっています。

表 6  ZFS のマウント関連プロパティーとマウントオプション
プロパティー
マウントオプション
atime
atime/noatime
devices
devices/nodevices
exec
exec/noexec
nbmand
nbmand/nonbmand
readonly
ro/rw
setuid
setuid/nosetuid
xattr
xattr/noaxttr

マウントオプション 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 ファイルシステムをアンマウントする

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) のマニュアルページを参照してください。