¿Qué no necesita desfragmentación? ¿Linux o el ext2 ext3 FS?

32

¿Por qué no tienes que desfragmentar un sistema Linux? ¿Porque está usando el sistema de archivos ext2 / ext3, o porque es Linux?

Eso es relevante, ya que tengo un sistema de arranque doble (W7 / Ubuntu) y una partición común (NTFS) a la que pueden acceder ambos sistemas. Si estoy usando esta partición con Linux, ¿se fragmentará?

Otro problema son los contenedores Truecrypt. También accedo a ellos con Linux y Windows, y son FAT32. ¿Se fragmentan con Linux operando en ellos?

xyz
fuente
2
Las otras respuestas son buenas, pero omiten un bit importante: todos los sistemas de archivos: ext2 / 3/4 y NTFS fragmentarán bastante los archivos cuando haya poco espacio en disco. Si desea evitar la fragmentación, no permita que el uso de su sistema de archivos supere el 90%.
Zan Lynx
1
Si usa ext4, se sorprenderá al ver cuánta fragmentación puede tener cuando ejecuta e4defrag -v .en un árbol de directorios, especialmente si contiene, por ejemplo, archivos descargados con un cliente torrent (aunque algunos usan fallocate/ posix_fallocate).
rbrito
Aunque la pregunta está sujeta a una opinión personal, creo que se basa más en hechos reales.
Julie Pelletier

Respuestas:

27

Aquí hay un artículo sobre How To Geek sobre cómo ext2 / ext3 asigna archivos en el disco. Y también tienen un artículo que pregunta " ¿Realmente necesitas desfragmentar ?"


Sobre por qué FAT se fragmenta:

"Cuando guarda un archivo en un sistema de archivos FAT, [el archivo se guarda] lo más cerca posible del inicio del disco. Cuando guarda un segundo archivo, [el archivo se guarda] justo después del primer archivo, y así encendido. Cuando los archivos originales crecen en tamaño, siempre se fragmentarán. No hay espacio cercano para que crezcan ".
-Cómo geek

Y wikipedia tiene más información sobre la fragmentación de FAT .

Sobre cómo EXT2,3,4 asignan archivos:

"Los sistemas de archivos ext2, ext3 y ext4 [...] asignan los archivos de una manera más inteligente. En lugar de colocar varios archivos cerca uno del otro en el disco duro, los sistemas de archivos de Linux dispersan diferentes archivos por todo el disco, dejando una gran cantidad de espacio libre entre ellos ".
-Cómo geek

(Y más información sobre desfragmentación en ext3, de wikipedia )

"Los sistemas de archivos modernos de Linux mantienen la fragmentación al mínimo al mantener todos los bloques en un archivo muy juntos, incluso si no pueden almacenarse en sectores consecutivos. Algunos sistemas de archivos, como ext3, asignan efectivamente el bloque libre más cercano a otros bloques en un archivo. Por lo tanto, no es necesario preocuparse por la fragmentación en un sistema Linux ".
- TLDP

dougBTV
fuente
44
¡Gran respuesta! Pero deberías poner un poco más de contenido. La idea es que cualquier respuesta en StackExchange debería ser suficiente por sí misma. Si los enlaces de sus preguntas se rompen, su respuesta no será de ninguna ayuda, por lo que debe dar una explicación suficiente en su publicación y luego dar los enlaces para leer más.
lgeorget
1
Gracias @lgeorget: desarrollé la respuesta con algunas citas de dirección, por lo que siempre hay algo que leer sobre "por qué". Agradezco tu aporte / critico constructivo !!
dougBTV
"Cuando guarda un archivo en un sistema de archivos FAT, se guarda". No tiene sentido Qué es"? FAT es un formato de sistema de archivos. Describe dónde puede guardar, pero no lo limita a una sola ubicación. De hecho, el sistema operativo decide. Pero hay muchos sistemas operativos diferentes que pueden escribir en FAT, y cada uno toma su propia decisión.
MSalters
@MSalters - de acuerdo. Editaré la sección citada para omitir esa vaguedad.
dougBTV
La vaguedad solo está oculta ahora. La declaración sigue siendo bastante absoluta (donde se guarda "FAT") mientras que toda la especificación FAT no dice tal cosa. De hecho, el enlace de Wikipedia que cita directamente lo contradice: dice específicamente que Windows elige la ubicación para el segundo archivo, no directamente después del primer archivo. ("selección de grandes áreas contiguas por adelantado")
MSalters
23

La fragmentación siempre es una preocupación, sin importar el sistema de archivos. Sin embargo, Ext3 / Ext2 han minimizado el problema hasta el punto en que la mayoría de los administradores solo operan como si no fuera una preocupación. Esto se minimiza mediante el uso de un programador de E / S competente y el sistema de archivos que deja espacio final después de cada archivo para acomodar el crecimiento. Además de eso, los fragmentos adicionales se almacenan más juntos, por lo que incluso cuando hay fragmentación, los efectos se silencian severamente. Ext4 cambiar a extensiones también tenía la intención de ayudar a mitigar la fragmentación aún más.

