我们正在运行一个集群,其中大约有 50 个用户组被映射为 Linux 组。每个组都有一个从 ZFS 存储服务器分配的文件系统,该文件系统通过 NFS 导出。这会产生一个很长的挂载点列表,这些挂载点需要通过 NFS 客户端节点挂载。同样,的输出df -h
也很长,列出了每个用户组的所有挂载点。有没有办法通过某种方式重组或重新配置 ZFS 服务器来避免这种情况,同时仍然有效地管理用户组,例如配额、访问权限等。
以下是命令的部分输出zfs list
:
~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
intp1 43.7G 47.9T 219K /zfs/1
intp1/sam 43.7G 47.9T 219K /zfs/1/sam
intp1/harry 219K 4.00T 219K /zfs/1/harry
intp1/rick 219K 4.00T 219K /zfs/1/rick
intp1/kim 43.7G 3.96T 43.7G /zfs/1/kim
intp2 252G 47.7T 252G /zfs/2
intp2/johnson 219K 8.00T 219K /zfs/2/johnson
intp2/hoekstra 219K 8.00T 219K /zfs/2/hoekstra
zfs get all
下面显示的是一个文件系统的命令的输出:
# zfs get all intp1/sam
NAME PROPERTY VALUE SOURCE
intp1/sam type filesystem -
intp1/sam creation Fri Sep 23 9:56 2016 -
intp1/sam used 43.7G -
intp1/sam available 47.9T -
intp1/sam referenced 219K -
intp1/sam compressratio 5.42x -
intp1/sam mounted yes -
intp1/sam quota none default
intp1/sam reservation none default
intp1/sam recordsize 128K default
intp1/sam mountpoint /zfs/1/sam inherited from intp1
intp1/sam sharenfs on inherited from intp1
intp1/sam checksum on default
intp1/sam compression lz4 inherited from intp1
intp1/sam atime on default
intp1/sam devices on default
intp1/sam exec on default
intp1/sam setuid on default
intp1/sam readonly off default
intp1/sam zoned off default
intp1/sam snapdir hidden default
intp1/sam aclinherit restricted default
intp1/sam canmount on default
intp1/sam xattr on default
intp1/sam copies 1 default
intp1/sam version 5 -
intp1/sam utf8only off -
intp1/sam normalization none -
intp1/sam casesensitivity sensitive -
intp1/sam vscan off default
intp1/sam nbmand off default
intp1/sam sharesmb off default
intp1/sam refquota none default
intp1/sam refreservation none default
intp1/sam primarycache all default
intp1/sam secondarycache all default
intp1/sam usedbysnapshots 0 -
intp1/sam usedbydataset 219K -
intp1/sam usedbychildren 43.7G -
intp1/sam usedbyrefreservation 0 -
intp1/sam logbias latency default
intp1/sam dedup off default
intp1/sam mlslabel none default
intp1/sam sync standard default
intp1/sam refcompressratio 1.00x -
intp1/sam written 219K -
intp1/sam logicalused 198G -
intp1/sam logicalreferenced 40K -
intp1/sam filesystem_limit none default
intp1/sam snapshot_limit none default
intp1/sam filesystem_count none default
intp1/sam snapshot_count none default
intp1/sam snapdev hidden default
intp1/sam acltype off default
intp1/sam context none default
intp1/sam fscontext none default
intp1/sam defcontext none default
intp1/sam rootcontext none default
intp1/sam relatime off default
intp1/sam redundant_metadata all default
intp1/sam overlay off default
答案1
crossmnt
我为此使用NFS 导出选项。
例如:
/home *(rw,crossmnt,sec=krb5:krb5i:krb5p)
从exports(5)
手册页中:
此选项类似于,
nohide
但它使客户端能够访问挂载在标有 的文件系统上的所有文件系统crossmnt
。因此,当子文件系统“B”挂载在父文件系统“A”上时,crossmnt
在“A”上设置与在 B 上设置“nohide”具有类似的效果。子
nohide
文件系统需要显式导出。 不需要crossmnt
。 如果crossmnt
未显式导出文件的子文件系统,则将使用与父文件系统相同的导出选项隐式导出,但 除外fsid=
。 这使得无法不导出crossmnt
文件系统的子文件系统。 如果要导出父文件系统的部分(但不是全部)下属文件系统,则必须显式导出它们,并且不应设置父文件系统crossmnt
。