Montaje de unas pocas decenas de miles de FS

Montaje de unas pocas decenas de miles de FS

Necesito brindar la capacidad de crear/leer/escribir/eliminar archivos y establecer cuotas para una gran cantidad de usuarios de un servicio web. Estos usuarios no existen como usuarios de Linux, por lo que no puedo aplicar cuotas. La creación de usuarios reales sólo para cumplir cuotas parece una mala idea. Por lo tanto, decidí crear un archivo por usuario y montarlo como un sistema de archivos.

  1. ¿Cuál es la consecuencia del montaje de varias decenas de miles de FS?
  2. ¿Existe un límite en la cantidad total de FS montados?

Respuesta1

En primer lugar, montar tantos sistemas de archivos parece una muy mala idea: ¿debe haber una mejor solución para cualquier problema que tenga?

De todos modos, para responder a tu segunda pregunta: una respuesta en unpregunta anterior sobre fallo del servidorparece indicar que el límite es de aproximadamente 1 millón de puntos de montaje (2^20) por tipo de sistema de archivos para kernels recientes, y puede montar como máximo 256 tipos diferentes de sistemas de archivos.

Para kernels más antiguos (anteriores a 2.6), el límite es 256 puntos de montaje por sistema de archivos.


EditarEn respuesta a los comentarios, propongo la siguiente solución alternativa:

Utilice XFS, que le permite utilizarcuota de proyecto, una forma de cuota de directorio.

Cree un sistema de archivos XFS independiente que contendrá todos los datos del usuario del servicio web. Móntelo en, por ejemplo /mnt/myWebService. Luego, para cada usuario del servicio web, cree un directorio de proyecto (por ejemplo, /mnt/myWebService/username1etc.) y establezca la cuota en consecuencia.

Para obtener instrucciones sobre cómo configurar directorios y cuotas de proyectos, puede, por ejemplo, consultaresta entrada de blogo elPágina de gestión de cuotas de RHEL XFS

Respuesta2

Tenga en cuenta que no es necesario crear usuarios (como agregarlos a /etc/passwd o cualquier base de datos de usuarios que desee), puede establecer la propiedad de un archivo en cualquier uid sin él. Solo asegúrese de que esos uids no se superpongan con usuarios locales (o remotos) que puedan ejecutar procesos en ese servidor.

Sin embargo, para poder cambiar el propietario de un archivo, necesita privilegios de superusuario, lo que puede resultar problemático para su aplicación web.

Tenga en cuenta que cuando utiliza ZFS, obtiene un punto de montaje para cada instantánea y no es raro tener miles de ellas, lo cual no es un gran problema.

Respuesta3

No es necesario crear millones de sistemas de archivos para esto.

La manera fácil de hacer esto es crear un directorio para cada usuario (lo cual ya tendría que hacer) y luego verificar cuánto espacio usan los archivos en el directorio cada vez que un usuario intenta cargar algo. Si la carga hace que excedan su límite, rechace la carga. Esta es la forma en que lo hacen todas las demás aplicaciones web del universo conocido.

PD: Has esparcido los detalles de lo que estás haciendo en varios comentarios; en su lugar, deberías agregarlos a la pregunta para que la gente pueda encontrarlos (y tal vez revertir tus votos negativos).

información relacionada