algún sistema de ficheros que soporte en un directorio 4294967294 directorios?

Iniciado por kinos, 15 Agosto 2010, 13:16 PM

0 Miembros y 1 Visitante están viendo este tema.

kinos

Estoy tratando de guardar un archivo por cada primary key de una tabla de la base de datos en directorios. Es decir:

primary key 0: /base/0/file
primary key -34234: /base/-34234/file
primary key 438974: /base/438974/file

La cuestión es, si hay algún sistema de ficheros en linux que pueda soportar tal cantidad de carpetas(4.294.967.294) y si esta es la mejor opción de hacer lo que estoy haciendo.

Gracias.

luinuz

Creo que no habria problema con ext4, raiser, xfs, etc. Estoy casi seguro que todos te permitirian hacerlo ya que todos funcionan con btrees y cosas similares, que por lo que se no ponen ninguna restriccion de ese tipo.

De todas formas, y solo por curiosidad, para que quieres hacer esa burrada?

EvilGoblin

CReo que ext3 te seria mas util, esta mas fomentado y se utiliza mas para las "supercomputadoras" caseras...(de universidad)

Igual te recomiendo que entres en wikipedia de cada sistema de archivo (reiserf, ext2,ext3,ext4..) y compruebes tu mismo sus caracteristicas y desventajas.
Experimental Serial Lain [Linux User]

kinos

   De momento quería guardar imágenes por cada fila de una tabla de la base de datos.
He visto que puedes convertir las imágenes en base64 y guardarlas en un campo Text por ejemplo.

   Pero tengo dudas acerca de que es lo que ocurre cuando la tabla es tan grande que ya no cabe en el disco duro(e aquí el problema de los limites de los sistemas de ficheros, limite en este caso del tamaño de archivo, ¿habría que utilizar jfs que no parece poner restricciones? ¿habría que particionar las tablas, si se puede?). Llegado a ese punto quizás hubiese que utilizar mysql-cluster...?

Es mas que nada por saber

luinuz

CitarCReo que ext3 te seria mas util, esta mas fomentado y se utiliza mas para las "supercomputadoras" caseras...(de universidad)
Sobre esto yo no estoy muy de acuerdo. El sistema ext4 es mas eficiente que ext3 y lleva mucho tiempo siendo estable. De hecho trabajo con varios servidores en ext4 y van perfectos. Lo ultimo que lei sobre ext4 era sobre que estan terminando un desfragmentador para el, algo que ninguna de las versiones anteriores tenia.

Sobre si usar jfs o no no te puedo indicar de forma concreta. En su dia lei varios articulos sobre las diferencias entre sistemas de ficheros y entre ellas estan;
- Capacidad de concurrencia en los accesos a los datos
- Velocidad de busqueda
- Velocidad de escritura
- etc.

En ningun momento lei que hubiera un limite de tamaño de fichero. De hecho ten en cuenta que como los inodes, un fichero es un arbol de tablas enlazadas que señalan a los distintos fragmentos del fichero. Si el fichero crece se reservan mas tablas, se balancea el arbol (a veces) y listo. Si te sirve como dato, yo he creado alguna que otra vez ficheros de mas de 300 gigas en ext4.

Luego ademas cada sistema de ficheros es parametrizable de tal forma que puedes activar o desactivar barriers, cache, etc.

De lo que me acuerdo de los articulos es que la finalidad de personalizar los parametros que sea mas rapido la lectura y/o la escritura, pero con la pega de que en una caida de tension podias perder datos. Esto te podria convenir si tienes un RAID de algun tipo.

El caso es que todo depende de la envergadura de la BD, el numero de clientes que estaran conectados, y el soporte HW.

Desde luego lo de usar un cluster puede darte ventajas a la hora de fragmentar la informacion. Pero debes tener en cuenta que un cluster esta mas pensado para soportar un mayor numero de usuarios concurrentes.

Saludos.

Foxy Rider

#5
Cita de: luinuz en 15 Agosto 2010, 18:00 PM
Creo que no habria problema con ext4, raiser, xfs, etc. Estoy casi seguro que todos te permitirian hacerlo ya que todos funcionan con btrees y cosas similares, que por lo que se no ponen ninguna restriccion de ese tipo.

De todas formas, y solo por curiosidad, para que quieres hacer esa burrada?

Luinuz, el uso de btrees no te permite más directorios y ficheros, sino manejar muchos más eficientemente ...
Ext4 maneja creo que 4 billones  de ficheros ...

