6

У меня есть несколько клиентов Linux, которые монтируют общий ресурс на удаленной машине под управлением Windows Server 2012. Соответствующая строка в /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.2ГБ свободного. Однако я точно знаю, что общий ресурс почти полностью заполнен - из клиента Windows я вижу, что используется 1.79/ 1.80T.

Я подозреваю, что расхождение может быть связано с этой проблемой. В соответствии с темой обсуждения (начатой в 2012 году) клиент ядра CIFS не поддерживает использование квоты для отчетов. Я не сталкивался с какой-либо новой информацией по этому вопросу (мои клиенты используют Ubuntu 14.04, kernel 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, но это, вероятно, работает только для монтирования NFS, так как ничего не печатает для моей папки CIFS:

~$ quota -v
~$

1 ответ1

2

Если вы не укажете опцию монтирования для версии протокола 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .