Настройка lvm cache на nvmeв том числе для root-раздела

Логика работы

https://www.it-world24.ru/programmy/lvm-cache-prozrachnoe-keshirovanie-hdd-ispolzuya-ssd.html

Логика

Подготавливаем систему

Добавляем весь ssd в lvm-группу, которую будем кэшировать (в нашем случае vg_root):

lvcreate -n root_cache_metadata -L600M vg_root /dev/nvme0n1

Собственно создаём lvm cache:

lvcreate -n root_cache_metadata -L600M vg_root /dev/nvme0n1
lvcreate -n root_cache_data -L60G vg_root /dev/nvme0n1
lvconvert --type cache-pool --cachemode writeback --poolmetadata vg_root/root_cache_metadata  vg_root/root_cache_data
lvconvert --type cache --cachepool vg_root/root_cache_data vg_root/root_deb

настраиваем опции ядра:

в /etc/default/grub правим параметр опций ядра:

GRUB_CMDLINE_LINUX="rd.md=1 rd.md.conf=1 rd.auto=1"

Настраиваем dracut:

apt-get isntall dracut

Добавляем нужные модули:

Создаём файл загрузки модулей /etc/dracut.conf.d/lvm.conf с содержимым (обязательно вокруг имени модуля - пробелы):

# support lvm root:
add_dracutmodules+=" lvm "

Создаём файл загрузки модулей /etc/dracut.conf.d/mdadm.conf с содержимым (обязательно вокруг имени модуля - пробелы):

# support mdadm root:
add_dracutmodules+=" mdraid "

Пересобираем initramfs-образы для всех ядер

Смотрим какие модули есть (для каких ядер):

ls /lib/modules

Пересобираем:

dracut /boot/initrd.img-6.1.0-13-amd64 6.1.0-13-amd64 --force
dracut /boot/initrd.img-6.1.0-15-amd64 6.1.0-15-amd64 --force

Обновляем параметры загрузки

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

dpkg-reconfigure grub-pc

Отключение кэша

lvconvert --uncache vg_root/root_deb

🔙 вернуться к началу...