В 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
Низкая скорость записи Proxmox на ZFS
Метки:     

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *