Utilizando quota em XFS
Há algum tempo precisei implementar quota em um filesystem XFS, ao procurar documentação encontrei pouquíssimas coisas, e o pouco que achei foi em inglês. Depois de uns 3 dias pesquisando consegui implementar a quota sobre o XFS e descobri algumas coisas bem interessantes, como por exemplo a utilização de quotas por projeto.
Migrando para XFS, cadê a Quota?
Por questões de performance, na empresa onde trabalho foi necessário trocar o sistema de arquivos de um servidor de arquivos, este utilizava até então EXT3 com quotas de disco por usuário, no entanto devido ao aumento da concorrência do recurso de disco (tendo-se em média 30 a 40 acessos simultâneos a arquivos grandes), este servidor passou a apresentar um alto consumo de CPU, e conseqüentemente lentidões no acesso a compartilhamentos (via samba).
Com isso tínhamos um problema, precisávamos de uma solução, rapidamente percebi que o gargalo estava no sistema de arquivos, que estava consumindo muita CPU. Tendo identificado o problema, comecei a buscar soluções, muita gente poderia aumentar os recursos do servidor ou simplesmente trocá-lo por outro de maior desempenho (a máquina em questão é um Xeon 3GHz HT, 1 GB de RAM e disco SCSI 73 Gb 10K RPM), mas este era um luxo que eu não poderia ter.
Foi então que comecei a pesquisar outros sistemas de arquivos como alternativa para se colocar em produção, os pesquisados foram XFS, ReiserFS e JFS, todas as pesquisas apontavam o XFS como o mais indicado pelo seu baixo consumo de CPU.
Ainda não convencido disso, fiz alguns pequenos testes no mesmo, com operações de escrita a gravação de grandes quantidades de arquivos, e com arquivos de tamanhos variados, ao fim eu estava convencido, iria migrar para XFS.
Implementei então um servidor de teste, foi aí que me deparei com o segundo problema, a QUOTA de disco, começou então a segunda pesquisa, como implementar a quota de disco no XFS, achei pouquíssima documentação sobre como fazê-la, e o pouco que achei eram transcrições exatas dos manuais do XFS, mas consegui me orientar ao poucos e implementar a quota no dito cujo, e ao final fiquei mais satisfeito com a quota do XFS do que com a quota do EXT3, pois além da já famigerada quota por usuários e grupos (suportadas pelo EXT3), o XFS permite quota por projeto, ou seja, posso definir quota para um diretório específico, independente do usuário ou grupo que venham depositar seus arquivos nesse diretório. Nem mesmo o root escapa da quota por projeto!
Bom, chega de enrolação e vamos a implementação.
A implementação foi feita em três distribuições:
Com isso tínhamos um problema, precisávamos de uma solução, rapidamente percebi que o gargalo estava no sistema de arquivos, que estava consumindo muita CPU. Tendo identificado o problema, comecei a buscar soluções, muita gente poderia aumentar os recursos do servidor ou simplesmente trocá-lo por outro de maior desempenho (a máquina em questão é um Xeon 3GHz HT, 1 GB de RAM e disco SCSI 73 Gb 10K RPM), mas este era um luxo que eu não poderia ter.
Foi então que comecei a pesquisar outros sistemas de arquivos como alternativa para se colocar em produção, os pesquisados foram XFS, ReiserFS e JFS, todas as pesquisas apontavam o XFS como o mais indicado pelo seu baixo consumo de CPU.
Ainda não convencido disso, fiz alguns pequenos testes no mesmo, com operações de escrita a gravação de grandes quantidades de arquivos, e com arquivos de tamanhos variados, ao fim eu estava convencido, iria migrar para XFS.
Implementei então um servidor de teste, foi aí que me deparei com o segundo problema, a QUOTA de disco, começou então a segunda pesquisa, como implementar a quota de disco no XFS, achei pouquíssima documentação sobre como fazê-la, e o pouco que achei eram transcrições exatas dos manuais do XFS, mas consegui me orientar ao poucos e implementar a quota no dito cujo, e ao final fiquei mais satisfeito com a quota do XFS do que com a quota do EXT3, pois além da já famigerada quota por usuários e grupos (suportadas pelo EXT3), o XFS permite quota por projeto, ou seja, posso definir quota para um diretório específico, independente do usuário ou grupo que venham depositar seus arquivos nesse diretório. Nem mesmo o root escapa da quota por projeto!
Bom, chega de enrolação e vamos a implementação.
A implementação foi feita em três distribuições:
- Debian 4,0 (Etch)
- CentOS 5.1
- Slackware 12