3

使用 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 列表

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  - 
4

3 回答 3

2

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

于 2009-04-17T10:38:27.570 回答
1

df -kP 命令返回可用空间,但最通用的方法是使用

Apache Commons IO FileSystemUtils.freeSpaceKb("/volume");

它利用 df 以及 Windows 的 dir

于 2012-01-27T14:07:50.047 回答
0

“df”命令报告什么?这是否也没有正确报告 zfs 上的可用空间?

于 2009-04-17T18:00:23.187 回答