Всем привет! Планирую использовать локальный ZFS пул как мой продакшн local_storage. Настроил лог и кэш на SSD — работает очень быстро и стабильно. А как быть с настройкой размера ARC? У меня 48 ГБ оперативной памяти. По умолчанию ARC настроен от 32М до 24 ГБ. Хочу выделить около 35 ГБ для моей виртуалки + KSM. Нужно ли уменьшать размер ARC или он автоматически освобождается, когда KVM захочет, например, создать новую виртуальную машину? С уважением, Виктор.
VGusev2007
Guest
0
28.02.2016 18:37:00
Итак, ДОРОГИЕ ВСЕ! Огромное спасибо за ваши ответы! Я многое погуглил по этому вопросу и могу высказать своё окончательное мнение:
Итак, ZFS в Proxmox пока не имеет никаких преднастроек. Вам нужно чётко понимать, что вы делаете!
Первое — про ZiL: - ZiL должен быть на зеркальной партиции. - Партиция для ZiL должна иметь технологию защиты данных при отключении питания (например, Intel DC S3610 Series). - Размер ZiL должен быть минимум: максимальная скорость вашего диска × 5 (потому что ZFS синхронизирует ZiL на диск каждые 5 секунд в режиме по умолчанию). Но вам не нужно сильно превышать эту формулу, потому что на практике это не используется (источник — эта тема).
Второе — про L2ARC: - Вам не нужен большой L2ARC, если у вас нет свободной оперативной памяти! - Магии тут нет, и для L2ARC нужен соответствующий кэш в ОЗУ. Примерно 1 ГБ RAM на каждые 5 ГБ L2ARC. (источник:
И напоследок про размер ARC: - ZoL может освободить ARC! Да, в этом процессе тоже нет ничего магического... ZFS ARC не уменьшается мгновенно. Однако (в ZFSonLinux) память освобождается по мере того, как приложения начинают её использовать — как обычно (источник: . - Так что, если у вас плохо настроен размер ARC или вы остановили систему, а потом запустили ВМ, может появиться ошибка вроде: "unable to allocate memory". - Я не знаю насчёт команды echo xxxx >> /sys/module/zfs/parameters/zfs_arc_max — освободит ли она память сразу или нет? Думаю, экспериментировать с этим в рабочем окружении не стоит. Просто настройте ARC так, как нужно.
Если хотите, могу поделиться своим кейсом:
У меня: - 2 SSD: SSDSC2BX100G401 - 6 HDD: SAS 10k rpm (raid10) - 64 ГБ RAM
Я собираюсь использовать такую схему: - ОС: программный raid1 для Proxmox (mdadm): md0 — 30ГБ (SSD) - программный raid1 для swap (mdadm): md1 — 10ГБ (SSD) — просто mkswap /dev/md1 -Lswap - LVM: vg для ОС: 30ГБ - LVM: lvol для ОС: 15ГБ, свободное пространство в vg — 15ГБ для snapshot (например, для бэкапа или обновления proxmox)
ZFS ARC: собираюсь уменьшить ARC с 32 МБ до максимум 4 ГБ.
ZLog: мои диски выдают около 250MB/сек + кэш 32 или 64 МБ. Думаю, хватит: 3 (диска в моём raid10) × 250 (скорость) × 7 (секунд) = 5.1 ГБ, возьму 5 ГБ. Больше не нужно, так как синхронная запись у меня очень небольшая (не 1GB/sec!). Значит, 5 ГБ будет зеркальной частью на моём SSD.
L2ARC: если он будет сжиматься (это из темы обсуждения), думаю, будет хорошо выделить около 3 ГБ для L2ARC. Значит получаем: 15 ГБ (7 ГБ от одного SSD + 7 ГБ от второго SSD). Предполагаю, что у меня будет около 30 ГБ данных (если уровень сжатия будет 2.00 в среднем) с расходом 3 ГБ моей RAM.
ZFS: собираюсь включить сжатие lzo для моего zpool: zfs set atime=off myzpool
Не стесняйтесь писать, если хотите что-то поправить!
Nemesiz
Guest
0
28.02.2016 21:23:00
Как вы используете LVM и ZFS? ZFS поверх LVM?
VGusev2007
Guest
0
28.02.2016 21:49:00
У меня мало слотов на сервере, поэтому я разделил SSD: mdadm+LVM только под ОС, а остальное место на SSD выделил под ZiL+L2ARC. Ты знаешь, какой лучше размер блока для zvol? И какой размер блока по умолчанию у zvol, когда создаю виртуальную машину через GUI Proxmox?
Nemesiz
Guest
0
01.03.2016 21:52:00
Не могу сказать много про размер блока. Графический интерфейс PROXMOX создаёт том с размером блока 8k.
VGusev2007
Guest
0
01.03.2016 22:06:00
Я считаю, что это плохая идея! Это убьёт твою производительность и эффективность твоего ARC!