¿Qué tiene de malo esta secuencia de operación, que se ejecuta en un sistema Debian Squeeze con un sistema de archivos Btrfs?
$ dd if=/dev/zero of=swapfile2 bs=1024 count=524288
$ sudo mkswap swapfile2
$ sudo chown root:root swapfile2
$ sudo chmod 0600 swapfile2
$ sudo swapon -v -f swapfile2
swapon on swapfile2
swapon: /home/mathieu/swapfile2: found swap signature: version 1, page-size 4, same byte order
swapon: /home/mathieu/swapfile2: pagesize=4096, swapsize=536870912, devsize=536870912
swapon: swapfile2: swapon failed: Invalid argument
Mi sistema de archivos es:
$ mount
/dev/mapper/voxbox-root on / type btrfs (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/mapper/voxbox-boot on /boot type ext2 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
linux
filesystems
swap
btrfs
malat
fuente
fuente
Respuestas:
como publicado por malat
fuente
btrfs
sistema de archivos no puede admitir archivos de intercambio porque mueve los datos del archivo y el código de intercambio de Linux solo toma la asignación del archivo de intercambio una vez. La catástrofe ocurriría si esto se permite: los datos de archivos aleatorios que usaron bloques que el archivo de intercambio una vez utilizado se corromperían.Tengo menos de 50 reputación, así que no puedo comentar. Pero tengo que actualizar las respuestas existentes. En linux kernel 5.0.0, btrfs ahora admite de forma nativa swapfile. (Debe configurarlo como no-COW)
Aquí hay información de kernel.org: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F
Este enlace muestra cómo hacerlo: https://wiki.archlinux.org/index.php/swap#Swap_file .
¡NO LO INTENTES EN LINUX <4.21!
fuente
Si de todos modos desea intercambiar un archivo, simplemente use btrfs-swapon
fuente
truncate -s 4G swapfile_holes.img
. Es decir, la razón por la cual lasswapon
comprobaciones de algo es que el archivo de intercambio debe cumplir algunos requisitos para un rendimiento razonable.losetup
mapeo. Mi sistema se atascó después de comenzar a usar el intercambiolosetup
en btrfs (con un archivo preasignado). Tal vez interfiera de alguna manera con las memorias intermedias y los cachés. Es decir, el sistema quiere liberar memoria y cambia algo, pero esto resulta en un aumento de caché para el mismo tamaño. Aunque no estoy seguro, lo evitaría.Actualización de abril de 2019 : consulte la respuesta de recolic, que afirma que Btrfs comenzó a admitir el intercambio a partir de la versión 5.0.0 del kernel de Linux.
Respuesta original:
La respuesta de Sathya parece contener enlaces muertos.
Encontré esto en las preguntas frecuentes de Btrfs:
Fuente: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F
fuente
Invalid argument
dice que algo está mal en los argumentos para elswapon
comando.Antes que nada, lee
man swapon
.Tratar
sudo swapon swapfile2
. En mi caso funciona.fuente