O XFS suporta cotas padrão?

1

Precisamos definir uma cota padrão para todos os usuários. Pelo que posso ver em man 8 xfs_quota , você só pode definir cotas para usuários individuais. Preciso definir uma cota que se aplique a todos sem precisar enumerar cada usuário.

    
por Systemspoet 29.08.2014 / 20:44

2 respostas

3

Não tem certeza de como você perdeu isso, se você leu a página do manual.

limit [ -gpu ] bsoft=N | bhard=N | isoft=N | ihard=N | rtbsoft=N | rtb‐
   hard=N -d | id | name
       Set  quota  block  limits  (bhard/bsoft),  inode  count   limits
       (ihard/isoft)  and/or  realtime  block limits (rtbhard/rtbsoft).
       The -d option (defaults) can be used to set  the  default  value
       that  will be used, otherwise a specific user/group/project name
       or numeric identifier must be specified.

Você definirá uma cota padrão como:

# xfs_quota -x -c 'limit bsoft=1g bhard=1g -d' /home
    
por 29.08.2014 / 22:59
2

Tenho algo a acrescentar aqui que espero que ajude outras pessoas com o mesmo problema.

Eu tenho um único sistema de arquivos XFS montado com o uquota. Eu tenho vários usuários usando o sistema de arquivos que eu quero limitado e um único super usuário (vamos chamá-la de "lisa") quem eu não quero limitado. Eu também tenho um banco de dados postgres aqui (de propriedade do usuário "postgres") que eu não quero limitado.

Eu achei a página de manual xfs_quota um pouco carente de sua descrição de como os limites padrão realmente funcionam e não encontrei nenhum recurso em nenhum outro lugar, então é isso que eu descobri.

Defina os limites padrão ...

xfs_quota -x -c 'limits bsoft=45G bhard=50g -d' /myxfs

Ótimo. Todas as cotas são definidas e qualquer novo usuário que fizer login receberá automaticamente o limite padrão. Agora vou excluir meu superusuário e postgres do padrão definindo seus limites explicitamente como 0.

xfs_quota -x -c 'limits bsoft=0 bhard=0 lisa' /myxfs
xfs_quota -x -c 'limits bsoft=0 bhard=0 postgres' /myxfs

Agora vou receber um relatório ...

xfs_quota -x -c 'report -h' /myxfs
User quota on /myxfs (/dev/sdc1)
                        Blocks              
User ID      Used   Soft   Hard Warn/Grace   
---------- --------------------------------- 
root        22.3G    45G    50G  00 [------]
postgres    59.1G      0      0  00 [------]
lisa        13.4T      0      0  00 [------]

Parece ótimo! Certo? Errado! Apesar desse relatório, tanto o postgres quanto o lisa ainda são limitados e ainda estão usando os limites padrão. Assim que eu tentar escrever qualquer coisa como usuário e executar o relatório novamente ...

                        Blocks              
User ID      Used   Soft   Hard Warn/Grace   
---------- --------------------------------- 
root        22.3G    45G    50G  00 [------]
postgres    59.1G    45G    50G  00 [------]
lisa        13.4T    45G    50G  00 [------]

as configurações foram revertidas!

Para contornar isso, você precisa definir os limites dos usuários que você não deseja limitados a um valor diferente de zero. Então, configure isso para algo muito alto. Eu coloquei o meu para um PB.

                        Blocks              
User ID      Used   Soft   Hard Warn/Grace   
---------- --------------------------------- 
root        22.3G    45G    50G  00 [------]
postgres    59.1G  1000T  1000T  00 [------]
lisa        13.4T  1000T  1000T  00 [------]

Isso evita que meu superusuário e banco de dados postgres sejam limitados, enquanto mantém o limite "padrão" de 50G para todos os outros usuários.

Algumas coisas a serem observadas:

  • O usuário root (ou UID 0) nunca é limitado por xfs_quota (de acordo com a página man)
  • Se você está se perguntando por que nenhum outro usuário está exibindo no meu relatório, é porque estou exportando-o pelo NFS e, embora os limites estejam funcionando e eu possa vê-los no cliente, isso não é reportado por padrão no servidor

Espero que isso ajude alguém.

Editar: você pode exibir mais UIDs especificando o limite superior. Por exemplo,

xfs_quota -x -c 'report -U 50000 -h' /storage/1
User quota on /myxfs (/dev/sdc1)
                        Blocks              
User ID      Used   Soft   Hard Warn/Grace   
---------- --------------------------------- 
#0          22.3G    50G    75G  00 [------]
#26         59.1G  1000T  1000T  00 [------]
#1000       13.4T  1000T  1000T  00 [------]
#2615       55.9G      0      0  00 [------]
#2705      207.4M      0      0  00 [------]
#2707      168.1G    50G    75G  00 [-none-]
#2718      178.5M    50G    75G  00 [------]
#16661     245.9M      0      0  00 [------]
#18806          0    50G    75G  00 [------]
#24403       2.5M      0      0  00 [------]
#24583       100K    50G    75G  00 [------]
#26153       4.1G    50G    75G  00 [------]
#26618        40K      0      0  00 [------]
#26765       320K    50G    75G  00 [------]
#27175      15.1G    50G    75G  00 [------]
#27189       2.5M    50G    75G  00 [------]

Incrível!

    
por 09.06.2016 / 14:13