Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Бенчмарк: ZFS против mdraid + ext4 + qcow2

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Бенчмарк: ZFS против mdraid + ext4 + qcow2, Proxmox Виртуальная Среда
     
    Kurgan
    Guest
    #1
    0
    19.12.2018 11:09:00
    После борьбы с жадностью ZFS к памяти, плохой производительностью и случайными перезагрузками, я просто заменил его на mdraid (raid1), ext4 и простые образы qcow2 для ВМ, хранящиеся в файловой системе ext4. Эта настройка, вероятно, самая неэффективная из-за множества уровней абстракции (md и файловая система должны "проходиться" для достижения данных ВМ), но мы всё равно заметили пятиразовое улучшение в отзывчивости ВМ, времени выполнения запросов к базе данных внутри ВМ и скорости резервного копирования (vzdump) в продакшене. Кроме того, больше никаких перезагрузок, и вся оперативная память теперь доступна для ВМ, а не только половина. Я провел некоторые тесты в лабораторной среде. Оборудование: 64 ГБ ОЗУ, два процессора Xeon. Контроллер дисков: простой SATA3, интегрированный в материнскую плату сервера. Конфигурация дисков: 2x WD GOLD по 2 ТБ. Первый тест: стандартная установка PVE 5.2 (с CD, без онлайн-обновлений), используя RAIDZ-1. Я загрузил простой бэкап ВМ (3 ГБ данных на виртуальном диске) и выполнил vzdump "на месте", то есть я сохранял ВМ с одного и на тот же физический диск. Время для выгрузки 3 ГБ данных (с использованием функции "резервное копирование" по умолчанию в PVE): 12 минут. Второй тест: на том же оборудовании я установил Debian 9 с md raid 1 и файловой системой ext4 поверх устройства md. Затем я загрузил тот же бэкап ВМ и протестировал ту же, идентичную процедуру. Время для выгрузки 3 ГБ данных (с использованием функции "резервное копирование" по умолчанию в PVE): 2 минуты 6 секунд. Это ШЕСТИКРАТНОЕ УЛУЧШЕНИЕ. ВЫВОДЫ: Пожалуйста, разработчики PVE, ПЖЛСТ, ПЖЛСТ, ПЖЛСТ, рассмотрите возможность предложения mdraid в качестве стандартного пути установки для ISO-образов PVE. Мне довольно ясно, что у ZFS есть много недостатков: он медленный, жаден к памяти и склонен к сбоям (из-за ситуаций OOM). ПРЕДУПРЕЖДЕНИЯ: Я знаю, что мне следует использовать правильный RAID-контроллер и LVM, и отказаться от ZFS. Но зачем тратить кучу денег на RAID-контроллер, когда в некоторых недорогих (и среднемоечных) конфигурациях md raid работает действительно хорошо? Я знаю, что в первом тесте использовалась PVE 5.2, а во втором - 5.3 (из бесплатных репозиториев PVE). Всё же я не думаю, что улучшение производительности вызвано использованием 5.3 вместо 5.2. Я знаю, что могу настроить ZFS, чтобы он перестал использовать половину доступной ОЗУ, но всё равно скорость только ухудшится. Я знаю, что могу настроить PVE на Debian, как я и сделал, и не беспокоить разработчиков PVE, спрашивая о том, что могу сделать сам, но мне всё-таки трудно поверить, что так сложно поддерживать LVM на mdraid в качестве опции настройки. Что не так с mdraid? Я использую его повсюду, я использую его уже 15 лет (может, 20), и у меня НИКОДА НЕ БЫЛО НИКАКИХ ПРОБЛЕМ.
     
     
     
    LnxBil
    Guest
    #2
    0
    11.01.2019 19:49:00
    Первое: Я слышу ваши жалобы, но не стал бы так всё чернить. Мои первые шаги с ZFS много лет назад были очень похожи на ваши. Я также сталкивался с OOM (Out Of Memory) и крайней медлительностью. За почти два года на системах ZFS у меня не было ни одного OOM, и я использую их просто ради функционала, а не ради скорости по сравнению с "глупым блочным или файловым хранилищем". Вы написали, что у вас два диска и вы создали Raidz1? Зачем? Вы сравниваете несравнимое. Вам следовало создать зеркальный vdev в этой конфигурации. Больше информации здесь: https://constantin.glez.de/2010/01/23/home-server-raid-greed-and-why-mirroring-still-best/ Вы забываете, что ваша система ext4-qcow2 также будет использовать столько оперативной памяти, сколько сможет. Большинство людей не осознают этого, поскольку это поведение по умолчанию для каждой современной операционной системы. Для "реальных" бенчмарков всегда используют прямые I/O пути или очищают кеши, чтобы получить правильные показатели. Дело в том, что ZFS использует максимум 50% ОЗУ на Linux, а кэш страниц по умолчанию не имеет ограничений. С другой стороны, оба вида хранилищ страдают от малого объема кэша и будут медленными. Еще один важный аспект — это ваше оборудование. ZFS не является бюджетной потребительской файловой системой, как семья ext, это файловая система для оборудования класса "предприятие" и корпоративных решений. Два медленных диска, максимум с 7200 об/мин, не будут достаточно быстрыми — ни для чего. ZFS не будет хорошо работать на таких машинах, зачем ему это делать? Он не был для этого спроектирован. ZFS — это файловая система без ограничений... но на дальнем конце спектра. Вам стоит сравнить её в более широком контексте с большим количеством дисков и стандартным mdadm и ext4. У ext4 также есть много ограничений, которых нет у ZFS, таких как параллельный доступ и прочее. Мы тоже использовали mdadm... на протяжении десятилетий, без каких-либо проблем, но мы перешли почти на все системы, которые были достаточно большими, на ZFS. Да, он не так быстр, как мог бы быть, но это связано с теми функциями, которые нам действительно понравились: * прозрачная сжатие (это обеспечивает даже более высокую пропускную способность чтения/записи, чем ext4, в зависимости от ваших данных — даже на бюджетном оборудовании) * восстановление вместо глупого 1:1 копирования/паритета при пересоздании (или создание пула в 100 ТБ, который изначально уже высокодоступен) * в дополнение к сканированию / патрульным чтениям — прозрачное самовосстановление при каждом чтении. * поддержка обрезки (не по отношению к оборудованию, а к виртуальному диску) * 100% подтверждение валидности данных в зеркале из двух дисков. В глупом зеркале mdadm из двух дисков невозможно понять, какие данные верные, если блок не совпадает на обоих дисках. * снимки и возможность их передачи очень, очень эффективно (также репликация) Последний шаг был большой проблемой на mdadm с внешними резервными копиями. Мы снизили время внешнего резервного копирования через репликацию ZFS в почти 100 раз по сравнению с rsync, потому что можем передавать инкрементально и не обязаны копировать сами резервные копии на внешний диск, а только изменения. Это также требует гораздо меньшего объема памяти и, следовательно, позволяет сохранить более длинную историю или использовать меньшие диски. Этот факт полностью убедил нас выбрать ZFS, потому что вы просто не можете сделать это на системе, не основанной на CoW. Это также может помочь в вашем случае: vzdump В конфигурации ext4 вам нужно использовать vzdump, чтобы иметь что-то, что можно скопировать в другое место в качестве резервной копии. Да, вы можете сделать это и с ZFS, но делать это не следует, вам нужно сделать снимок вашей ВМ и передать гораздо меньшие дифференциальные данные на ваш резервный сайт. Это всегда будет быстрее, чем vzdump, потому что вам нужно лишь читать данные, присутствующие в самом новом снимке. Если у вас есть ZFS на вашем PVE (который, к сожалению, работает только на отдельных узлах и не в кластере с общим хранилищем), вы можете делать снимки и реплицировать с помощью встроенных инструментов, чтобы иметь резервную систему, имеющую, например, 15-кратную задержку. Полностью невозможно в конфигурации ext4 с mdadm. Итак, пару слов о производительности: медленнее ли он, чем ext4 на каком-то тестовом оборудовании? Да, конечно. Я использовал его на Raspberry PI 1-3, и он был почти мертвым медленным, но работал. Он определенно медленнее ext4 в системе с 2 или 4 дисками SATA на программном RAID. Но по нашему опыту (и я имею в виду всех сторонников ZFS здесь) он не в два раза медленнее, чем ext4 в различных сценариях использования.
     
     
     
    Kurgan
    Guest
    #3
    0
    21.01.2019 12:47:00
    LnxBil, спасибо за ответ. Пожалуйста, подождите, я в отчаянии из-за проблем с OOM и зависаниями (медлительность — это проблема, но не основная). Я ошибся, сказав, что использую RAIDZ-1. На самом деле это просто RAID1, созданный с помощью ZFS. Я неправильно понял термин. Я пытаюсь добиться стабильной и не слишком медленной системы на более или менее бюджетном оборудовании. Теперь я понял, что ZFS медленный на недорогих системах (диски SATA 7200 об/мин, без кэша SSD). Я также понимаю, что у него есть свои преимущества (много отличных функций, которые, вероятно, идут в ущерб скорости). Но я не понимаю, почему он так склонен к OOM ситуациям и перезагрузкам. Или, может быть, более точно, почему PVE с ZFS так подвержен этим проблемам. Если ZFS действительно требует высокопроизводительного оборудования (64 ГБ ОЗУ или больше, несколько дисков SAS 15k и т.д.), я считаю, что это должно быть четко указано в документации PVE. Когда я впервые подошел к PVE, я думал, что ZFS может быть правильным решением, когда у вас нет достойного контроллера RAID, поэтому я решил использовать его на недорогом сервере. (На самом деле у меня были зависания и перезагрузки даже на сервере с 64 ГБ ОЗУ).
     
     
     
    mbaldini
    Guest
    #4
    0
    22.01.2019 11:13:00
    Я использую Proxmox на потребительском оборудовании (жесткие диски, настольные материнские платы, память без ECC) всегда с ZFS, и для очень ограниченного количества ВМ скорость в целом приемлема. Лучшее улучшение, которое я только что начал внедрять, — это переход от жестких дисков к SSD. Обычно я использую два SSD начального уровня (серия Samsung EVO) в ZFS RAID-1 для установки Proxmox и виртуальных дисков, которым нужна большая скорость (ОС, базы данных, приложения), а затем добавляю 2 или более HDD (SATA 7200 об/мин) в RAID1 или RAID10 для хранения данных. У меня максимум 3 Windows ВМ на каждом сервере. У меня хорошие времена безотказной работы (некоторые серверы при меньших затратностях работают уже 2 года), и мне странно, что у вас OOM и перезагрузки, возможно, вы слишком сильно переобеспечиваете. Я стараюсь оставлять минимум 512МБ свободной оперативной памяти, в каждом сервере в /etc/sysctl.d у меня есть конфигурационный файл с кодом: vm.swappiness = 0 vm.min_free_kbytes = 524288
     
     
     
    Kurgan
    Guest
    #5
    0
    22.01.2019 11:34:00
    Я не переоснащаю (или, по крайней мере, мне кажется, что не делаю этого). У меня, например, есть сервер на 16 ГБ, который до вчерашнего дня имел: 8 ГБ кэша ZFS ARC, 3 ГБ для одной ВМ, 1 ГБ для другой (всего 12 ГБ), и я не мог запустить третью ВМ на 1 ГБ, потому что KVM сказал, что не может выделить память. Теперь я уменьшил ARC до 4 ГБ (нужен перезагруз, потому что кэш ARC НИКОГДА не уменьшается), и я смог запустить третью ВМ. Этот сервер определенно не переоснащён, на мой взгляд. Другой сервер имеет 32 ГБ ОЗУ, 16 ГБ используется в ZFS ARC, запущены 4 ВМ, всего 12 ГБ ОЗУ (так что у меня должно быть 4 ГБ неиспользуемых), и он аварийно завершает работу и перезагружается примерно раз в месяц, всегда во время выполнения резервного копирования (vzdump). Я попробую уменьшить размер ARC до 8 ГБ и посмотрю, если с 12 ГБ свободной памяти он перестанет падать. Все мои хосты — это серверы начального уровня, Xeon с ECC-памятью и дисками SATA Nearline на 7200 об/мин, с настроенной swappiness на 0 и без установленного "min_free". Единственные хосты, которые вообще не показывают проблем, — это те, что не используют ZFS.
     
     
     
    mbaldini
    Guest
    #6
    0
    22.01.2019 11:51:00
    Попробуйте настроить vm.min_free_kbytes, чтобы всегда оставалась свободная память для Proxmox. Я это настраиваю на каждом сервере Proxmox, и, как я уже говорил, у меня нет проблем с зависаниями или перезагрузками. В ваших примерах, я думаю, что ваше максимальное значение ZFS ARC слишком велико, у Linux тоже есть свой кэш, и даже если он освобождается при необходимости, это занимает некоторое время. Если вашим виртуальным машинам нужно около половины оперативной памяти хоста (и если вы выделяете, например, 1 ГБ виртуальной машине, то эта машина использует не только 1 ГБ, а немного больше, можете проверить сами), я бы установил максимальный ZFS ARC в одну треть оперативной памяти, не больше, чтобы не создавать слишком высокую нагрузку на память. Старайтесь никогда не достигать 75% используемой оперативной памяти.
     
     
     
    Kurgan
    Guest
    #7
    0
    22.01.2019 12:13:00
    Я определенно уменьшю ZFS ARC, потому что теперь мне ясно, что он занимает слишком много оперативной памяти и никогда не возвращает ее, даже при низком объеме памяти. Документация утверждает, что он должен это делать, но это не так. Он не отдает ни байта оперативной памяти. Тогда я попробую использовать ваши настройки и посмотрю, перестанут ли мои серверы зависать.
     
     
     
    guletz
    Guest
    #8
    0
    22.01.2019 20:41:00
    Привет, @Kurgan. Да, zfs в самом начале действительно сложен, и если не попробовать прочитать, переосмыслить и снова прочитать документацию, будет тяжело. Самое трудное — понять, как это чудовище работает. Но если ты готов потратить много часов, со временем твои zfs настройки начнут улучшаться. У zfs много настроек, которые можно сделать, даже на серверах с малым объемом памяти. Я использую zfs много лет на разных десктопах с 2 ГБ ОЗУ (в то время это не был proxmox) и с множеством сервисов. Но мне повезло, я столкнулся всего с парой перезагрузок. Теперь с Proxmox большинство моих узлов имеют 16 ГБ ОЗУ (базы данных, файловые серверы и многие другие, включая nfs, lizardfs и т.д.). Ни одной аварии или перезагрузки. Один трюк — использовать кэш zfs только для метаданных. Если ты используешь рекомендованный размер блока для своего создателя БД, можешь получить отличную производительность (с рядом других индивидуальных настроек zfs). Так что, если что-то не работает так, как ты надеялся, используя zfs, скорее всего, проблема кроется в твоих знаниях или неверном понимании твоей данных окружения (я повторяю эту мысль себе снова и снова, пока не удается решить свою проблему с zfs). Удачи!
     
     
     
    mbaldini
    Guest
    #9
    0
    23.01.2019 08:55:00
    Ваше заявление ложно. Просто продолжайте следить за размером ARC с помощью команды: arcstat 1, и вы сами увидите, что выделение ARC динамическое: оно увеличивается, когда есть запросы и свободная память, и уменьшается, когда требуется память (например, вы запускаете другую виртуальную машину, и свободной оперативной памяти недостаточно). Но требуется несколько секунд, чтобы освободить выделенную RAM, поэтому в случае слишком низкого объема свободной RAM и высокой нагрузки на память могут возникнуть проблемы. Поэтому мой совет: никогда не доводите использование оперативной памяти до 75% (общий объем ARC + оперативная память, выделенная виртуальным машинам + немного дополнительной оперативной памяти для каждой виртуальной машины + немного RAM для Proxmox) и задайте vm.min_free_kbytes.
     
     
     
    Kurgan
    Guest
    #10
    0
    23.01.2019 10:21:00
    Guletz и mbaldini, спасибо за ваши ответы. Я не эксперт по ZFS, использую его впервые в Proxmox, так как это его выбор по умолчанию для программного RAID. Раньше я всегда использовал md и ext4. Меня озадачивает тот факт, что у ZFS так много проблем в Proxmox, и, судя по тому, что я прочитал на этом форуме, ZFS очень плохо настроен в Proxmox. Вы (и многие другие) говорите мне настроить ZFS в Proxmox, чтобы он работал правильно, а я спрашиваю себя, почему эти настройки не являются настройками по умолчанию и почему об этом нет документации в Proxmox. Я пока выяснил следующее: я не должен использовать swap на ZFS (а Proxmox делает это по умолчанию, и это не настраивается в установщике). По крайней мере, область swap на ZFS должна иметь primarycache=metadata, logbias=throughput и sync=always, и это не было так до последних версий PVE. Я должен установить primarycache=metadata для всех томов ZFS, а не только для области swap, и Proxmox этого не делает. Я должен ограничить использование ОЗУ ARC, а Proxmox этого не делает, и документации по этому поводу очень мало. Я должен установить vm.min_free_kbytes не менее 512K, swappiness на ноль, и в любом случае никогда не использовать более 75% ОЗУ, а документации об этом нет, и swappiness не установлен на 0 по умолчанию установщиком. Размер ARC действительно должен быть динамическим, но я наблюдал случаи, когда, после установки arc_max во время работы, кэш никогда не освобождал ни одного байта, даже когда возникали ситуации OOM. Я считаю, что все эти настройки должны быть установлены по умолчанию (когда это возможно) и задокументированы в руководстве по ZFS для PVE, иначе не рекомендуется использовать ZFS в PVE, если у вас нет предварительных знаний о самом ZFS. Мне кажется, что ZFS в PVE — это работа в процессе, и он недостаточно стабилен для использования в производстве, если вы не обладаете достаточной квалификацией, чтобы настраивать его на основе своих знаний о самом ZFS. Сейчас мне интересно использование primarycache=metadata для тома, содержащего образы ВМ, я уже применил другие настройки и рекомендации к моему "тестовому серверу", который на самом деле является производственным, так что я очень осторожен в тестировании. Требует ли эта настройка перезагрузки? Улучшает ли она производительность, если у меня небольшой размер ARC (4 ГБ)?
     
     
     
    mbaldini
    Guest
    #11
    0
    23.01.2019 10:45:00
    В последних версиях установщика это изменилось, теперь вы можете зарезервировать немного свободного пространства на диске/дисках при установке Proxmox, а затем настроить своп на этом свободном пространстве. Я никогда не нуждался в этом, это может зависеть от вашего оборудования, вашей рабочей нагрузки и так далее. Официальная документация Proxmox о ZFS: https://pve.proxmox.com/wiki/ZFS_on_Linux, там есть глава: Ограничьте использование памяти ZFS. Очень мало документации? Снова, это не может быть по умолчанию, потому что это зависит от ваших виртуальных машин, вашего оборудования, вашей рабочей нагрузки и т.д. Если вы человек, который должен управлять сервером, вы должны знать эти вещи. В противном случае вы можете заплатить кому-то с опытом или напрямую обратиться в службу поддержки команды Proxmox за платную подписку. Я думаю, что если вам нужно управлять сложной системой, такой как виртуализированный хост в производственной среде, вы должны хорошо знать и быть компетентным в том, что вам нужно управлять. Это не отличается от Vmware и других платформ виртуализации. Это только мои 2 копейки, я дал вам свои советы исходя из своего опыта с Proxmox, который небольшой, около 30 хостов Proxmox, большинство из них автономные, некоторые в кластере, я пробовал ceph, пробовал DRBD, использую репликацию ZFS и так далее. Обычно я тестирую технологии в своей лаборатории, прежде чем продавать их, чтобы быть готовым к решению проблем и оптимизации для каждой рабочей нагрузки клиента. Хорошего дня!
     
     
     
    LnxBil
    Guest
    #12
    0
    24.01.2019 10:26:00
    Спасибо, @mbaldini, вот мои дополнительные два цента: Нет, вам не нужно этого ограничивать. На самом деле, по умолчанию для ZFS в Linux используется не более половины вашей оперативной памяти, что совершенно нормально и не вызывает никаких проблем. Если вы хотите еще больше ограничить, вы можете это сделать, но, как отметил @mbaldini, ARC может и будет сжиматься, если потребуется место. Я не знаю, почему в вашем случае этого не происходит, но обычно так и бывает. Не могли бы вы выполнить это на вашем сервере: Код: pveversion -v
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры