Файл подкачки на btrfs

Размещение файла подкачки на разделе btrfs.

Содержание

1 Общая информация

  • btrfs поддерживает файл подкачки (начиная с ядра версии 5.0).
  • Файл подкачки не может находиться на любом рейде btrfs.
  • btrfs не позволяет создавать снапшоты, если на подтоме есть рабочий файл подкачки.
  • Рекомендуется размещать файл подкачки на отдельном подтоме.
  • Файл подкачки должен иметь свойство NODATACOW.
  • Файл подкачки должен быть без сжатия.

2 Создание файла подкачки

  • Подмонтируем раздел с btrfs:
    1mkdir /mnt/gentoo
    2mount -tbtrfs -orelatime,space_cache,discard,autodefrag,compress=zstd:9 /dev/sda4 /mnt/gentoo/
    
  • Создадим подтом для файла подкачки на btrfs:
    1cd /mnt/gentoo/
    2btrfs subvol create @swap
    
  • Отмонтируем том btrfs:
    1umount /mnt/gentoo
    
  • Создадим точку монтирования:
    1mkdir /swap
    
  • Подмонтируем подтом @swap:
    1mount -o subvol=@swap /dev/sda4 /swap
    
  • Отключим для этого подтома CoW:
    1chattr +C /swap
    
  • Создадим файл подкачки:
    1truncate -s 0 /swap/swapfile
    
  • Отключим сжатие:
    1btrfs property set /swap/swapfile compression ""
    
  • Установим права доступа 600 к файлу подкачки:
    1chmod 600 /swap/swapfile
    
  • Установим размер файла подкачки.
    • Можно задать размер вручную (например, 4GiB):
      1fallocate -l 4G /swap/swapfile
      
    • Можно установить размер файла подкачки исходя из размера оперативной памяти:
      1fallocate -l $(free -h --si | awk 'NR == 2 {print $2}') /swap/swapfile
      
  • Отформатируем файл подкачки:
    1mkswap /swap/swapfile
    
  • Активируем файл подкачки:
    1swapon /swap/swapfile
    
  • Добавим запись в /etc/fstab, чтобы подключать файл подкачки при загрузке (для устройства с UUID="f8963df3-1320-4bc0-a125-62be185b029e"):
    1UUID="f8963df3-1320-4bc0-a125-62be185b029e"	/swap               btrfs   relatime,discard,autodefrag,compress=zstd:9,subvol=@swap    0 0
    2/swap/swapfile					none		    swap    sw								0 0
    
  • Проверьте, что файл /etc/fstab не содержит ошибок:
    1findmnt --verify --verbose
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие