Solaris zfs操作與使用
ZFS文件系統的英文名稱為Zettabyte File System,也叫動態文件系統(Dynamic File System),是第一個128位文件系統。最初是由Sun公司為Solaris 10操作系統開發的文件系統。作為OpenSolaris開源計劃的一部分,ZFS於2005年11月發布,被Sun稱為是終極文件系統。ZFS是基於存儲池的,與典型的映射物理存儲設備的傳統文件系ZFS統不同,ZFS所有在存儲池中的文件系統都可以使用存儲池的資源。
ZFS 常見用法
創建文件系統
# zfs create tank/home/bonwick
默認情況下,文件系統會被掛載在同名的位置,比如上個例子,就是掛載到/tank/home/bonwick.
掛載點也可以在創建文件系統時明確指出。
# zfs create -o mountpoint=/export/zfs tank/home
銷毀文件系統
destroy一個文件系統會自動unmount和unshare,並且不需要確定,所以一定要小心
# zfs destroy tank/home/ahrens
cannot unmount 'tank/home/ahrens': Device busy
# zfs destroy -f tank/home/ahrens
如果文件系統有子孫,則需要使用-r參數。
# zfs destroy tank/ws
cannot destroy 'tank/ws': filesystem has children
use '-r' to destroy the following datasets:
tank/ws/billm
tank/ws/bonwick
tank/ws/maybee
# zfs destroy -r tank/ws
掛載和共享
自動掛載點
如果一個zfs的mountpoint屬性不是legacy,那麼它的掛載是自動完成的。用戶可以明確設置掛載點,或者使用默認值。
# 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
# 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
legacy 掛載點
這種類型的zfs不會自動掛載,用戶除非使用mount和umount命令,或者編輯/etc/vfstab文件。ZFS不會在啟動時自動掛載這種文件系統,而且ZFS mount umount命令不能操作這種類型。
# zfs set mountpoint=legacy tank/home/eschrock
# mount -F zfs tank/home/eschrock /mnt
要自動掛載這種zfs,必須通過/etc/vfstab文件。
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
tank/home/eschrock - /mnt zfs - yes -
共享
默認情況下,zfs是不共享的,繼承關系的zfs會繼承共享屬性。
# zfs set sharenfs=on tank/home
# zfs create tank/home/bricker
# zfs create tank/home/tabriz
# zfs set sharenfs=ro tank/home/tabriz