Los méritos de un sistema de archivos sin particiones


39

Me encontré con algo hace un par de semanas que nunca había visto antes: un sistema de archivos (ext3, creo) instalado en un dispositivo de almacenamiento sin una partición. En esencia /dev/sdb era todo el sistema de archivos. Sé que muchos sistemas de archivos se pueden extender al espacio vacío, por lo que esto permite extender sin tener que lidiar con LVM u otro tipo de administrador de volumen, pero ¿hay alguna otra ventaja para configurar el almacenamiento de esta manera?

El caso específico que vi fue como el volumen de datos efímero para un servidor de procesamiento de números, los volúmenes de arranque y raíz eran particiones tradicionales en un dispositivo de almacenamiento completamente diferente. -


Oracle VM también hace esto, para "almacenamiento local".
Nils

3
Me perdí esta pregunta y comencé una nueva que cubre el mismo terreno: unix.stackexchange.com/q/52389/4801 . Esa pregunta ahora se ha cerrado, pero algunas de las respuestas allí también pueden ser útiles para los lectores de esta Q, y podrían fusionarse aquí.
dubiousjim


Funciona pero conduce a problemas que terminarán perdiendo el tiempo como se muestra aquí: access.redhat.com/documentation/en-us/red_hat_enterprise_linux/… .
slm

Respuestas:


24

Pro: no desperdicia un sector de disco en una tabla de particiones. (Hurra.)

Pro: el disco se puede usar en un sistema operativo que no admite particiones estilo PC. (Como si fuera a usar uno)

Con: esto es inusual y puede confundir a los co-administradores de sistemas. (¿Ver?)

Con: si instala otro sistema operativo, podría pensar que el disco contiene basura y facilitar la sobrescritura accidental seleccionando el disco incorrecto, mientras que los sistemas operativos generalmente dejan solo particiones cuyo tipo no entienden.

Irrelevante: extender el sistema de archivos no es más fácil si está directamente en el disco que si está en una partición, ni viceversa. (Estar en LVM lo haría más fácil).

Conclusión: funciona, pero no es una buena idea.


2
Confusión, ahoy! Mi medidor interno se está inclinando hacia un "intento equivocado de optimización".
sysadmin1138

66
Otra desventaja: hace que sea más difícil dividir la partición en dos.
Kim

3
Encontré este Q&A de superusuario que tiene algunos buenos ejemplos de uso hexdumpy odque muestra en términos muy concretos lo que está sucediendo con una configuración /dev/sdavs. /dev/sda1
slm

44
Es un poco más simple extender el volumen en un disco completo, ya que primero no tiene que extender la partición.
psusi

2
En un entorno no comercial, la instalación de otro sistema operativo puede ser relevante, pero ¿quién inicia múltiples dispositivos en un entorno comercial? Me inquieta que esta sea la respuesta canónica. No tiene nada de malo, excepto que es opinión. Estoy cerca del uso del disco sin particiones, pero a continuación se dan algunas buenas razones.
Graham Nicholls

18

No estoy seguro de cómo se aplicaría esto a Linux, pero con ZFS nativo, una razón por la que se recomienda crear grupos en discos enteros y no particiones es en el primer caso que la caché de escritura en disco se puede habilitar.

Varias otras razones también mencionadas aquí:

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide#Storage_Pools

Conclusión: funciona, y podría ser una buena idea dependiendo del sistema de archivos.


Bueno saber. ¡En este caso específico estaba en la nube! por lo que el almacenamiento está bastante abstraído cuando se trata de la configuración del sistema.
sysadmin1138

1
¿Qué tiene que ver el caché de escritura de disco con si una tabla de particiones está o no en uso?
psusi

3
La caché de escritura no se puede habilitar a nivel de partición. Cuando está habilitado, afecta al disco como un todo. Si un sistema de archivos está usando un disco completo, "posee" ese disco para que pueda encender y apagar esa caché sin ningún riesgo colateral. De lo contrario, hacerlo podría afectar a otro consumidor de discos que necesita deshabilitar esa caché por sus propios motivos.
jlliagre

44
Claro, pero hacer que el sistema operativo encienda la memoria caché sin saber el sistema de archivos o los requisitos del consumidor del dispositivo sin procesar no es un enfoque confiable. Hay aplicaciones como bases de datos que necesitan asegurarse de que una transacción confirmada esté en el disco y no solo en la memoria.
jlliagre 01 de

1
@psusi Si fsync vaciará el caché del disco o no, parece depender del sistema de archivos.
jlliagre

16

Veo el beneficio real cuando esto se hace en un entorno virtual. Dado que nuestros VMDK están almacenados en nuestro NAS, podemos hacerlos crecer dinámicamente.

Si estamos usando particiones, o bien necesitamos usar LVM (y la sobrecarga asociada con él) y encadenar las particiones juntas, o necesitamos eliminar el host (o el sistema de archivos si no está en uso) para usar algo como gparted.

Sin embargo, si usa todo el disco en lugar de una partición, puede forzar un nuevo escaneo en sus discos SCSI y usar resize2fs para hacer crecer el sistema de archivos mientras está en línea (¡y en uso!).


¡Buen punto! Con los discos virtuales (como puede crearlos, eliminarlos y cambiar su tamaño según sea necesario), las particiones parecen ser una capa inútil.
pabouk

11

Colocar un sistema de archivos en un dispositivo de disco sin crear ninguna partición no es tan raro.

Ventajas:

  • cuando quiera usar todo el espacio de todos modos, entonces no tiene que perder el tiempo con alguna herramienta de partición
  • no tiene que preocuparse por las incompatibilidades del formato de partición 'estándar' (por cierto, ¿qué formato de partición es el estándar, el DOS, el BSD?), por ejemplo, el formato de partición DOS solo permite particiones de hasta 2 TB cuando se usa ¡512 bytes de sectores lógicos!
  • no tiene que preocuparse por los problemas de alineación inducida por la partición en unidades con tamaños de sector inusuales (actualmente) (por ejemplo, 4 k); claro, las distribuciones actuales deben enviar herramientas de partición que realicen la alineación correcta con diferentes tamaños de sector

Poder cambiar el tamaño de un sistema de archivos en un dispositivo sin formato no es una buena razón. El espacio que ahorras de esa manera, no puedes usarlo para otras cosas. Por lo tanto, puede crear directamente el sistema de archivos en todo el dispositivo.


2

Una respuesta que no se ha incluido en la lista es que, si no crea una partición, no tiene que esperar a que el Kernel la detecte, lo que podría ocurrir solo después de un reinicio.

Un caso de uso podría ser un volumen EC2 EBS que agregue al nodo y desee inicializar en el primer arranque.

Si su proceso de inicialización crea una partición, corre el riesgo de tener que reiniciar para que el Kernel vea la partición recién creada. Normalmente verías un mensaje como:

Error: Error al informar al kernel sobre modificaciones en la partición / dev / xvde1 - Dispositivo o recurso ocupado. Esto significa que Linux no sabrá acerca de los cambios que haya realizado en / dev / xvde1 hasta que reinicie, por lo que no debe montarlo ni usarlo de ninguna manera antes de reiniciar.

En este caso, su proceso de inicialización tendría que realizar un reinicio y luego continuar agregando un sistema de archivos a la partición recién creada.

Si sabe que solo necesitará una única partición, puede saltearla y no correr el riesgo de requerir un reinicio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.