ZFS: Рекомендации по настройке 1x NVMe в качестве ARC и ZIL и 4x SSD для zvols для виртуализации

Недавно при тестировании системы ZoL мы обнаружили низкую производительность случайного и последовательного чтения и низкую производительность случайной записи на наших SSD.

Наша система представляет собой полосу из двух SSD Samsung 1 ТБ 850Evo для тестирования производительности ZFS, и это было ужасно по сравнению с LVM: чтение происходит медленнее, чем с жестких дисков, а запись не соответствует ожидаемым 1,7 ГБ, которые мы получаем на LVM. Это странно, потому что наш сервер резервного копирования FreeBSD имеет медленные жесткие диски и более старый тип SSD и работает лучше в том же тесте.

Система несколько лишена оперативной памяти (zfs получает 4 ГБ для arc, а все остальное используется виртуальными машинами), однако с без кеша и без синхронизации производительность все равно даже близко ни к чему.

Таким образом, мы планируем покупать новые системы на базе AMD Epyc и настраивать либо полный NVMe, либо NVMe с твердотельными накопителями с отключением кеша, чтобы хотя бы немного освободить оперативную память из ZFS (мы хотим, чтобы он использовал максимум 10 ГБ для всего). На самом деле нам не нужны все функции безопасности ZFS, кроме контрольной суммы (но с SSD это кажется избыточным, поскольку SSD работает с внутренней системой контрольной суммы), поэтому SSD будут полоской vdevs.

Мы предпочитаем ZFS для zle on thin -предусмотренные zvols и простота создания моментальных снимков и инкрементного резервного копирования в удаленную систему (которая также работает с ZFS).

Однако борьба за производительность тяжелая ...

Был бы очень признателен за любой совет

1
задан 1 February 2018 в 11:37
4 ответа

Если кому интересно. Мы думаем, что основная проблема - это оперативная память (наш ARC ограничен 4 ГБ, поэтому все остальное съедает система). На данный момент дело с ZFS - он не готов для SSD и / или NVMe. Он был создан для жестких дисков, медленных и громоздких с их глупыми головками, механикой и предсказуемыми проблемами.

С твердотельными накопителями и NVMe ZFS выполняет глупые вещи, которые им не нужны, и не делает того, что им действительно нужно. Когда была изобретена ZFS, о энергонезависимой ОЗУ больше не думали о кэше.

Теперь мы можем разместить 4x pcie SSD в системе с 4 ТБ пространства.

В таком случае есть 2 способа справиться с этим. . Либо дайте ему достаточно памяти, и пусть он правильно работает на ваших SSD с накладными расходами, которые он предоставляет. Или не использовать ZFS.

Жалко, потому что его структурные преимущества довольно хороши. Но он не может правильно обрабатывать твердотельные накопители без более высокого использования оперативной памяти, чем с жесткими дисками, потому что все настройки и конфигурация говорят ему, что "базовые системы медленные, необходим кеш, чтение мало, запись большая и последовательная", когда твердотельные накопители быстрые, не нужны кеш, может читать большие и писать большие и делать случайные правильно. С Optane такие проблемы будут очевидны.

Вещи, которые более или менее не нужны, - это обширное кэширование, контрольная сумма каждого файла на уровне записи (это не имеет смысла, потому что если у вас есть bitrot на уровне SSD, вы должны выбросьте весь диск, так как для такой системы нет смысла, потому что он может сломать контроллер, разрушив все ваши данные, это похоже на плохую RAM). SIL вообще не нужен. ARC также бесполезен, особенно с приводами Optane (он увеличивает накладные расходы на ЦП и ОЗУ). Размер записи должен быть полностью ограничен для записи транзакций, которые понимает диск.

Или просто используйте LVM для обеспечения KVM в системах. Тонкое выделение ресурсов не идеально, но, по крайней мере, вам не нужно тратить чрезвычайно ценную оперативную память на то, чтобы ваши твердотельные накопители работали на должном уровне.

0
ответ дан 3 December 2019 в 17:02

Nke mbụ, ZFS checksumming bụ ọ ​​bụghị ejighi oru: ọ bụ njedebe na njedebe (RAM na mgbasa ozi anụ ahụ) cheksum, ebe HDD / SSD checksum dị ka "n'ime mgbasa ozi "njehie njikwa. Iji nweta ihe yiri ya na faịlụ faịlụ oge ochie, ị nwere iji T10 / DIF dakọtara diski na ndị njikwa, nke ngwaọrụ SATA enweghị (a manyere gị iji SAS SSD, nke dị oke ọnụ karịa).

