Preciso fornecer a capacidade de criar/ler/gravar/excluir arquivos e definir cotas para um grande número de usuários de um serviço web. Esses usuários não existem como usuários do Linux, portanto não posso aplicar cotas. A criação de usuários reais apenas para cumprir cotas parece uma má ideia. Portanto, decidi criar um arquivo por usuário e montá-lo como um sistema de arquivos.
- Qual é a consequência da montagem de várias dezenas de milhares de FS?
- Existe um limite para o número total de FS montados?
Responder1
Em primeiro lugar, montar tantos sistemas de arquivos parece uma péssima ideia - deve haver uma solução melhor para qualquer problema que você tenha?
De qualquer forma, para responder à sua segunda pergunta: uma resposta sobre umpergunta anterior sobre falha no servidorparece indicar que o limite é de cerca de 1 milhão de pontos de montagem (2 ^ 20) por tipo de sistema de arquivos para kernels recentes, e você pode montar no máximo 256 tipos diferentes de sistema de arquivos.
Para kernels mais antigos (anteriores a 2.6) o limite é de 256 pontos de montagem por sistema de arquivos.
Editarem resposta aos comentários, proponho a seguinte solução alternativa:
Use XFS, que permite que você usecota do projeto, uma forma de cota de diretório.
Crie um sistema de arquivos XFS separado que armazenará todos os dados do usuário do serviço web. Monte-o em, por exemplo /mnt/myWebService
. Então, para cada usuário do webservice, crie um diretório de projeto (por exemplo, /mnt/myWebService/username1
etc) e defina a cota de acordo.
Para obter instruções sobre como configurar diretórios e cotas de projetos, você pode, por exemplo, conferiresta entrada do blogou oPágina de gerenciamento de cotas RHEL XFS
Responder2
Observe que você não precisa criar usuários (como adicioná-los ao /etc/passwd ou qualquer banco de dados de usuário desejado), você pode definir a propriedade de um arquivo para qualquer uid sem ele. Apenas certifique-se de que esses UIDs não se sobreponham a usuários locais (ou remotos) que possam executar processos nesse servidor.
No entanto, para poder alterar o proprietário de um arquivo, você precisa de privilégios de superusuário, o que pode ser problemático para sua aplicação web.
Observe que ao usar o ZFS, você obtém um ponto de montagem para cada instantâneo e não é incomum ter milhares deles, o que não é um grande problema.
Responder3
Não há necessidade de criar um zilhão de sistemas de arquivos para isso.
A maneira mais fácil de fazer isso é criar um diretório para cada usuário (o que você já teria que fazer) e então verificar quanto espaço os arquivos no diretório ocupam cada vez que um usuário tenta fazer upload de algo. Se o upload fizer com que eles excedam o limite, rejeite o upload. É assim que todos os outros aplicativos da web no universo conhecido fazem isso.
PS Você espalhou os detalhes do que está fazendo em vários comentários; você deve adicioná-los à pergunta para que as pessoas possam encontrá-los (e talvez reverter seus votos negativos).