df
并du
提供了使用情况的总体视图,但问题在于它们没有按用户细分。
有没有可以做到这一点的工具?我找到了quot
,但只适用于 ufs。有没有与 zfs 或 nfs 相当的工具?
为了分解使用情况,可以编写脚本。这是唯一的选择吗?
输出zfs userspace filesystem
$ zfs userspace filesystem
cannot access dataset filesystem: dataset does not exist
输出zpool upgrade -v
$ zpool upgrade -v
This system is currently running ZFS pool version 32.
The following versions are supported:
VER DESCRIPTION
--- --------------------------------------------------------
1 Initial ZFS version
2 Ditto blocks (replicated metadata)
3 Hot spares and double parity RAID-Z
4 zpool history
5 Compression using the gzip algorithm
6 bootfs pool property
7 Separate intent log devices
8 Delegated administration
9 refquota and refreservation properties
10 Cache devices
11 Improved scrub performance
12 Snapshot properties
13 snapused property
14 passthrough-x aclinherit
15 user/group space accounting
16 stmf property support
17 Triple-parity RAID-Z
18 Snapshot user holds
19 Log device removal
20 Compression using zle (zero-length encoding)
21 Reserved
22 Received properties
23 Slim ZIL
24 System attributes
25 Improved scrub stats
26 Improved snapshot deletion performance
27 Improved snapshot creation performance
28 Multiple vdev replacements
29 RAID-Z/mirror hybrid allocator
30 Reserved
31 Improved 'zfs list' performance
32 One MB blocksize
答案1
对于 zfs,根据zfs 手册页,用于zfs userspace filesystem
获取文件系统上所有用户的列表,以及用于zfs get [-r] userused@user filesystem
获取文件系统上特定用户使用的空间。使用该-r
选项zfs get ...
还可以获取文件系统所有后代上的用户使用情况。请注意,这不仅会返回后代文件系统,还会返回后代克隆和快照。
据我所知,NFS 不直接支持此类操作 - 这必须通过 NFS 服务器上的本机文件系统来完成。
答案2
要回答您的具体问题,“在 Solaris 上监视和报告磁盘使用情况的最佳方法是什么”,这实际上并不是采用特定命令集或 shell 脚本的形式,而更像是安装在您的系统上以便密切关注统计信息的第三方代理。
在这方面表现极为出色的两款产品是 NetIQ 和 Compuware 的 dynaTrace,这两款产品都是适用于企业环境的优秀产品,可提供极其详细的报告。它们还具有出色的警报功能和 API,甚至可以与多种其他产品和支持票务系统集成。
此外,这些产品非常适合容量规划,能够将磁盘使用情况统计信息精确到您想要或需要的水平。它们还专门支持 Solaris 的多个版本上的 ZFS 文件系统。