Como posso visualizar o uso de cota de disco em um compartilhamento CIFS de um cliente Linux?

6

Eu tenho vários clientes Linux que montam um compartilhamento em uma máquina remota que executa o Windows Server 2012. A linha relevante em /etc/fstab se parece com isso:

//server.address.com/share /media/share cifs rw,user,noauto,_netdev,soft,cred=/etc/samba/cred/share 0 0

Se eu usar df para consultar a quantidade de espaço livre, obtenho:

~$ 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

Eu obtenho basicamente as mesmas estatísticas de uso usando 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

Aqui, 4096 * 210294051/2 ^ 30 = 802.2GB grátis. No entanto, eu sei de fato que o compartilhamento está quase completamente preenchido - de um cliente Windows eu vejo que 1.79 / 1.80T é usado.

Suspeito que a discrepância possa estar relacionada a problema . De acordo com esse thread de discussão (iniciado em 2012), o cliente do kernel CIFS não suporta o uso de cotas de relatórios. Eu não encontrei nenhuma informação mais recente sobre o assunto (meus clientes rodam o Ubuntu 14.04, kernel v3.13.0-46-generic, mount.cifs v6.0).

Eu tentei montar com o sinal nounix , mas ainda recebo estatísticas de uso incorretas:

~$ 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

Eu também tentei usar quota , mas presumivelmente isso só funciona para montagens NFS, já que imprime nada para o meu compartilhamento CIFS:

~$ quota -v
~$
    
por ali_m 17.03.2015 / 13:06

1 resposta

2

Se você não especificar uma opção de montagem para a versão do protocolo SMB, ele usará o padrão, que é 1.0. O relatório da cota é suportado apenas pelo protocolo SMB versão 2.0 e superior. A versão SMB no fstab é especificada como:

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.

Portanto, adicione o vers = 2.0 ou superior ao seu exemplo e df deve informar a cota corretamente:

//server.address.com/share /media/share cifs rw,user,noauto,_netdev,soft,cred=/etc/samba/cred/share,vers=2.0 0 0
    
por 27.07.2017 / 16:25