В Proxmox начиная с версии 3.4 появилась возможность установит систему на ZFS. Это в свою очередь позволяет нам сделать программный RAID. Но существует одна очень неприятная проблема – черезвычайно низкая скорость записи.
Команда pveperf позволяет оценить производительность системы.
Нас интересует параметр FSYNC\SECOND. В нормальной ситуации он должен быть больше 200. У нас – медленнее необходимого минимума в 2 раза.
Чтобы это исправить ситуацию нужно вынести на отдельный SSD-диск логи ZFS . У нас в наличии Samsumg EVO на 120 Гб.
Подключаем его к нашему пулу.
zpool add rpool log /dev/sdc1
Проверяем командой pveperf.
FSYNC\SECOND увеличился в 5 раз. На самом деле это не очень много т.к. диск достаточно старый. С новыми Kingstone на 120 Gb прирост составляет 10-15 раз.
Теперь сделаем так, чтобы при загрузке диск добавлялся в пул, а при выключении или перезагрузке удалялся. Иначе в случае выхода из строя или замены нашего нового диска будут проблемы с загрузкой системы. Для этого добавим два скрипта.
В моем случае все, что написано ниже, относится к диску sdc, поэтому не забудьте поменять букву диска, если у вас она отличается!
1. Подключение к пулу.
sudo nano /etc/init.d/zlog_mount
Вставляем следующий текст:
#!/bin/sh -e ### BEGIN INIT INFO # Provides: firewall or any other name here # Required-Start: # Required-Stop: # Should-Start: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: script used to do something # Description: ### END INIT INFO zpool add rpool log /dev/sdc1 exit 0
Делаем файл исполняемым и подключаем в автозагрузку.
sudo chmod ugo+x /etc/init.d/zlog_mount sudo update-rc.d zlog_mount defaults
2. Отключение от пула
sudo nano /lib/systemd/system-shutdown/zlog_umount
Добавляем такое содержание:
#!/bin/sh # FreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing. ### BEGIN INIT INFO # Provides: iscsid # Required-Start: $network $local_fs # Required-Stop: $network $local_fs sendsigs # Default-Start: S # Default-Stop: 0 1 6 # Short-Description: iSCSI initiator daemon (iscsid) # Description: The iSCSI initiator daemon takes care of # monitoring iSCSI connections to targets. It is # also the daemon providing the interface for the # iscisadm tool to talk to when administering iSCSI # connections. ### END INIT INFO zpool remove rpool log /dev/sdc1
Делаем файл исполняемым.
sudo chmod ugo+x /lib/systemd/system-shutdown/zlog_umount