Y manejar gran cantidad de ficheros no es una burrada (te notifico)

CitarDe momento quería guardar imágenes por cada fila de una tabla de la base de datos.
He visto que puedes convertir las imágenes en base64 y guardarlas en un campo Text por ejemplo.

  Pero tengo dudas acerca de que es lo que ocurre cuando la tabla es tan grande que ya no cabe en el disco duro(e aquí el problema de los limites de los sistemas de ficheros, limite en este caso del tamaño de archivo, ¿habría que utilizar jfs que no parece poner restricciones? ¿habría que particionar las tablas, si se puede?). Llegado a ese punto quizás hubiese que utilizar mysql-cluster...?

Es mas que nada por saber

Exacto, el problema es ese, si engorda mucho la database, podés encontrarte los límites del sistema en cuanto a tamaños de fichero o perder eficiencia ....
Hay sistemas de archivos como ZFS que es de 128 bits si mal no recuerdo, y podés almacenar *grandes* cantidades de ficheros (2^48) y tener ficheros muy grandes (2 ^ 64 bytes -> 16 exabytes)

El problema es que Linux no lo soporta por temas de licencias (la GPL es incompatible con la CDDL), pero hay otros sistemas que si, como FreeBSD u OpenSolaris (difunto ya, pero que se puede usar vía proyectos como Nexenta, que se van a basar en Illumos)

CitarSobre esto yo no estoy muy de acuerdo. El sistema ext4 es mas eficiente que ext3 y lleva mucho tiempo siendo estable. De hecho trabajo con varios servidores en ext4 y van perfectos. Lo ultimo que lei sobre ext4 era sobre que estan terminando un desfragmentador para el, algo que ninguna de las versiones anteriores tenia.

Sí, pero hay gente que argumenta que el journaling en determinadas tareas puede degradar la performance ... además de que en ext4 el límite es fijo, y en ext3 la cantidad de inodes depende del tamaño y configuración del volumen y eeetc .... toda una discusión que no quiero recomenzar here ...

Nota : google largó hace no mucho la migración a ext4

CitarEn ningun momento lei que hubiera un limite de tamaño de fichero.

Leiste mal ... fijate en la wiki que está ...

Citar
De lo que me acuerdo de los articulos es que la finalidad de personalizar los parametros que sea mas rapido la lectura y/o la escritura, pero con la pega de que en una caida de tension podias perder datos. Esto te podria convenir si tienes un RAID de algun tipo.

Yup, y ese es uno de los riesgos de no tener sistemas con journaling ...
Nota : de paso que mencioné ZFS, destaco que trae soporte incorporado de mirroring y self healing transparente (raid)

Saludos.

P.S : si vas a almacenar muchas imágenes y hacer una suerte de host de estas, chusmea el ZFS de sistemas como OpenSolaris en la 134-dev o esperá que salga la 9 de FreeBSD, la característica de dedupe  creo que sería un gran win-win ahí ...

luinuz

CitarLuinuz, el uso de btrees no te permite más directorios y ficheros, sino manejar muchos más eficientemente ...

Llevas razon.

Citar
CitarEn ningun momento lei que hubiera un limite de tamaño de fichero.
Leiste mal ... fijate en la wiki que está ...

No lei mal, es que los articulos que lei no trataban ese aspecto, pero gracias por el apunte.

Citar
CitarDe lo que me acuerdo de los articulos es que la finalidad de personalizar los parametros que sea mas rapido la lectura y/o la escritura, pero con la pega de que en una caida de tension podias perder datos. Esto te podria convenir si tienes un RAID de algun tipo.

Yup, y ese es uno de los riesgos de no tener sistemas con journaling ...

Tambien hay modos como el writeback que sin ser journaling evita ese tipo de riesgos.

CitarSí, pero hay gente que argumenta que el journaling en determinadas tareas puede degradar la performance ... además de que en ext4 el límite es fijo , y en ext3 la cantidad de inodes depende del tamaño y configuración del volumen y eeetc

Es cierto que el journaling ralentiza el tema pero juraria que ext4 es tan configurable o mas que ext3.

Saludos.

P.D.Tambien estoy deacuerdo en que ZFS sea una buena opcion, pero con respecto a que ext3 sea mejor opcion que ext4... tendriamos polemica  :P


kinos

Por lo que veo tiene buena pinta el ZFS y el freebsd.

¿no sabreis si existen discos scsi de 2 teras y alguna pagina donde vendan?
Por cierto son super caros. :o