ZFS раздел как своп

Я использую native-zfs, и мне было интересно, есть ли способ использовать раздел ZFS для SWAP. Я запускаю свой сервер с флеш-накопителя и подумал, что это будет хорошим способом немного ускорить его.

6
задан 12 December 2012 в 07:44

4 ответа

Разделы подкачки должны иметь определенный формат, который подходит для подкачки, поэтому вы не можете использовать любую другую файловую систему для подкачки. Это исключает zfs по этой причине.

0
ответ дан 12 December 2012 в 07:44

Использование ZFS для свопинга должно работать так же, как в Solaris и FreeBSD.

zfs create pool/swap -V 1G -b 4K
mkswap -f /dev/pool/swap
swapon /dev/pool/swap
0
ответ дан 12 December 2012 в 07:44

Вот более подробное руководство, скопированное из zfsonlinux wiki :

Шаг 1. Создайте набор данных тома (zvol) для использования в качестве устройства подкачки

zfs create -V 4G -b $(getconf PAGESIZE) -o compression=zle \
      -o logbias=throughput -o sync=always \
      -o primarycache=metadata -o secondarycache=none \
      -o com.sun:auto-snapshot=false rpool/swap
[ 1118] Вы можете настроить размер (часть 4G) в соответствии со своими потребностями.

Алгоритм сжатия установлен на zle, потому что это самый дешевый из доступных алгоритмов. При ashift=12 (блоки по 4 КБ на диске) общий случай размера страницы 4 КБ означает, что ни один алгоритм сжатия не может уменьшить количество операций ввода-вывода. Исключением являются все ноль страниц, которые удаляются ZFS; но некоторая форма сжатия должна быть включена, чтобы получить это поведение. Если ваш пул использует ashift=9, вы можете использовать compression=lz4.

Шаг 2. Форматирование устройства подкачки

mkswap -f /dev/zvol/rpool/swap

Обновление /etc/fstab

echo /dev/zvol/rpool/swap none swap defaults 0 0 >> /etc/fstab

Предупреждение. Всегда используйте длинные псевдонимы /dev/zvol в файлах конфигурации. Никогда не используйте короткое /dev/zdX имя устройства.

Шаг 4: Включить устройство подкачки

swapon -av
0
ответ дан 12 December 2012 в 07:44

Обмен на ZFS zvol возможен, но не является хорошей идеей, потому что об открытой ошибке, которая может привести к зависанию компьютера при нехватке места.

Пространство подкачки используется, когда на машине мало памяти и она пытается освободить ее, выгружая менее часто используемые данные.

Когда процессы ZFS выполняют запись в zvol, может потребоваться выделение новой памяти внутри ядра для обработки обновлений различных структур данных ZFS. Если на машине уже мало места, может потребоваться что-то поменять местами, чтобы освободить это пространство, но это вызывает бесконечный цикл.

Итак, вместо свопинга в ZFS просто создайте небольшой дополнительный раздел для пространства подкачки. Или во многих ситуациях вы можете просто не иметь подкачки и полагаться на то, что другие данные выгружаются в файловую систему, чтобы освободить память.

2
ответ дан 25 May 2020 в 17:41

Другие вопросы по тегам:

Похожие вопросы: