Добрый день! Под рукой был комп на материнке Asus B75M-A, с процессором Intel Celeron G2030 (2 ядра, 3Ггц), 8 Гб оперативки. Подключил 6 HDD: 1 - на 500 Гб, остальные по 1 Тб. Из 5 терабайтных HDD создал ZFS Raid1, общий объём 3,8 Тб.
На HDD 500 Гб, установил Proxmox, в нем же создал виртуальные машины и контейнеры, где:
1 ВМ: Ubuntu 24 + PHP+MariDB+Nginx, установлены 2 экземпляра Nextcloud;
2 ВМ: Ubuntu 24 + docker + Nginx Proxy Manager
3 lxc: ubuntu 22 + qbittorrent
4 lxc: ubuntu 22 + Jellyfin
5 lxc: FileServer от Turnkey.
Все ВМ и lxc установлены на HDD 500 Гб, в ZFS только пользовательские данные (папки data от Nextloud, расшаренные папки, медиатека и т.д.)
ВМ с Nextcloud ужасно тормозит, команды в терминале обрабатываются долго (после набора команды и нажатия Enter команды проходит около 10 секунд, пока она начнет выполнятся). Nextcloud'ы на нем, соответственно, тоже тормозят. В проксмоксе выделил 2 ядра, 3 Гб оперативной памяти. Как думаете, если поставлю какой-нибудь 4-х ядерный Xeon улучшит ли это ситуацию? Или это может быть связано с HDD?
убери zfs из конфига, raid можно было бы сделать штатным mdadm ну а для поиграться тебе хватит btrfs с тем же функционалом (сомневаюсь что ты коснешься того что не доделали в нем) но значительно лучше работающем на слабом железе.
zfs нужно МНОГО оперативной памяти, даже без онлайн дедупликации
ну и zfs очень плохо работает с hdd, просто отвратительно. Полагаю те кто запускает его на дорогих raid контроллерах со своим многогигабайтовым кешем, этого не замечают, но обычные 'смертные' видят все с первой секунды.
Вениамин Коноплев, подскажите пожалуйста, как мне настроить на тестовой машине с 16gb ram и 1тб диском (ничего больше, этого хватит даже для дедупликации, если что можно 32gb ram) что бы простейшая запись не заставляла головку диска носиться как сумасшедший, в свое время я что только не ковырял.. потребительское железо тупо не готово к zfs
rPman,
Причины, по которым ZFS может конкретно тупить:
1. Подняли ZFS поверх собранного рэйда с четностью (5го или 6го).
2. Пул занят более чем на 85%.
3. Неправильно выставлен параметр ashift.
Обратите внимание на №3. Параметр ashift задает родной размер сектора на диске. Если мне не изменяет память в какое-то время пошли диски с секторами 4к, но для совместимости эмулировали 512. С ними ZFS конкретно плохело, если ручками не выставить правильно.
Еще надо понимать, что в следствие архитектурных особенностей случайное чтение из VDEV мультиплицируется на все входящие в него диски. То есть если в обычном рэйде вы прочитаете 128К с одного диска, но в RAIDZ вы прочитаете примерно по (128K/N) с каждого из N дисков. Поэтому на операциях случайного чтения RAIDZ существенно уступает обычным рэйдам. Частично лечиться только установкой L2 кэша на базе SSD.
Вениамин Коноплев, у меня терабайтные WD blue, вычитал, что размер сектора у них - 512 КБ, что соответствует ashift 9. При создании ZFS в porxmox'е не стал вдаваться в эту деталь (я ж просто тестирую, ага) и выставил это параметр 12. При этом я не замечаю каких-то тормозов именно ZFS. Насколько критично неправильное указание этого параметра?
garirobert, в Вашем случае думаю не существенно, вот если бы было наоборот тога могло бы повлиять на случайную запись. Я вообще не понимаю смысла этой "эмуляции", когда родной сектор 4k, а диск заявляет что 512.
Система будет писать минимальными порциями по 512, а диску чтобы это выполнить надо считать сектор, который 4к, потом видоизменить у него сегмент 512 и потом записать все это обратно.
Вениамин Коноплев, на некоторых Seagate можно сделать quickformat с помощью seatools или аналога чтобы поменять размер блока диска. То есть можно 512е превратить в 4Kn.
Если хотите, чтобы на Вашем железе это "ожило" сделайте следующее:
1. Системный диск замените на серверный SSD.
2. От полноценной виртуализации перейдите к контейнерам.
3. Основную хранилку пересоберите: замените raid5 (судя по доступном объёму там именно он) на raid10.
4. Либо добавьте ещё хотя бы 8gb оперативки либо замените ZFS на mraid.
На Авито и маркетплейсах продаются куча вариантов на материнках x79, x99 и Xeon'ах. Например, в ближайшем городе с рук за 5 т.р. можно купить: Материнская плата x79g + Xeon E5 2650v2 + 32 gb(2x16gb) DDR3 ecc reg 1866mhz. Думаю, чем мучить имеющееся железо приобрету что-то похожее. Насмотрелся я тут ютуберов с их серверами из хлама...
А пока выключил ВМ с nextcloud'ами, машина более-менее ожила.
Просто купите наиболее производительный совместимый по TDP процессор для своего сокета FCLGA1155 и выполните рекомендации. Может даже память докупать не придется.
Nikopol25, docker это всего лишь надстройка на контейнерами Linux. Lхс, Lxd, Docker - кому что нравится.
У товарища вот ProxMox все это дело оркестрирует.