一、VDEVs简介
首先,我们需要了解虚拟设备或VDEV的概念。如果你已经熟悉RAID,那么这个概念对你来说并不陌生,尽管你可能没有将其称为“VDEVs”。基本上,我们有一个代表一个或多个物理设备的元设备。在Linux软件RAID中,您可能有一个“/dev/md0”设备,它代表一个包含4个磁盘的RAID-5阵列。在这种情况下,“/dev/md0”将是您的“VDEV”。
ZFS中有七种类型的VDEV:
disk(default) - 系统中的物理硬盘驱动器。
file - 预分配文件/镜像的绝对路径。
mirror - 标准软件RAID-1镜像。
raidz1/2/3 - 非标准分布式基于奇偶校验的软件RAID级别。
备用硬盘标记为ZFS软件RAID的“热备件”
cache - 用于2级自适应读缓存(L2ARC)的设备。
log - 一个单独的日志(SLOG),称为“ZFS Intent Log”或ZIL。
值得注意的是,VDEV始终是动态条带化的。但是,假设ZFS条带中有4个磁盘,条带大小由磁盘数量和阵列中磁盘的大小计算得出。如果添加了更多磁盘,则可以根据需要调整其他磁盘的条带大小。
二、zfs池
2.1 创建raidz1池
# zpool create storage raidz1 sda sdb sdc
RAIDZ-1类似于RAID-5,因为在阵列中的所有磁盘上都有一个奇偶校验位。 条带宽度是可变的,可以覆盖阵列中磁盘的精确宽度,更少的磁盘或更多的磁盘。 RAIDZ-1只允许一个磁盘故障来维护数据,两次磁盘故障会导致数据丢失。RAIDZ-1中至少应使用3个磁盘,存储容量将是阵列中磁盘的数量乘以最小磁盘的存储量,减去一个用于奇偶校验存储的磁盘。
2.2 查看pool信息
# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
storage 8.12T 2.48M 8.12T - 0% 0% 1.00x ONLINE -
# zpool status storage
pool: storage
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sda ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
errors: No known data errors
三、文件系统
3.1 创建adfs
# zfs create storage/adfs
3.2 查看adfs相关信息
# zfs get all storage/adfs
NAME PROPERTY VALUE SOURCE
storage/adfs type filesystem -
storage/adfs creation Mon May 6 14:27 2019 -
storage/adfs used 128K -
storage/adfs available 5.24T -
storage/adfs referenced 128K -
storage/adfs compressratio 1.00x -
storage/adfs mounted no -
storage/adfs quota none default
storage/adfs reservation none default
storage/adfs recordsize 128K default
storage/adfs mountpoint /storage/adfs default
storage/adfs sharenfs off default
storage/adfs checksum on default
storage/adfs compression off default
storage/adfs atime on default
storage/adfs devices on default
storage/adfs exec on default
storage/adfs setuid on default
storage/adfs readonly off default
storage/adfs zoned off default
storage/adfs snapdir hidden default
storage/adfs aclinherit restricted default
storage/adfs createtxg 3453 -
storage/adfs canmount on default
storage/adfs xattr on default
storage/adfs copies 1 default
storage/adfs version 5 -
storage/adfs utf8only off -
storage/adfs normalization none -
storage/adfs casesensitivity sensitive -
storage/adfs vscan off default
storage/adfs nbmand off default
storage/adfs sharesmb off default
storage/adfs refquota none default
storage/adfs refreservation none default
storage/adfs guid 17063632217463997049 -
storage/adfs primarycache all default
storage/adfs secondarycache all default
storage/adfs usedbysnapshots 0B -
storage/adfs usedbydataset 128K -
storage/adfs usedbychildren 0B -
storage/adfs usedbyrefreservation 0B -
storage/adfs logbias latency default
storage/adfs dedup off default
storage/adfs mlslabel none default
storage/adfs sync standard default
storage/adfs dnodesize legacy default
storage/adfs refcompressratio 1.00x -
storage/adfs written 128K -
storage/adfs logicalused 40K -
storage/adfs logicalreferenced 40K -
storage/adfs volmode default default
storage/adfs filesystem_limit none default
storage/adfs snapshot_limit none default
storage/adfs filesystem_count none default
storage/adfs snapshot_count none default
storage/adfs snapdev hidden default
storage/adfs acltype off default
storage/adfs context none default
storage/adfs fscontext none default
storage/adfs defcontext none default
storage/adfs rootcontext none default
storage/adfs relatime off default
storage/adfs redundant_metadata all default
storage/adfs overlay off default
3.3 修改属性,关闭文件系统的访问时间修改
# zfs set atime=off storage/adfs
# zfs get atime storage/adfs
NAME PROPERTY VALUE SOURCE
storage/adfs atime off local
参考:
1. https://pthree.org/2012/04/17/install-zfs-on-debian-gnulinux/
来源:oschina
链接:https://my.oschina.net/u/3021599/blog/3159578