La fragmentación aún existe, ext2 tenía una herramienta de desfragmentación sin conexión, ext4 está obteniendo una en línea y btrfs (solo porque está relacionado con la pregunta) ya tiene una desfragmentación en línea. Si está en ext3, su única opción real es convertir a ext4 (vía tune2fs) o tratar de ver cuánta suerte tiene con las herramientas de espacio de usuario como shake.

Dependiendo del tipo de E / S que esté experimentando su sistema de archivos, aún podría ser una preocupación incluso en su nivel silenciado, razón por la cual las herramientas en línea se consideraron útiles para comenzar.

Para la pregunta sobre FAT32, la fragmentación no ocurre cuando solo opera en un archivo, sucede cuando escribe en el archivo. Para responder a su pregunta directamente, la fragmentación es un aspecto del diseño del sistema de archivos, por lo que su sistema de archivos FAT32 tiene el potencial de fragmentación cada vez que le escribe algo.

Bratchley
fuente
"Esto se minimiza mediante el uso del competente planificador de E / S". Hay algo que no está del todo bien con esa frase.
Faheem Mitha
Gracias por atrapar eso. Soy un poco malo para revisar mi idioma sin corregir los problemas que causa la revisión con la gramática general de la oración del párrafo.
Bratchley
Esta es una buena respuesta. Agregaría algo sobre CoW (copia en escritura). Tiene una estrecha relación con si la fs se fragmenta.
Martin Sugioarto
4

Respondiendo a sus preguntas, una por una:

¿Por qué no tienes que desfragmentar un sistema Linux? ¿Porque está usando el sistema de archivos ext2 / ext3 o porque es Linux?

Debido a que ext2 / 3/4 tiene un enfoque diferente sobre los archivos y carpetas, por lo que apenas se fragmentan. Otros ya han respondido al respecto, y puedes leer más detalles aquí

Eso es relevante, porque tiene un sistema de arranque doble (W7 / Ubuntu) y una partición común (NTFS) a la que pueden acceder ambos sistemas. Si estoy usando esta partición con Linux, ¿se fragmentará?

Sí, puede fragmentarse. No es cuestión de si Windows o Linux o cualquier otra cosa está accediendo a él, es cómo cada sistema de archivos trata con el tamaño del archivo, cómo almacena todos esos bloques, si deja espacios vacíos entre cada archivo ...

Otro problema son los contenedores Truecrypt. También accedo a ellos con Linux y Windows, y son FAT32. ¿Se fragmentan con Linux operando en ellos?

Los contenedores Truecrypt son un archivo, para todos los asuntos prácticos. Cuando crea un contenedor con TrueCrypt, está creando un archivo del tamaño que elija. Para su sistema operativo, es como cualquier otro archivo. Si hace copias de él, etc., tal vez las copias podrían terminar siendo fragmentadas.

Pero, recuerde, nunca es bueno tener múltiples copias del mismo contenedor, podría ayudar a reducir la seguridad del mismo. Siempre haga un nuevo contenedor.

Cuando guarda, elimina, copia, mueve, etc., archivos dentro del contenedor, los sistemas operativos no lo saben, es lo mismo que abrir, editar y guardar cualquier otro archivo, sin cambiar su tamaño.

Y si le preocupa la seguridad de truecrypt sobre la fragmentación, investigue sobre el uso de truecrypt con SSD: dado que el SSD intenta controlar el desgaste de toda la memoria dentro de él, es posible que tenga el mismo efecto de copiar el contenedor.

woliveirajr
fuente
3

Al final, todo depende de los controladores del sistema de archivos dentro del sistema operativo.

Los sistemas de archivos ext2 y FAT son métodos para registrar qué bloques del disco pertenecen a qué archivo. Cuando no todos los bloques de un archivo son contiguos, el archivo se denomina fragmentado. Pero como debería ser obvio, la fragmentación es causada por la estrategia de asignación de bloques al escribir un archivo, no por cómo se registran esos bloques.

Lo que sí marca la diferencia es qué tan lejos pueden mirar los controladores del sistema de archivos. Si el controlador sabe que hay 10 bloques más para escribir, puede elegir un área libre contigua y evitar una futura fragmentación. Esto depende de la arquitectura del controlador, que es específica del sistema operativo. Pero exactamente la misma búsqueda de espacio libre se puede hacer en FAT y ext2.

De hecho, ext2 y FAT no son realmente tan diferentes como puede pensar. Escribí la parte ext2 de un gestor de arranque sobre el código FAT existente, y eso requería menos de 100 líneas adicionales de código.

MSalters
fuente