3

java を使用して、solaris zfs ファイル システムの空き容量を取得するにはどうすればよいですか?

/としてマウントされた組み込みのhddを備えたSunFire x4140があります。また、7.6 TB の HDD スペースを備えた接続された JBOD もあり、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

理由はわかりませんが、zfs コマンドを適切な Java API でラップするlibzfsをご覧になることをお勧めします。

于 2009-04-17T10:38:27.570 に答える
1

df -kP コマンドは空き容量を返しますが、最も一般的な方法は次を使用することです

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

Windowsではdfとdirを利用します

于 2012-01-27T14:07:50.047 に答える
0

「df」コマンドは何を報告しますか? zfs の空き容量も正しく報告されていませんか?

于 2009-04-17T18:00:23.187 に答える