Nke ahụ kwuru, obere arụmọrụ arụmọrụ na ZVOLs n'ozuzu ya bụ n'ihi obere ndabara ndenye 8K, nke pere mpe iji mee ka metadata buru ibu mana ọ pere mpe iji gbochie ịgụ-gbanwee-ede akwụkwọ usoro maka 4K na-ede.

Ọzọ nsogbu na ndị ahịa SATA SSD diski (dị ka Samsung 850 EVO gị Samsung) bụ na ha enweghị nchekwa nchekwa ọ bụla, yabụ ZFS na-ewepụ ha mgbe niile maka ederede ederede metadata na synchronous data na-ede.

Na agbanyeghị, ị Ọ kwesịrị inye anyị nkọwa ndị ọzọ gbasara usoro akara aka gị na njedebe njedebe nke ụwa na-atụ anya ka ị nweta azịza ziri ezi.

3
ответ дан 3 December 2019 в 17:02

Arụ ọrụ dara ogbenye n'ihi na mmezi ZFS adịghị mma maka ihe ị na-eme. You nwere ihe ọ bụla dị na /etc/modprobe.d/zfs.conf ? Ọ bụrụ na ọ bụghị, ọ chọrọ ụfọdụ ntugharị .

  • VM ga-agba ọsọ na otu nkesa dị ka nrụnye ZFS? ọ bụ naanị uru maka synchronous dee ọrụ, dị ka na-eweta NFS ka VMware na ụfọdụ ọdụ data.
  • M na-eji 128K ngọngọ size maka ZFS nchekwa na nwa afọ diski.
  • Maka Linux, zvols kwesịrị ịbụ volblocksize = 128K
  • Ana m eji ashift = 13 maka ihe niile-SSD ZFS zpools, ashift = 12 maka ihe ọ bụla.
  • A gbanyụọ ARC. Kwusi ya ma ọ bụrụ na ọ dị mkpa, mana ọ dị ka ịnweghị nnukwu RAM.
  • Ekwekwala checksumming.
  • DO enable LZ4 compression! Ọ dịghị ihe kpatara ya.
  • Gịnị ka ị na-ezube ime na NVMe + 4xSSD?
2
ответ дан 3 December 2019 в 17:02

В частности, если кто-то использует докер (как я), UFS не является настоящим производственным решением, если вы регулярно собираете или имеете много контейнеров и томов (как Я делаю :)).

Поскольку docker может использовать серверную часть ZFS, все равно найдутся люди, которые захотят использовать SSD и Optane в своей системе с ZFS.

@Andrew Я столкнулся с некоторыми из тех же проблемы, которые вы сделали, и мне пришлось исправить мои проблемы с огромной оперативной памятью (32 ГБ для ARC). общий сервер теперь имеет 128 ГБ ОЗУ, но может обеспечивать потрясающую производительность, на которую способны немногие системы.

Еще одна группа людей - это люди, использующие полосы ZFS на AWS для обхода BurstIO - по сути, все ваши SSD-тома EBS просто ждут, чтобы начать показ SATA 5.4K любит производительность, как только ваш взрывной баланс падает. В такой ситуации я вижу, что ZFS внезапно переключается на большой последовательный ввод-вывод, чтобы не отставать. так что пока мои приложения отслеживают пакетный баланс и сокращают количество операций ввода-вывода, ZFS будет пытаться поддерживать разум.

Я ожидаю, что нечто очень похожее испытают люди, работающие с VMWare, когда их многоуровневый массив хранения с гипервиртуализацией за пределами здравого смысла начинает пытаться динамически управлять производительностью в тяжелые времена большого количества операций ввода-вывода и увеличения задержки

. Мне известны конструкции систем хранения, в которых в качестве пула записи используется существенно большой кэш ОЗУ - это в основном означает, что хранилище сообщает, что все записи являются попаданиями в кеш, на диск происходит позже

По крайней мере, я знаю, что с ZFS это сделали настоящие программисты.

Таким образом, ZFS на твердотельных накопителях еще имеет некоторую ценность :) - это зависит от того, с какими проблемами вы столкнетесь.

0
ответ дан 3 December 2019 в 17:02

Теги

Похожие вопросы