nikolay
если взять год 2015, то zol действительно был нестабильный и мог рассыпаться (расползались индексы внутри пула).
Alexander
разве sync=none не отключает журналирование вообще?
Вероятно отключает как минимум честную синхронизацию для определенного датасет, а зачем отключать что-еще типа журнала?
Alexander
пушо журнал в зфс средство быстро зафиксировать синхронные записи
Зачем торопиться их фиксировать, если есть договоренность, что они асинхронны на самом деле?
Alexander
ну я и говорю, если sync=none то и журнал он же zil не нужен
Почему? А вдруг при записи питание пропадет. Речь о целостности вообще, а не с точки зрения программы, которая писала.
Alexander
потому что cow )
Одного cow мало, нужен полный ACID ! но немного нечестный только по времени.
Alexander
ZFS - это же почти СУБД.
Δαρθ
почему мало-то. пока суперблок не перезаписан старая версия фс. переписали с указателем на новое дерево - новая версия фс
Δαρθ
все атомарно
Alexander
ну х.з, я не системный программист, но имхо лучше бы оставить как и обычно, просто по времени сдвинуть, на когда оперативка закончится или когда освободится очередь.
Alexander
По крайне мере, чтобы не пришлось ждать очередь на ZIL + данные.
nikolay
c 0.7 с таким не сталкивался. с 2019 года
Vladimir
c 0.7 с таким не сталкивался. с 2019 года
интересно, у меня сервер работает на 0.7.5 , там починили уже или надо ждать что все может развалится?
nikolay
интересно, у меня сервер работает на 0.7.5 , там починили уже или надо ждать что все может развалится?
не совсем понимаю ваши опасения. ждать можно все что угодно - землятресения, цунами, мировой войны.. вероятность наступления любого события !=0..
Vladimir
не совсем понимаю ваши опасения. ждать можно все что угодно - землятресения, цунами, мировой войны.. вероятность наступления любого события !=0..
да, поэтому мы ждём что диски начнут сбоить - делаем raid , пользователи будут удалять нужные файлы - делаем инкрементные бэкапы, в серверной может быть пожар - делаем offsite backup
nikolay
читайте баг треккер по 0.7 ветке, обновитесь до 0.8.x, если хотите что-то сделать. вы описываете стандартные превентивные меры, примените их в качестве страховки от soft bug
Vladimir
для начала спрашиваю у экспертов (тут)
Vladimir
кстати, какие рекомендации есть по поводу железа для создания файл сервера на ~ 400тб ? (статью на openzfs docs читал).
Vladimir
нагрузка какая будет?
будет NFS сервер для обслуживания кластера для обработки научных данных. Ожидается что будет ~ 10 compute node, соединённых через 10gbe. В основном все операции последователое чтение и запись файлов по 20-100мб.
riv
будет NFS сервер для обслуживания кластера для обработки научных данных. Ожидается что будет ~ 10 compute node, соединённых через 10gbe. В основном все операции последователое чтение и запись файлов по 20-100мб.
Впечатление такое, что вы можете упереться в скорость обмена данными с дисками. Нужно продумать способ соединения дисков с сервером. 400ТБ, - это условно 80 дисков в mirror. Я конечно с такими конфигурациями не сталкивался, но могу лишь посоветовать обратить внимание на уменьшение полосы пропускания из-за использования экспандеров. Используйте 16-портовые HBA и не увлекайтесь экспандерами. Разместите метаданные на SSD, вам потребуется несколько ТБ SSD. Подойдёт что-то вроде intel P4610 в mirror разумеется. По процессору, могу предположить, что должно быть пару десятков ядер, напрашивается AMD EPYC2. Заполняйте все каналы памяти. Настройки по умолчанию подходят под ваши данные. Можно, на мой взгляд не значительно, повысить скорость на некоторых видах нагрузки используя 1М recordsize но это усложнить модификацию фалов. Я не знаю упретесь ли вы в какое нибудь внутренне ограничение zfs по линейной скорости.
Δαρθ
вот кстати. recordsize это МИНИМАЛЬНЫЙ или МАКСИМАЛЬНЫЙ размер блока? с 1M у меня любой мелкий 2к файл займет мегабайт или с 128к файлопомойка с фотками нарезана будет по 128к?
Vladimir
Впечатление такое, что вы можете упереться в скорость обмена данными с дисками. Нужно продумать способ соединения дисков с сервером. 400ТБ, - это условно 80 дисков в mirror. Я конечно с такими конфигурациями не сталкивался, но могу лишь посоветовать обратить внимание на уменьшение полосы пропускания из-за использования экспандеров. Используйте 16-портовые HBA и не увлекайтесь экспандерами. Разместите метаданные на SSD, вам потребуется несколько ТБ SSD. Подойдёт что-то вроде intel P4610 в mirror разумеется. По процессору, могу предположить, что должно быть пару десятков ядер, напрашивается AMD EPYC2. Заполняйте все каналы памяти. Настройки по умолчанию подходят под ваши данные. Можно, на мой взгляд не значительно, повысить скорость на некоторых видах нагрузки используя 1М recordsize но это усложнить модификацию фалов. Я не знаю упретесь ли вы в какое нибудь внутренне ограничение zfs по линейной скорости.
сейчас есть сервер с 55*14TB дисками, используется как cold storage, поэтому скорость работы не критичная. железо: supermicro 6049p-e1cr60l , 2*xeon 4114 , 128gb ram , для новой системы думаю на то тему supermicro 6049sp-e1cr60 с дисками на 18тб и кэш на быстрых ssd и памяти побольше
George
зато файлы больше рекордсайза будут иметь последний блок, равный рекордсайзу (но сжатие от этого помогает)
George
для начала спрашиваю у экспертов (тут)
архитектурно zfs надёжнее, если вы доверяете кратким экспертам в этом чате
George
Vladimir
special alloc class - must have
сейчас там 0.7 крутится, вроде эта фича только у 0.8 есть?
nikolay
для начала спрашиваю у экспертов (тут)
считайте что вам дали эскпертный совет про просмотр баг треккера и обновление до 0.8.х
nikolay
будет NFS сервер для обслуживания кластера для обработки научных данных. Ожидается что будет ~ 10 compute node, соединённых через 10gbe. В основном все операции последователое чтение и запись файлов по 20-100мб.
лучше имхо для таких целей развернуть lustre поверх zfs хотя бы на трех-четырех нодах. один сервер под nfs с большой долей вероятности не справиться при записи одновременно со всех нод. плюс nfs плохо обрабатывает шары с большим количеством файлов (> нескольких млн). распределенная файловая система оптимальна для таких кейсов. причем lustre поверх zfs это рекомендованная конфигурация
Vladimir
да, lustre как раз для научных данных и используется обычно
ну 10 клиентов это в будущем, сначала там будет 4. Люстру я наблюдаю как пользователь на большом кластере, где иногда свои задачи считаю, там 1000 нод и петабайты данных и целая команда сисадминов.
Alexander
Впечатление такое, что вы можете упереться в скорость обмена данными с дисками. Нужно продумать способ соединения дисков с сервером. 400ТБ, - это условно 80 дисков в mirror. Я конечно с такими конфигурациями не сталкивался, но могу лишь посоветовать обратить внимание на уменьшение полосы пропускания из-за использования экспандеров. Используйте 16-портовые HBA и не увлекайтесь экспандерами. Разместите метаданные на SSD, вам потребуется несколько ТБ SSD. Подойдёт что-то вроде intel P4610 в mirror разумеется. По процессору, могу предположить, что должно быть пару десятков ядер, напрашивается AMD EPYC2. Заполняйте все каналы памяти. Настройки по умолчанию подходят под ваши данные. Можно, на мой взгляд не значительно, повысить скорость на некоторых видах нагрузки используя 1М recordsize но это усложнить модификацию фалов. Я не знаю упретесь ли вы в какое нибудь внутренне ограничение zfs по линейной скорости.
А имеет ли смысл поднять CEPH поверх ZFS? или ZFS поверх CEPH? или даже так ZFS (со снэпшотами) -> CEPH -> несколько узлов ZFS (без снэпшотов - просто софт пулы zmirror и логическими zvol для CEPH)? IMHO обслуживать zpool на bare metal куда приятнее, чем что-либо еще, всевозможные аппаратные рейды и т.п.
Alexander
Но и поверх CEPH тоже был бы удобен привычный ZFS с send | receive
Vladimir
мне как-то спокойней с теплым ламповом nfs пока
riv
А имеет ли смысл поднять CEPH поверх ZFS? или ZFS поверх CEPH? или даже так ZFS (со снэпшотами) -> CEPH -> несколько узлов ZFS (без снэпшотов - просто софт пулы zmirror и логическими zvol для CEPH)? IMHO обслуживать zpool на bare metal куда приятнее, чем что-либо еще, всевозможные аппаратные рейды и т.п.
С точки зрения производительности, уверен, что нет. У меня не большой опыт работы с CEPH, и довольно старый, но я карем глаза слежу за этой темой и пока выводы менять рано: ceph - это не про производительность, ceph надо уметь готовить, иначе вы можете неожиданно легко лишиться данных.
riv
Но и поверх CEPH тоже был бы удобен привычный ZFS с send | receive
Разве у ceph нет своего аналога send | receive для инкрементальной репликации? Вроде было.
Nick
special alloc class - must have
ну это спорно, это держать еще зеркало из нвме, дрожать за него и бекапить всё целиком на еще один такой же сервер без special alloc class
Alexander
Разве у ceph нет своего аналога send | receive для инкрементальной репликации? Вроде было.
Так хотелось бы не свой, а ZFS для совместимости с бэкап сервером ZFS.
Alexander
чтобы что? Чтобы было больше точек отказа и мест где можно потерять данные?
Чтобы 1) сделать распределенную файловую систему для снижения нагрузки на одну железку ZFS, 2) можно поднять 3-4 узла CEPH, где 1-2 избыточные?
nikolay
Про цеф есть свой чат - задайте вопросы про скрещивание ежа и ужа там. Потом отфорвардите сюда ответы
George
ну это спорно, это держать еще зеркало из нвме, дрожать за него и бекапить всё целиком на еще один такой же сервер без special alloc class
А что спорно то? Special alloc class это тот же vdev технически, какая разница что на бекапном сервере его не будет, а перформанс очень хорошо добавит.
Nick
А что спорно то? Special alloc class это тот же vdev технически, какая разница что на бекапном сервере его не будет, а перформанс очень хорошо добавит.
например, его надо как минимум зеркалить например, в силу интенсивности использования или перегрева оба ссд/нвме диска умирают одновременно
Nick
на мой вкус - гораздо больше имеет смысл большой slog и большой l2arc, но возможно я чего-то в этом не понимаю
George
на мой вкус - гораздо больше имеет смысл большой slog и большой l2arc, но возможно я чего-то в этом не понимаю
Все эти три вещи - абсолютно про разное, и смысл измерять стоит от потребностей. При этом special vdev на hdd пуле снимет с hdd мелкие иопсы и дико ускорит работу с метаданными = листинг и тд
George
Slog поможет только с синхронной записью, а l2arc вообще специфичная штука и сначала стоит забить озу по максимуму для arc
Nick
а, ну вот, если бы был аналог слог для асинхронной записи, которая потом неспешно переезжает на пул хдд - вот это было бы интересно
Nick
а Special alloc class, которые в любой момент могут пропасть вместе со всеми данными - это какой-то еще один способ выстрелить себе в ногу
Nick
ну т.е. я не знаю, может есть сценарии, когда потерять так много данных - ок
Nick
еще раз, вот сценарий - очень много данных на много ссд. добавляем special allocation class на нвме. Если нвме умирает - все данные теряются, верно?
George
Какая разница какой вдев терять
Nick
если мы делаем просто миррор на двух нвме и они умирают от износа флеша - они умирают в один день, верно?
Nick
а если у них хронический перегрев то они умирают в один день контроллером
Nick
ну, в общем случае, к сожалению, факт, хотя иногда везет.
George
George
Только этого не происходит)
Nick
если он зеркало из двух - происходит. В остальных случаях все лучше
Nick
т.е. я про самый распространненый сценарий - когда special allocation class - это один или два нвме
Nick
есть высокий риск проблем
Nick
если special allocation class на например raidz3 то всё ок
George
т.е. я про самый распространненый сценарий - когда special allocation class - это один или два нвме
Никто не запрещает сделать тройной миррор из разных дисков