# 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 -
你也可以直接设置mount点的属性,看下面的例子。
# 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 -
当mount点的属性改变的时候,文件系统是自动从老的mount点上umount的然后重新mount到新的mount点上。Mount点目录是需要创建的。如果ZFS并不能unmount文件系统在文件系统活动期间,这个错误是被报告的并且需要手工强制unmount。
Legacy Mount点
你能够管理ZFS文件系统通过legacy工具来设置mount点的属性的legacy。Legacy文件系统不许通过mount和umount命令和/etc/vfstab文件来管理。ZFS文件系统不能启动的时候自动mount legacy文件系统同时ZFS mount和umount命令并不能操作datasetl类型。下面的例子显示如何设置和管理ZFS dataset。
# zfs set mountpoint=legacy tank/home/eschrock
# mount -F zfs tank/home/eschrock /mnt
特殊情况下,如果你设置ZFS为/usr或者/var文件系统,你必须指示他们为legacy文件系统。附加的,你需要在/etc/vfstab文件中为自动mount他们创建条目。另外,当系统启动的时候在保持模式下属于system/filesystem/local服务。
在启动的时候自动mount legacy文件系统。你必须在/etc/vfstab文件中增加条目。下面的例子显示/etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
# zfs mount
tank /tank
tank/home /tank/home
tank/home/bonwick /tank/home/bonwick
tank/ws /tank/ws
你能够使用-a选项来mount所有ZFS管理的文件系统。Legacy管理文件系统不能mount。
# zfs mount -a
默认的ZFS并不能允许mount在非空目录之上。如果强迫mount到非空目录之上,使用-O选项。
# zfs mount tank/home/lalt
cannot mount \'/export/home/lalt\': directory is not empty
use legacy mountpoint to allow this behavior, or use the -O flag
# zfs mount -O tank/home/lalt
legacy mount点必须是通过legacy工具进行管理的。当尝试使用ZFS工具会引起错误的。
# zfs mount pool/home/billm
cannot mount \'pool/home/billm\': legacy mountpoint
use mount(1M) to mount this filesystem
# mount -F zfs tank/home/billm
当文件系统是mount的。它使用一些基于属性的值结合dataset的mount选项。下面显示如下:
Property
Mount Options
devices
devices/nodevices
exec
exec/noexec
readonly
ro/rw
setuid
setuid/nosetuid
The mount option nosuid is an alias for nodevices,nosetuid.
临时Mount属性
I如果以上的选项通过zfs mount的-o选项被设置,结合这些属性的值是被临时使用的。这些选项的值被告知为临时通过zfs get命令可以看到,当文件系统umont后他们将恢复他们原来的值。如果属性值在dataset mount的时候被改变,则改变将会立即生效。
I下面的例子显示为tank/home/perrin文件系统设置临时的只读mount选项。
# zfs mount -o ro tank/home/perrin
下面的例子显示文件系统确认是unmount的。临时改变文件系统的属性在mount状态,你必须使用remount选项。
# zfs mount -o remount,noatime tank/home/perrin
# zfs get atime tank/home/perrin
NAME PROPERTY VALUE SOURCE
tank/home/perrin atime off temporary
.
Unmounting ZFS 文件系统
你能够使用zfs unmount命令来umount文件系统。
下面的例子显示通过文件系统名umount文件系统。
# 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/home/schrock
cannot destroy \'tank/home/schrock\': filesystem has dependent clones
use \'-R\' to destroy the following datasets:
tank/clones/schrock-clone
bash-3.00# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
tank 179M 30.2M 149M 16% ONLINE -
追加硬盘
zpool add tank c2t1d0
看目前池状态
zpool status
查看健康状况
# zpool status -x
all pools are healthy
替换存储池中的设备
bash-3.00# zpool replace tank (原盘,目标替换盘)c2t0d0 c2t2d0(新盘)
bash-3.00# zpool status
pool: tank
state: ONLINE
scrub: resilver completed with 0 errors on Sun May 13 11:01:24 2007
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
replacing ONLINE 0 0 0
c2t0d0 ONLINE 0 0 0
c2t2d0 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
errors: No known data errors
bash-3.00# zpool status
pool: tank
state: ONLINE
scrub: resilver completed with 0 errors on Sun May 13 11:01:24 2007
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
c2t2d0 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
errors: No known data errors
bash-3.00#
查看存储池的名称和大小
bash-3.00# zpool list -o name,size
NAME SIZE
tank 179M
# zfs list -o name,sharenfs,mountpoint
NAME SHARENFS MOUNTPOINT
tank off /tank
查看存储迟IO情况
bash-3.00# zpool iostat
capacity operations bandwidth
pool used avail read write read write
---------- ----- ----- ----- ----- ----- -----
tank 30.2M 149M 0 1 427 51.8K
迁移ZFS存储池
导出池
zpool export tank
查看池
bash-3.00# zpool import
pool: tank
id: 1682187158316955435
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
tank ONLINE
c2t0d0 ONLINE
c2t1d0 ONLINE
导入池
zpool import tank
(如果池名与目前有冲突可以使用新命名来导入如:zpool import tank tanker)
查看ZFS自动安装点属性
bash-3.00# zfs get mountpoint tank
NAME PROPERTY VALUE SOURCE
tank mountpoint /tank default
查看是否自动安装上
bash-3.00# zfs get mounted tank
NAME PROPERTY VALUE SOURCE
tank mounted yes -
手工改变安装点
bash-3.00# zfs set mountpoint=/chinasolaris.com tank
bash-3.00# zfs get mountpoint tank
NAME PROPERTY VALUE SOURCE
tank mountpoint /chinasolaris.com local
mountpoint 属性更改时,文件系统将自动从旧挂载点取消挂载,并重新挂载到新挂载点。根据需要,可
创建挂载点目录。如果ZFS 由于处于活动状态而无法取消挂载文件系统,则会报告错误,并需要强制进行
手动取消挂载。
设置传统挂接点
bash-3.00# zfs set mountpoint=legacy tank
bash-3.00# zfs get mountpoint tank
NAME PROPERTY VALUE SOURCE
tank mountpoint legacy local
mount -F zfs tank /chinasolaris.com
要在引导时自动挂载传统文件系统,必须向/etc/vfstab 文件中添加一项。
请注意,device to fsck 和fsck pass 项设置为-。使用此语法是因为fsck 命令不适用于ZFS 文件系统
。
显示当前挂接ZFS的情况
bash-3.00# zfs mount
恢复已删除的池
删除池
bash-3.00# zpool destroy tank
bash-3.00# zpool list
no pools available
zpool import已经无法发现tank池(使用-D参数可看到已经删除的池)
bash-3.00# zpool import
no pools available to import
bash-3.00# zpool import -D
pool: tank
id: 1682187158316955435
state: ONLINE (DESTROYED)
action: The pool can be imported using its name or numeric identifier.
The pool was destroyed, but can be imported using the \'-Df\' flags.
config:
tank ONLINE
c2t0d0 ONLINE
c2t1d0 ONLINE
使用-Df参数import已删除的池
bash-3.00# zpool import -Df tank
bash-3.00# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
tank 179M 30.3M 149M 16% ONLINE -作者: 云杉上的蝴蝶 时间: 2007-08-20 19:30
此帖已收集到主题列表:lovely: