Nick
zfs выполняет журналирование на своем уровне, есть сомнения насчет того что это позволяет отключить журнал вложенной фс и не сделать хуже
можно при определенных условиях. Скорее всего если у ехт4 сделать сектор 16к, у мускля сделать олвейс синк, а у zfs сделать рекордсайз такой, что сектор от ехт4 + метадата войдет в одну запись... Но это прилично странное использование ресурсов будет
Nick
и надо проверять, могут быть неожиданные сюрпризы
Nick
С чего бы вдруг? Журнал в журнале в журнале? Для баз данных, у которых есть свой журнал, рекомендуют его как раз отключить в ФС по той же причине - чтобы не писать журнал для журнала
это только при определенных настройках мускля и при определенных настройках зфс. В случае непопадания хотя бы с одной стороны - будет потеря данных. Первый шаг к попаданию - везде сделать рекордсайз 16к
Nick
(простите за кучу комментов, раз в месяц чат читаю)
Nick
у меня больше 1Мб не позволяет ставить))
потому что надо специально разрешить - https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Workload%20Tuning.html#larger-record-sizes
Владимир
потому что надо специально разрешить - https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Workload%20Tuning.html#larger-record-sizes
да уже в курсе), но спасибо), в прочем мне не пригодилось ставить больше
Станислав
отключать журналирование в ext4, который поверх zfs плохая идея в ряде ситуаций, и особенно в дефолтных настройках ext4 - с очень большой гарантией можно получить поврежденные таблицы. Кроме того, мускль на ехт4 на зфс заведомо медленнее, чем нативно на любом из, а write amplification зашкаливает
Никаких повреждённых таблиц, я указал, что оставляю метаданные. Они пишутся как sync. При аварийном выключении и не совпадении метаданных с блоком данных, ext4 считает, что данных этих просто нет. Т.е., по сути, откат транзакции
Nick
да уже в курсе), но спасибо), в прочем мне не пригодилось ставить больше
есть некоторые сценарии, когда это очень имеет смысл. Они, в основном, про раздачу как-либо фильмов или потокового видео, особенно в сценарии, когда на сервере есть что-то другое и не хочется увеличивать max prefetch size
Nick
Никаких повреждённых таблиц, я указал, что оставляю метаданные. Они пишутся как sync. При аварийном выключении и не совпадении метаданных с блоком данных, ext4 считает, что данных этих просто нет. Т.е., по сути, откат транзакции
в описанном изначально сценарии мне видится большая вероятность того, что в данных получится смещение с наложением между границами блоков между mysql/ext4/zfs, и отбросится не запись, а таблица
Fedor
Все современные ФС размечтаются автоматом с заделом заведомо достаточного смещения
Fedor
Мегабайт или около того, что позволяет спозиционироваться почти в любой блоксайз или их комбинации
Nick
мы про другое )
Fedor
Оу, ок)
Станислав
в описанном изначально сценарии мне видится большая вероятность того, что в данных получится смещение с наложением между границами блоков между mysql/ext4/zfs, и отбросится не запись, а таблица
Смещение не будет. Во первых, мы фиксируем размер volblocksize. Во вторых, мы говорим ext4, что у нас данные не по размеру сектора записывать, а блоками по 16кб. Прочитайте, как работает stripe и для чего он нужен. Сценарий, для которого это придумали, ещё более сложный в плане смещения блоков
Nick
> мы говорим ext4, что у нас данные не по размеру сектора записывать, а блоками по 16кб А как мы это говорим ext4?
Nick
про это была занятная история у Перконы, когда года полтора считалась, что есть отличная оптимизация по скорости, а потом оказалось, что есть кейсы, когда половина записалась записи мускля, а половина нет. Я тоже когда-то на это наталкивался, последствия разбирать было больно, мускль проблему сдетектил очень не сразу
Nick
Потому, порядок действий такой: 1) Создаём zvol с нужным volblocksize 2) Создаём ФС, для многих из них есть параметры для тюнинга под размер блока данных, чтобы ФС их складировала не разрозненно. Например, в ext4 stride указывает, сколько кластеров должны формировать блок данных. Так как этот тюнинг рассчитан был на корректное размещение данных для raid в stripe, то, желательно, указать stripe-width. В случае с ZFS, он всегда равен stride. 3) Я отключал журналирование данных в ext4, так как у нас эту функцию выполняет zfs. Оставлял только метаданные. 4) Монтирование в виртуальной машине. К сожалению, не записал нигде. Насколько помню: data=ordered,noatime,nobarrier
перечитал часть про stride. В сочетании с отключенным журналом в ext4 не вижу почему бы стала невозможность ситуации, когда незаметно бы записалось меньше блоков, чем stride в сценариях типа пропадения питания, кернел паника, оом и любых крашей
Nick
очень давно трогал ext4 в нестандартных вариантах, но, помоему, без журнала эта штука не обеспечивает заявленного для поставленной задачи
Nick
по крайней мере на запись. Но могу ошибаться.
Станислав
перечитал часть про stride. В сочетании с отключенным журналом в ext4 не вижу почему бы стала невозможность ситуации, когда незаметно бы записалось меньше блоков, чем stride в сценариях типа пропадения питания, кернел паника, оом и любых крашей
Блоки то пишет ZFS. Если запись на завершиться корректно, то ZFS сделает откат - по сути обнулит. Ext4, в свою очередь, сверит этот пустой блок с метаданными, в случае не совпадения, считает блок не записанным, то есть равносильно тому, что данные не поступили
Nick
это было бы так, если бы у ext4 вместо stride использовался большой размер сектора
Станислав
Можно отбросить уровень с ZFS, он тут особо роли не играет в решении ext4 о несостоявшемся блоке данных
Nick
а вот именно на stride я сомневаюсь что так будет работать и не будет потери данных - если нет журнала
Nick
но истину, наверное, можно выяснить только если пойти читать формат метаданных, я не помню в нём ничего про stride и контрольные суммы (но пойду бегло погуглю)
Nick
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Checksums
Nick
Я не вижу здесь ничего про stride
Nick
т.е. когда после условно восстановления питания это читается - нет знания о том что второй сектор не записался
Nick
и это даже в нормальном серверном мире когда у нас всё с батарейкой
Nick
и вообще страйд не более чем про надежду на сделать скорость рейда чуть быстрее: is the number of logical blocks read from or written to the disk before moving to the next disk. This affects the placement of filesystem metadata, which will hopefully make RAID storage faster.
Nick
в смысле вообще нигде не написано что это что-то гарантирует, это поведение для чтения и записи, и не более
Δαρθ
Блоки то пишет ZFS. Если запись на завершиться корректно, то ZFS сделает откат - по сути обнулит. Ext4, в свою очередь, сверит этот пустой блок с метаданными, в случае не совпадения, считает блок не записанным, то есть равносильно тому, что данные не поступили
журнал в ехт4 не сам по себе, а в комплекте с синхронными записями в него. зфс ли, голый диск ли -- дают гарантии что синхронная запись в журнал завершилась. если ехт4 без журнала то зфс только дает гарантии что ее собственный стейт будет консистентным но НЕ момент или последовательность несинхронных записей со стороны ехт4 в нее
I
Всем привет! Думаю не будет считаться оффтопом, в общем вопрос в следующем, на виртуальной машине 1 из дисков не проходит чек файловой системы, фс диска - ext3, размечен в lvm, недавно выяснил, что для отказоустойчивости ext-3/4 могут использоваться барьеры, но на lvm они не поддерживаются. В общем-то вопрос заключается в том, существуют ли какие-то способы восстановить фс на диске с минимальными потерями, либо выборочно достать с него данные (fsck -y /dev/.. очевидно к ним приводит), используя особенности фс? в данном случае это ext3. Пример с барьерами - скорее особенность, как на будущее снизить вероятность поломок фс, что меня тоже интересует
central
не офтоп это конечно сильно, вам в чат по ext3/4
I
не офтоп это конечно сильно, вам в чат по ext3/4
направьте пожалуйста, у меня не получилось найти такой чат
vint._.243
Всем привет! Думаю не будет считаться оффтопом, в общем вопрос в следующем, на виртуальной машине 1 из дисков не проходит чек файловой системы, фс диска - ext3, размечен в lvm, недавно выяснил, что для отказоустойчивости ext-3/4 могут использоваться барьеры, но на lvm они не поддерживаются. В общем-то вопрос заключается в том, существуют ли какие-то способы восстановить фс на диске с минимальными потерями, либо выборочно достать с него данные (fsck -y /dev/.. очевидно к ним приводит), используя особенности фс? в данном случае это ext3. Пример с барьерами - скорее особенность, как на будущее снизить вероятность поломок фс, что меня тоже интересует
Самое первое сделать с него точную копию Если обычным dd не получается Воспользоваться ddrescue(dd_rescue) Не стоит ни когда работать напрямую со сбойным диском уж тем более бюджетным софтом который пытается выполнить хоть какую либо операцию записи (Самое минимальное это окисление контактной площадки на плате в районе перехода на БМГ, сами головы дохнут, далее уже поверхность) это самое распространённое . Причём окись в 50% точно, так делают Причём без разницы Энтерпрайз или бюджетка один колинкор. Сиги, Тошки почти все подвержены этому в 90% голая медь, очень очень редко покрыта оловом. WG 50% тоже самое, у Фуджиков меньше, HGST практически не встречает такой болячки, там либо луженое либо позолоченный разъём Так что стоит проверить Может это даже облегчит жизнь Звездочку для того чтобы плату скинуть и посмотреть найти не сложно, собственно как и ластик Что касаемо копии, то можно даже на рабочий диск её потом записать и подкинуть вместо оригинала и попробовать в штатном режиме пройти fsck, либо как уже написали выше это testdisk Но этот софт тоже напрямую с носителем работает и тоже пытается там что то писать о чем уже говорил выше Накройняк эту копию можно уже отдать ребятам с DR в дефолтном режиме запись в lvm идёт линейно, значит файло ломаться не должно p.s рекламировать специальное оборудование и ПО не любитель, но на примере того же PC3000 или других подобных девайсов, проблема решалась бы гораздо проще. Причём данный комплекс работает исключительно с копией блоков которые делает на ходу при обращении к какому либо в дальнейшем это место просто пропускается и может читаться с любого блока включая и повторное чтение и пропуск в случае проблем с носителем
Combot
Jack Mcguire has been banned! Reason: CAS ban.
Ivan
@neurox
I
@neurox
Ссылка была на статью на хабре
Ivan
Ссылка была на статью на хабре
придет админ, снимет блокировку. это бот автоматом от новорегов ссылки блочит.
Fedor
Момент
Fedor
Знать бы, как. Чуть позже разберусь. Скинь плз в личку - опубликую
I
Самое первое сделать с него точную копию Если обычным dd не получается Воспользоваться ddrescue(dd_rescue) Не стоит ни когда работать напрямую со сбойным диском уж тем более бюджетным софтом который пытается выполнить хоть какую либо операцию записи (Самое минимальное это окисление контактной площадки на плате в районе перехода на БМГ, сами головы дохнут, далее уже поверхность) это самое распространённое . Причём окись в 50% точно, так делают Причём без разницы Энтерпрайз или бюджетка один колинкор. Сиги, Тошки почти все подвержены этому в 90% голая медь, очень очень редко покрыта оловом. WG 50% тоже самое, у Фуджиков меньше, HGST практически не встречает такой болячки, там либо луженое либо позолоченный разъём Так что стоит проверить Может это даже облегчит жизнь Звездочку для того чтобы плату скинуть и посмотреть найти не сложно, собственно как и ластик Что касаемо копии, то можно даже на рабочий диск её потом записать и подкинуть вместо оригинала и попробовать в штатном режиме пройти fsck, либо как уже написали выше это testdisk Но этот софт тоже напрямую с носителем работает и тоже пытается там что то писать о чем уже говорил выше Накройняк эту копию можно уже отдать ребятам с DR в дефолтном режиме запись в lvm идёт линейно, значит файло ломаться не должно p.s рекламировать специальное оборудование и ПО не любитель, но на примере того же PC3000 или других подобных девайсов, проблема решалась бы гораздо проще. Причём данный комплекс работает исключительно с копией блоков которые делает на ходу при обращении к какому либо в дальнейшем это место просто пропускается и может читаться с любого блока включая и повторное чтение и пропуск в случае проблем с носителем
Спасибо за развернутый ответ, только диск виртуальный, это диск на ВМ в openstack
Fedor
Может грязные страницы на промежуточных этапах не сбросились
DaySandBox
Item @human_like_unix has been added to list user-whitelist
Fedor
Вроде должно сработать
vint._.243
Спасибо за развернутый ответ, только диск виртуальный, это диск на ВМ в openstack
С Openstack не работал из того что я понял устройства разные, значит на уровне хоста всегда можно получить доступ к диску Либо что мешает подкинуть в эту же виртуалку доп диск нужного объёма и той же ливкой сделать копию и все остальное
I
Можно его вытащить через опенстак кли
понял, думал может есть какие-то утилиты, которые служат аналогом, как например для физических дисков - восстановление на специальном оборудовании, так и для виртуальных дисков можно как-то восстановить специальным ПО - ну это просто предположение
Fedor
Сторадж в опенстеке достаточно абстрагирован, чтобы не задумываться о битых блоках в большинстве случаев.
I
С Openstack не работал из того что я понял устройства разные, значит на уровне хоста всегда можно получить доступ к диску Либо что мешает подкинуть в эту же виртуалку доп диск нужного объёма и той же ливкой сделать копию и все остальное
Копия была сделана(снапшот вольюма), вот такая догадка появилась, если загрузиться с лайв или просто с другой ОС - приаттачить проблемный диск - запустить fsck -n для сбора логов о путях поврежденных файлов, и попробовать эти повреждённые файлы вытянуть с битой фс, а потом её восстановить так же через fsck, или это слишком оптимистично чтобы быть возможным?)
Fedor
Лучше сразу приговорить этот волюм от дальнейшего использования и использовать инструменты полного сканирования и вытягивания того что нашлось
Fedor
Надёжнее в будущем будет :)
Fedor
Вот, судя по всему что-то произошло с ним
Похоже на грязные страницы которые не сбросились.
Fedor
Причём в большом количестве
Fedor
Под все ОС есть, названия не помню - надо искать. Можно посмотреть утилиты по форензике- там точно должно быть
Fedor
https://www.r-studio.com/data-recovery-software/ У этих ребят бесплатные рабочие решения есть
I
Понял, спасибо, буду что-нибудь из этого пробовать
Mikhail
Привет. Есть несколько NVMe samsung 970PRO. ZFS guide, да и здравая логика, готовит что надо форматировать устройства в 4K страницы. Но смотрю в smartctl / nvme-cli, а там только 512байт-ные страницы. Попытка zfs send с raidz2 на данных дисках показывает печальный random read (7MBps с устройства): avg-cpu: %user %nice %system %iowait %steal %idle 0.13 0.00 6.20 0.00 0.00 93.67 Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util nvme0n1 12847.00 6658.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme10n1 12983.00 6734.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme1n1 12924.00 6702.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.99 100.00 nvme2n1 12877.00 6683.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme3n1 12885.00 6704.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme4n1 12908.00 6706.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme5n1 12862.00 6676.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme6n1 12812.00 6503.00 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme7n1 12849.00 6522.50 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme8n1 12820.00 6665.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme9n1 13093.00 6789.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.08 100.00 Вопрос - чтобы увеличить скорость работы с дисками (random read/write) надо ashift поднять до 12-13 (сейчас он 0) или искать как диски отформатировать под 4K страницы ? Нагрузка - это random read/write (PostgreSQL и прочие)
Roman
Привет. Есть несколько NVMe samsung 970PRO. ZFS guide, да и здравая логика, готовит что надо форматировать устройства в 4K страницы. Но смотрю в smartctl / nvme-cli, а там только 512байт-ные страницы. Попытка zfs send с raidz2 на данных дисках показывает печальный random read (7MBps с устройства): avg-cpu: %user %nice %system %iowait %steal %idle 0.13 0.00 6.20 0.00 0.00 93.67 Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util nvme0n1 12847.00 6658.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme10n1 12983.00 6734.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme1n1 12924.00 6702.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.99 100.00 nvme2n1 12877.00 6683.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme3n1 12885.00 6704.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme4n1 12908.00 6706.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme5n1 12862.00 6676.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme6n1 12812.00 6503.00 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme7n1 12849.00 6522.50 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme8n1 12820.00 6665.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme9n1 13093.00 6789.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.08 100.00 Вопрос - чтобы увеличить скорость работы с дисками (random read/write) надо ashift поднять до 12-13 (сейчас он 0) или искать как диски отформатировать под 4K страницы ? Нагрузка - это random read/write (PostgreSQL и прочие)
отформатируй сами накопители в 4к
Roman
Если они поддерживают
Ivan
вообще эти ссд вроде 8к, как и многие другие
Roman
Привет. Есть несколько NVMe samsung 970PRO. ZFS guide, да и здравая логика, готовит что надо форматировать устройства в 4K страницы. Но смотрю в smartctl / nvme-cli, а там только 512байт-ные страницы. Попытка zfs send с raidz2 на данных дисках показывает печальный random read (7MBps с устройства): avg-cpu: %user %nice %system %iowait %steal %idle 0.13 0.00 6.20 0.00 0.00 93.67 Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util nvme0n1 12847.00 6658.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme10n1 12983.00 6734.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme1n1 12924.00 6702.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.99 100.00 nvme2n1 12877.00 6683.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme3n1 12885.00 6704.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme4n1 12908.00 6706.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme5n1 12862.00 6676.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme6n1 12812.00 6503.00 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme7n1 12849.00 6522.50 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme8n1 12820.00 6665.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme9n1 13093.00 6789.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.08 100.00 Вопрос - чтобы увеличить скорость работы с дисками (random read/write) надо ashift поднять до 12-13 (сейчас он 0) или искать как диски отформатировать под 4K страницы ? Нагрузка - это random read/write (PostgreSQL и прочие)
Покажи вывод nvme id-ns /dev/nvme0n1
Станислав
Привет. Есть несколько NVMe samsung 970PRO. ZFS guide, да и здравая логика, готовит что надо форматировать устройства в 4K страницы. Но смотрю в smartctl / nvme-cli, а там только 512байт-ные страницы. Попытка zfs send с raidz2 на данных дисках показывает печальный random read (7MBps с устройства): avg-cpu: %user %nice %system %iowait %steal %idle 0.13 0.00 6.20 0.00 0.00 93.67 Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util nvme0n1 12847.00 6658.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme10n1 12983.00 6734.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme1n1 12924.00 6702.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.99 100.00 nvme2n1 12877.00 6683.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.05 100.00 nvme3n1 12885.00 6704.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme4n1 12908.00 6706.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.07 100.00 nvme5n1 12862.00 6676.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme6n1 12812.00 6503.00 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme7n1 12849.00 6522.50 0.00 0.00 0.08 0.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.06 100.00 nvme8n1 12820.00 6665.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.03 100.00 nvme9n1 13093.00 6789.50 0.00 0.00 0.08 0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.08 100.00 Вопрос - чтобы увеличить скорость работы с дисками (random read/write) надо ashift поднять до 12-13 (сейчас он 0) или искать как диски отформатировать под 4K страницы ? Нагрузка - это random read/write (PostgreSQL и прочие)
через nvme-cli можно изменить страницы с 512 на 4К, почти уверен
Mikhail
Если они поддерживают
Supported LBA Sizes (NSID 0x1) Id Fmt Data Metadt Rel_Perf 0 + 512 0 0 Только один формат показывает smartctl
Станислав
Мда...
Mikhail
Покажи вывод nvme id-ns /dev/nvme0n1
NVME Identify Namespace 1: nsze : 0x773bd2b0 ncap : 0x773bd2b0 nuse : 0x988 nsfeat : 0 nlbaf : 0 flbas : 0 mc : 0 dpc : 0 dps : 0 nmic : 0 rescap : 0 fpi : 0x80 dlfeat : 0 nawun : 0 nawupf : 0 nacwu : 0 nabsn : 0 nabo : 0 nabspf : 0 noiob : 0 nvmcap : 1024209543168 nsattr : 0 nvmsetid: 0 anagrpid: 0 endgid : 0 nguid : 00000000000000000000000000000000 eui64 : 0025385c01419ebe lbaf 0 : ms:0 lbads:9 rp:0 (in use)
Roman
Ага, только 512)
Станислав
Тогда забей, про эти диски говорят, что там на самом деле 8-16Мб и нужно при создании пула указать соответствующий ashift