¿Qué sistema de archivos se intercambia en Linux?

14

En Linux puedes elegir cosas como ext3 y reiserfs para particiones. Para la partición de intercambio, simplemente elige "intercambio". ¿Qué sistema de archivos es este, en realidad? ¿Puedes crear una partición ext3 y convertirla en una partición de intercambio? ¿Cómo sería eso diferente?

tony_sid
fuente
El sistema de archivos de intercambio en Linux parece llamarse sistema de archivos de intercambio de Linux. Si consigo encontrar información real al respecto, publicaré una respuesta. Hasta ahora, he leído en en.wikipedia.org/wiki/Paging que el kernel omite el sistema de archivos en los archivos de intercambio. Lo mismo puede ser cierto con las particiones de intercambio.
AndrejaKo
1
¡Las personas increíbles en los foros de Gentoo me proporcionaron este enlace! Todo parece estar bien explicado. Ah y gracias a John R. Graham.
AndrejaKo

Respuestas:

26

Swap no es un sistema de archivos real. Es solo una parte reservada del disco que es memoria direccionable sin formato sin estructura especial.

mkswap crea un encabezado para el área de intercambio con información adicional. Desde swapheader.h del paquete util-linux-ng:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

La versión 1 del encabezado es la que se usa actualmente. Eso se trata de toda la magia detrás de la estructura cruda del intercambio.

matthias krull
fuente
¿No tiene que haber algún tipo de sistema de archivos para leer y escribir algo significativo en una partición?
tony_sid
55
No. Solo tiene que abordar fragmentos de memoria. Eso es exactamente lo que son las páginas. Esto se debe a que no almacena los datos con una estructura compleja o información adicional como en sistemas de archivos reales donde los permisos y las fechas se almacenan junto con los datos.
Matthias Krull
66
Todavía puede abordar bloques si no tiene un sistema de archivos.
Matthias Krull
8

Creo que la partición de intercambio no necesita un sistema de archivos porque no contiene archivos ni directorios. La partición de intercambio es el lugar de RAM virtual.

Matteo De Felice
fuente
2
no es exactamente el lugar virtual del carnero. Es (como la memoria RAM) la memoria que se puede asignar a la memoria virtual de un proceso.
matthias krull
4

Linux tiene dos formas de espacio de intercambio: la partición de intercambio y el archivo de intercambio. La partición de intercambio es una sección independiente del disco duro utilizada únicamente para el intercambio; Ningún otro archivo puede residir allí. El archivo de intercambio es un archivo especial en el sistema de archivos que reside entre su sistema y los archivos de datos.

El intercambio es necesario por dos razones importantes. Primero, cuando el sistema requiere más memoria de la que está físicamente disponible, el núcleo intercambia las páginas menos utilizadas y le da memoria a la aplicación (proceso) actual que necesita la memoria de inmediato. En segundo lugar, un número significativo de las páginas utilizadas por una aplicación durante su fase de inicio solo se pueden usar para la inicialización y luego nunca más. El sistema puede intercambiar esas páginas y liberar la memoria para otras aplicaciones o incluso para el caché del disco.

Am1rr3zA
fuente
2
La respuesta es realmente agradable y explica el núcleo del problema, pero es una respuesta a la pregunta "¿Qué es el intercambio en GNU / Linux?" Entonces, ¿qué está haciendo aquí? Además, enlace relacionado linux.com/news/software/applications/…
AndrejaKo
Sé lo que es el intercambio.
tony_sid
... no sabía acerca de la opción de intercambio de archivos
MrCalvin
-1

Hay dos formas de crear espacio de intercambio: intercambio de sistema de archivos y intercambio de dispositivo (o sin formato). Con el intercambio de sistema de archivos, está creando un archivo en un sistema de archivos y usándolo como espacio de intercambio (al igual que lo vería en ventanas con pagefile.sys). Con el intercambio de dispositivos, está cambiando a una partición que ha creado específicamente para el intercambio.

Cual es mejor:

Este debate solía ser mucho más interesante en los "viejos" días porque:

Por qué el intercambio de dispositivos es "mejor": dado que está cambiando a una partición sin formato, es más rápido porque no tiene que lidiar con toda la sobrecarga adicional de un sistema de archivos con inodos y otra sobrecarga del sistema de archivos

Hoy, sin embargo, este argumento realmente no es válido. Con la evolución de cuán rápido es el acceso al disco en estos días, el intercambio de dispositivos no le da mucho más tiempo que el intercambio de sistemas de archivos.

Por qué el intercambio de sistemas de archivos es "mejor": es mucho más fácil cambiar los tamaños. Cuando cambia el tamaño de la partición, es mucho más difícil que simplemente crear nuevos archivos.

Sin embargo, hoy en día, con muchas personas que usan LVM en lugar de particiones sin formato, es fácil reducir y aumentar su espacio de intercambio

HOY es aún más discutible: la mayoría de los servidores en estos días por razones de rendimiento, vale la pena el costo solo de llenarlo de memoria. (Este debate solía ser mucho más popular cuando la RAM era más difícil de encontrar y era común poner solo 4GB a 8GB de RAM en un servidor)

POR QUÉ UTILIZO EL INTERCAMBIO DE SISTEMA DE ARCHIVO (y el intercambio en general)

En estos días les indico a nuestros muchachos que instalen con 4gig swap onl y usamos la misma configuración / imagen para todas nuestras instalaciones de Linux. La instalación de Oracle requiere un mayor uso de intercambio, por lo que para los sistemas que tendrán Oracle, crearé el resto con el intercambio del sistema de archivos. Es posible que su aplicación tenga un requisito de intercambio, en cuyo caso puede agregarla más tarde con el intercambio del sistema de archivos.

¿Esto ayuda?

Tengo instrucciones detalladas sobre cómo hacer esto en Linux aquí: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/

ben
fuente
1
“Hoy, sin embargo, este argumento realmente no es válido. Con la evolución de cuán rápido es el acceso al disco en estos días, el intercambio de dispositivos no le da mucho más tiempo que el intercambio de sistemas de archivos ”. Esta no es la razón. La idea aquí es que el espacio de intercambio puede tener una demanda inmediata . Ir a través de un sistema de archivos implica directorios, bloques, inodos, la memoria caché del búfer, etc., que son rutas de código que pueden necesitar más memoria, lo que lleva a un bucle. Es por eso que el intercambio se realiza mejor en un dispositivo de bloque sin procesar. También evita la fragmentación de archivos de intercambio.
mirabilos