Vladislav
(ИМХО - Если упор производительность - не надо туда ZFS)
вы хотите zfs внутри вм на одном диске ?
Верно + связка его с block volume, если возможно/оправдано.
Vladislav
Как это можно проверить?
..... Рекомендую сперва изучить KVM, за сим я пожалуй удаляюсь
(ИМХО - Если упор производительность - не надо туда ZFS)
Скорее баланс сохранность данных с небольшим оверхедом по производительности.
..... Рекомендую сперва изучить KVM, за сим я пожалуй удаляюсь
Уточнил информацию. Да, это блочное хранилище в KVM, Writeback отключен.
Roman
Добрый день! Планирую поднимать ZFS (ZoL) на сервере в качестве Root'а. Гипервизор KVM, Oracle Cloud. Ядро всегда свежее, возможна компиляция под себя. Конфигурация: 24 GB RAM, 4 vCPU (AARCH64, Ampere Altra), 50GB (boot volume) + 200GB на Block Volume c динамической/фиксированной регулировкой IOPS. Нагрузка: nginx/h2o, крупная база rocksdb как часть хоумсервера Matrix. В дальнейшем планируется подъем крупной базы postgre для нового сайта. Подскажите пожалуйста, какие опции выбрать при создании пула с учетом данного конфига и перспективы: датасеты, ashift, arc и прочее? Насколько оправдано объединение Boot Volume + Block Volume и какие Best Practice стоит использовать в таком кейсе? Упор идет на performance. Буду благодарен за любой совет. Опыта работы с ZFS практически нет - был в планах, но т.к. сейчас разворачиваю новую инфраструктуру, хочется перейти сразу, чтобы позднее не переносить все снова. Все накопители в KVM на Oracle Cloud, HDD RAID нет. Предоставлю все необходимые данные, если этого недостаточно. Спасибо!
Для чего зфс?
Для чего зфс?
Баланс перф/сохранность с хешированием, сжатие + инкрементальные бекапы (есть куда) и бесплатные снапшоты, с учетом плюсов для СУБД (no-WAL). Хочется задействовать вторую блочку в один пул с балансировкой, если это имеет смысл. Да и в целом попробовать/оценить применение, пока в состоянии хобби-проекта. За опытом и пришел, может были подобные юзкейсы.😅 На данный момент, дефолтная ext4. Самое тяжелое что будет - это БД: rocksdb+postgre.
George
Добрый день! Планирую поднимать ZFS (ZoL) на сервере в качестве Root'а. Гипервизор KVM, Oracle Cloud. Ядро всегда свежее, возможна компиляция под себя. Конфигурация: 24 GB RAM, 4 vCPU (AARCH64, Ampere Altra), 50GB (boot volume) + 200GB на Block Volume c динамической/фиксированной регулировкой IOPS. Нагрузка: nginx/h2o, крупная база rocksdb как часть хоумсервера Matrix. В дальнейшем планируется подъем крупной базы postgre для нового сайта. Подскажите пожалуйста, какие опции выбрать при создании пула с учетом данного конфига и перспективы: датасеты, ashift, arc и прочее? Насколько оправдано объединение Boot Volume + Block Volume и какие Best Practice стоит использовать в таком кейсе? Упор идет на performance. Буду благодарен за любой совет. Опыта работы с ZFS практически нет - был в планах, но т.к. сейчас разворачиваю новую инфраструктуру, хочется перейти сразу, чтобы позднее не переносить все снова. Все накопители в KVM на Oracle Cloud, HDD RAID нет. Предоставлю все необходимые данные, если этого недостаточно. Спасибо!
как старт https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Workload%20Tuning.html
Спасибо!
Ivan
к слову, использование zfs не напрямую на железе противоречит бестпрактисам.
George
к слову, использование zfs не напрямую на железе противоречит бестпрактисам.
использование в вмках в облаках - нормальная практика нынче, если сторадж без резервирования - то в полной красе zfs раскрывается, если с резервированием - то для фич аля сжатие и снапшоты
George
обожаю кейс, о котором когда-то в mailing lists openzfs писали - люди брали у aws около-локальные nvme и zfs юзали для сжатия, чтобы на них ПОМЕЩАЛОСЬ что им нужно (nvme физические ограничены макс. размером)
George
проблема только имадж получить сразу с zfs, начать чтоли собирать их, или кто видел уже готовые?
Y
Я знал что ZFS живучая ❤️ , но не знал что на столько !!! После ресильвера и скраба 0 ошибок !
Δαρθ
Я знал что ZFS живучая ❤️ , но не знал что на столько !!! После ресильвера и скраба 0 ошибок !
1 диск совсем исчез, на двух других ошибки не в одних и тех же местах, раид6 -- неудивительно что всё ок. Но -- повезло в любом случае, N+2 же
Vladislav
Y
1 диск совсем исчез, на двух других ошибки не в одних и тех же местах, раид6 -- неудивительно что всё ок. Но -- повезло в любом случае, N+2 же
ну там история длиннее намного... начали потихоньку сыпатся диски (9 лет некоторые крутятся уже) я время от времени скрабил, но руки всё не доходили... когда уже 4 диска (тут на картинке только 3 видно) стали сыпать ошибками таки собрался.... основная проблемма была в том что первый же диск который я поставил на замену - сам оказался битый (я удачно их 6 живых подержанных (со старого НАСа) дисков таки выбрал битый) и его выкинуло... дальше свистопляска с заменами - почти неделю взало тула сюда...
Y
потом я одновременно в процессе ресильвера переехал с САТА на САС экспандер и он похоже глючный оказался (вот эти миллионы ошибок на нём были) и еще 1 второй диск выкинулся новый из ребилда... потому там реплейс такой - типа один диск мертвый второй выкинутый третий в процессе - вот этот третий тоже потом выкинуло и я еще один поставил... ну а потом уже остальные диски потихоньку....
George
Я не видел готовые. Тоже хотел делать, для инсталла Проксмокса
осилить чтоли, как раз в облаке своём поднимать удобнее тестовое)
George
если будут желающие саппортить конкретный дистр - можем попробовать скооперироваться
George
мб даже получится это под openzfs организацию протащить
Vladislav
осилить чтоли, как раз в облаке своём поднимать удобнее тестовое)
Я на гитхабе нашел три репы, делающих сборку дебиан с зфс, но все они разной степени работоспособности
Станислав
мб даже получится это под openzfs организацию протащить
Вот это уже интересно. Давно есть желание и немного необходимость на Debian такое иметь. Есть даже самописный скрипт на баше, который lvm превращает в RootOnZFS, и preceed образ, который устанавливает ОС на lvm. А если иметь ZFS сразу на борту... В общем я готов выступить желающим саппортить.
Roman
Я не видел готовые. Тоже хотел делать, для инсталла Проксмокса
Зачем собирать образ для установки прокса, если есть образ от прокса?
Roman
в котором нужно через KVM тыкать опции
https://pve.proxmox.com/wiki/Automated_Installation
Vladislav
https://pve.proxmox.com/wiki/Automated_Installation
пробуйте , потом расскажете, как он все криво ставит
Vladislav
Я на гитхабе нашел три репы, делающих сборку дебиан с зфс, но все они разной степени работоспособности
https://github.com/hn/debian-buster-zfs-root https://github.com/snsinfu/hetzner-zfs-image (TF + Packer) https://github.com/mprzybylski/debian-live-zfs-root-bootstrap и Creating Debian ZFS Rescue USB Image https://wiki.valde.fr/tips/zfs/live-with-zfs/
George
по сути нужен имадж с вшитым cloud-init который будет поддерживать нужные облака
Александр
А кто-нибудь делал дашборд графаны для ZFS?
Vladislav
по сути нужен имадж с вшитым cloud-init который будет поддерживать нужные облака
Мне этого мало. Мне надо образ Дебиана , установленного на zfs
George
Мне этого мало. Мне надо образ Дебиана , установленного на zfs
ну понятно, что всё это на zfs, штатные имаджи конечно же есть без него
Vladislav
На штатный имидж Дебиана легко устанавливается Клауд инит
George
На штатный имидж Дебиана легко устанавливается Клауд инит
осталось из этого конструктора собрать дебиан на zfs с клаудинитом, да)
Vladislav
А дальше? Как сконвертнуть с ext2/ext4 на zfs?
George
ну ленивый вариант это перенос, а чистый вариант это сразу на zfs имадж готовить, в целом ничего хитрого, автоматизация debootstrap для дебиана
Fedor
А кто-нибудь делал дашборд графаны для ZFS?
Я делал, но это был иллюмос и самописный экспортер с kstat и чуть dtrace.
Fedor
Мониторились даже иопсы и мбпс на зволах
George
А кто-нибудь делал дашборд графаны для ZFS?
если что https://openzfs.github.io/openzfs-docs/man/master/8/zpool_influxdb.8.html
Александр
если что https://openzfs.github.io/openzfs-docs/man/master/8/zpool_influxdb.8.html
А, это я видел. Красивая штука, но у нас прометеус, не инфлюкс... Хотя, хм, можно глянуть, как оно организовано и хоть что-то позаимствовать
Ivan
!ban @dima_liok
Group Butler
Ivan banned Дмитрий!
Vladislav
Спс
Free
На одном из серверов заметил значительную нагрузку на CPU от arc_prune и arc_evict. Порой до 100% доходит. В интернетах один из советов (помимо глобального - разобраться, кто может чрезмерные запросы на память запрашивать) - установить zfs_arc_max равным zfs_arc_mix - вроде тогда ARC prune вообще отключается: if needed, set zfs_arc_min the same as zfs_arc_max (basically disabling ARC prune). Но у меня они установлены равными (8GB при общем объеме 64GB). От чего еще может ARC prune возбуждаться? PS И вообще чрезмерной нагрузки на память нет, раз есть запас не используемой: root@S04:~# free -m total used free shared buff/cache available Mem: 64230 60560 2663 4 1715 3669 Swap: 976 973 3
Упс - еще на одном сервере стал (подозреваю, что) arc_prune гадить 😡. И вот на нем с выделением памяти ВООБЩЕ никаких подозрений: available 101GB из 128!!! На zfs_arc_min выделено 8GB, на zfs_arc_max тоже. Сервер Supermicro X9, 2 × XEON E5-2609v2 память ECC (Samsung M386B4G70DM0-CMA4Q) Backplane SAS 6Gbs 24×SAS2/SATA3 SuperMicro BPN-SAS2-846EL1 HDD WD140EDGZ-11B1PA0 Debian 12 bookworm zfs version zfs-2.2.3-1~bpo12+1 zfs-kmod-2.2.3-1~bpo12+1 Работают (несколько месяцев без проблем) только в докере несколько контейнеров нод Storj (ну сейчас еще zfs receive принимает очередную ноду). За контейнерами слежу - вроде никакой лишней нагрузки на CPU или память не замечено, а порой всё останавливается вплоть до того, что с клавиатуры ничего не вводится, при этом в консоли никаких системных сообщений об ошибках не возникает. Куда копать 🤔?
D⁣en⁣is
А, это я видел. Красивая штука, но у нас прометеус, не инфлюкс... Хотя, хм, можно глянуть, как оно организовано и хоть что-то позаимствовать
Использую zfs_exporter с github-а для оценки занятого места пулами/датасетами и свой скрипт, который экспортирует инфу по ошибкам на дисках в prom-файлы для node-exporter. В дашборде ничего интересного, просто графики и инфа о состоянии пула. Могу поделиться...
D⁣en⁣is
Free
разбирай свой раидз не тащит он)
Да это я с raidz уже на одиночные диски всё перетащил... Несколько месяцев все нормально было. Но сейчас еще несколько нод добавляю к имеющимся - может, они порог допустимого превысили
Nikita
/report
Group Butler
/report
Reported to 1 admin(s)
Ivan
😡
интересно, поможет ли замена дистра на debian, например.
Станислав
интересно, поможет ли замена дистра на debian, например.
Так чуть выше написано, что на втором сервере с Debian 12 проявилось
Nikita
Мы сейчас до CentOS и rhel доползем
фряху ставьте, к черту эти полумеры! 😁
Nikita
Там докера нет)))
ну вообще есть, если ооочень хочется. но лучше jail-ы, конечно) ладно, заканчиваю офтоп))
George
как раз про ARC патчик прилетел сегодня https://github.com/openzfs/zfs/pull/16197 , думаю другой случай, но емнип в 2.2.3 уже несколько патчей против arc_prune уже прилетало
George
мб ещё что-то крутилось?
Free
zfs_arc_max 8гб на 24 диска имхо как-то жадно-мало, iostat что говорит про нагрузку на IO?
Советуют ведь размер arc в зависимости от данных: для файлсерверов побольше, для баз данных по минимуму. У меня storj, он редко одно и то же запрашивает, а тем более никогда не запрашивает то, что только что записал.
George
для БД такой совет только если у БД есть свой кеш
George
и то it depends тоже
George
Советуют ведь размер arc в зависимости от данных: для файлсерверов побольше, для баз данных по минимуму. У меня storj, он редко одно и то же запрашивает, а тем более никогда не запрашивает то, что только что записал.
пусть кеш работает, если после записи данные не затребовались, то они итак быстро из озу уйдут, ARC устойчив к вымыванию, у него не только LRU но и MFU
Free
Ну попробую сейчас увеличить. Но основной вопрос вот в чем: Если ему сказано иметь максимум равный минимуму, с определенынм значением - то нафига он его размер менять пытается? Допустим, я согласен вообще без него обойтись - как ему сказать, чтобы он не пытался "сделать как лучше" и размер менять?
Free
пусть кеш работает, если после записи данные не затребовались, то они итак быстро из озу уйдут, ARC устойчив к вымыванию, у него не только LRU но и MFU
Да, я читал, что и пропорция LRU/MFU еще и меняться может динамически, но здесь не только последние данные не потребуются, но и вероятность запросить уже (несколько раз) запрошенный кусок тоже ничтожна.
George
Ну попробую сейчас увеличить. Но основной вопрос вот в чем: Если ему сказано иметь максимум равный минимуму, с определенынм значением - то нафига он его размер менять пытается? Допустим, я согласен вообще без него обойтись - как ему сказать, чтобы он не пытался "сделать как лучше" и размер менять?
данные в ОЗУ всё равно окажутся (на записи), если прям уверены что кеш на чтение не нужен, то можно выставить primarycache=metadata (но не рекомендую) не стоит экономить неиспользованную память, бОльший кеш всегда упрощает жизнь, даже если он штатно быстро дропнется. min=max кстати может такой эффект дать, думаю, я бы вернул в дефолты и тестил дальше