Windows Server2012を実行しているリモートマシンに共有をマウントするLinuxクライアントがいくつかあります。/etc/fstab
の関連する行は次のようになります。
//server.address.com/share /media/share cifs rw,user,noauto,_netdev,soft,cred=/etc/samba/cred/share 0 0
df
を使用して空き領域の量を照会すると、次のようになります。
~$ df -kh /media/share
Filesystem Type Size Used Avail Use% Mounted on
//server.address.com/share cifs 1.8T 1.1T 803G 57% /media/share
stat -f
を使用して、基本的に同じ使用統計を取得します。
~$ stat -f /media/share
File: "/media/share"
ID: 0 Namelen: 4096 Type: cifs
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 483183820 Free: 210294051 Available: 210294051
Inodes: Total: 0 Free: 0
ここでは、4096 * 210294051/2 ^ 30 = 802.2GBが無料です。ただし、共有がほぼ完全に満たされていることはわかっています。Windowsクライアントからは、1.79 /1.80Tが使用されていることがわかります。
不一致は この問題 に関連しているのではないかと思います。そのディスカッションスレッド(2012年に開始)によると、CIFSカーネルクライアントはクォータ使用量のレポートをサポートしていません。この件に関する新しい情報はありません(私のクライアントはUbuntu 14.04、カーネルv3.13.0-46-generic、mount.cifs v6.0を実行しています)。
nounix
フラグを使用してマウントしようとしましたが、それでも誤った使用統計が表示されます。
~$ df -kh /media/share
Filesystem Type Size Used Avail Use% Mounted on
//server.address.com/share cifs 1.8T 1.1T 803G 57% /media/share
~$ stat -f /media/share
File: "/media/share"
ID: 0 Namelen: 4096 Type: cifs
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 483183820 Free: 210294040 Available: 210294040
Inodes: Total: 0 Free: 0
quota
も使用してみましたが、CIFS共有に対して何も出力しないため、これはおそらくNFSマウントでのみ機能します。
~$ quota -v
~$
SMBプロトコルのバージョンにマウントオプションを指定しない場合、デフォルトの1.0が使用されます。クォータのレポートは、SMBプロトコルバージョン2.0以降でのみサポートされます。 SMB fstabのバージョンは次のように指定されます。
man mount.cifs
...
OPTIONS
...
vers=
SMB protocol version. Allowed values are:
· 1.0 - The classic CIFS/SMBv1 protocol. This is the default.
· 2.0 - The SMBv2.002 protocol. This was initially introduced in Windows Vista Service Pack 1, and Windows Server 2008.
Note that the initial release version of Windows Vista spoke a slightly different dialect (2.000) that is not
supported.
· 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.
· 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.
Note too that while this option governs the protocol version used, not all features of each version are available.
したがって、vers = 2.0以上を例に追加するだけで、df
はクォータを正しく報告するはずです。
//server.address.com/share /media/share cifs rw,user,noauto,_netdev,soft,cred=/etc/samba/cred/share,vers=2.0 0 0
以下のユーザースペースツールを使用して、クォータ情報を照会できます。
https://github.com/kenneth-dsouza/smb2quota
# smb2quota.py /test
Amount Used | Quota Limit | Warning Level | Percent Used | Status | SID
70.0 kiB | 16.0 EiB | 16.0 EiB | N/A | Ok | S-1-5-32-544
480.0 MiB | 500.0 MiB | 450.0 MiB | 96.0 | Warning | S-1-5-21-3363399803-746912020-2622272238-1001
4.0 MiB | 16.0 EiB | 16.0 EiB | N/A | Ok | S-1-5-18
Smb2quotaのカーネルサポートには、4.20カーネルで最初に導入されたCIFS_QUERY_INFO IOCTLが必要であり、SMB2以降を使用するマウントポイントに対してのみ実装されます。mount.cifs(8)versオプションを参照してください。