Как говорит документация по Proxmox нужно с дисках включать режим discard, делать тип контроллера -VirtIO SCSI, а диски не VirtIO Block, а SCSI !
Опция discard включается галочкой (в русской версии называется "Отклонить"!).
Также я на всякий случай включил галочку "SSD emulation".
1. Сделал 2 диска: 80 под систему, 300 под папку /home
2. Ставил с CentOS-7-x86_64-Minimal-1908.iso
Выбрал ручное разбиение. LVM, Автоматическое разбиение, потом руками подправлял. Сделал 2 VirtualGroup по каждому диску в группе.
Ставил на ext4.
Переходим к предварительной настройке ОС.
3. Обновил систему
4. Установить qemu-guest-agent
5. Включить trim
5.1 По инструкции
Код: Выделить всё
systemctl enable fstrim.timer
systemctl start fstrim.timer
systemctl status fstrim.timer
5.2 Добавил опцию discard в каждый диск (включая swap) в /etc/crypttab (он у меня пустой, поскольку шифрование не включал) и /etc/fstab
по принципу:
/dev/sda1 /boot ext4 defaults,discard 1 2
5.3 Установил issue_discards = 1 в /etc/lvm/lvm.conf
5.4 Перестроил initramfs
Код: Выделить всё
# RHEL 6 & 7: Rebuilding the initramfs
# ------------------------------------------------------------------------------------------
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -f
Настройка trim завершена. Проверял - работает.
Вручную перед бекапом делать обязательно.
Код: Выделить всё
fstrim -av
Можно включить почасово
Код: Выделить всё
echo -e "fstrim -a" > /etc/cron.hourly/fstrim
Код: Выделить всё
echo -e "fstrim -a" > /etc/cron.daily/fstrim
6. Удалил старые ядра
2-е добавилось после начального обновления системы. Т.е. я старое удалил, новое оставил.
Код: Выделить всё
rpm -q kernel
yum remove kernel-3.10.0-1062.el7.x86_64
7. Удалить неиспользуемые локали, перестроить архив локалей
Код: Выделить всё
localedef --list-archive >> ~/locale_list.txt
localedef --list-archive | grep -E -v "^en_US|^ru|^uk_UA" | xargs localedef --delete-from-archive
localedef --list-archive >> ~/locale_list_new.txt
mv -y /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
build-locale-archive
Подождать немного, что бы архив локалей перестроился и перегрузить.
Таким образом /usr/lib/locale/locale-archive уменьшается с 105мб до 5,5мб.
8. Я еще ставил себе ncdu - полезная утилита для просмотра размеров папок. Ну это кому нужно:
Код: Выделить всё
wget https://dev.yorhel.nl/download/ncdu-1.14.2.tar.gz
tar -xzvf ncdu-1.14.2.tar.gz
Код: Выделить всё
yum -y install gcc ncurses ncurses-devel
Код: Выделить всё
./configure --prefix=/usr
Код: Выделить всё
make
make install
9. Установить brainycp
После установки всего-всего панель с системой у меня заняла 5,8Гб.
(правда я немного jail_skeleton подрезал)
Все.
Надеюсь, кому-то поможет.
Я с этим trim'ом день промучался и наэкспериментировался, но именно так все работает.