使用Java,如何获取solaris zfs文件系统上的可用空间?

提问

使用Java,如何获取solaris zfs文件系统上的可用空间?

我有一个安装有/的内置硬盘的SunFire x4140.它还具有一个连接的JBOD,具有7.6TB的HDD空间,配置为ZFS文件系统并安装为/ app.

我使用java.io.File.getUsableSpace或java.io.File.getFreeSpace来获取文件系统上的可用空间量.在/(板载)HDD FS上,它可以正常工作.

在/ app(zfs分区)上,File.getFreeSpace,File.getUsableSpace和File.getTotalSpace均返回0(零).有人知道为什么吗? java.io.File.getUsableSpace是否可以在ZFS上运行,如果可以,如何运行?

下面显示了所涉及机器上的zfs文件系统:

/usr/sbin/zfs list

NAME                USED  AVAIL  REFER  MOUNTPOINT
internal            196K  98.4G     1K  none
internal/logs        18K  98.4G    18K  /logs
j4200-1             442G  7.57T  2.44K  none
j4200-1/app         442G  7.57T   153M  /app
j4200-1/app@first   442G      -   442G  - 

最佳答案

我不知道为什么,但是您可能要看一下libzfs,它将zfs命令包装在一个不错的Java API中