Правильно ли KVM / QEMU поддерживает mdadm RAID5?

Я не могу добиться чего-либо близкого к полезной производительности, используя гостевой файл, расположенный в массиве mdadm RAID5. Я полагал, что оптимизировал все параметры массива и файловой системы для лучшей производительности R5:

  • set bitmap = none
  • set stripe-cache = 32768 (пробовал от 256-32768)
  • EXT4 stride = 128 / stripe-width = 384 (блок 512 КБ, блок FS 4K, 3 диска данных)

Очень хорошая производительность массива на хосте (105 МБ без кеша, 470 МБ с кешем). Он состоит из 4 жестких дисков, относительно медленный.

  • Нет никакой разницы, является ли файл образа сырым или qcow2
  • Пробовал и Virtio SCSI, и Virtio SATA
  • Пробовал все комбинации кеша, также в гостевой системе сам (Windows 10 и Linux)

Неужели KVM / QEMU не очень хорошо работает с массивами RAID5 mdadm?

Похоже, это проблема задержки (похожая на то, что я видел на ESXi с локальными дисками).

enter image description here

Задержка почти 17 секунд и средняя скорость записи 1-10 МБ

Пример из virt XML:

<disk type='file' device='disk'>
   <driver name='qemu' type='raw' cache='writeback'/>
   <source file='/mnt/R5_DATA/data2.raw'/>
   <target dev='sdd' bus='scsi'/>
   <address type='drive' controller='0' bus='0' target='0' unit='3'/>
</disk>

<controller type='scsi' index='0' model='virtio-scsi'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>

Хост: Debian 9 stretch (ядро 4.9.0-8-amd64) enter image description here

2
задан 10 March 2019 в 20:25
2 ответа

После тщательного тестирования можно получить очень хорошую производительность. Есть несколько обстоятельств, которые сильно различаются:

  • Версия md (т.е. ядро), KVM / QEMU и версия virsh
  • конфигурация кэша для вашего гостя (настройка кэша в вашем файле virsh XML)
  • Конфигурация MD , особенно размер блока stripe_cache и (должен быть установлен низкий 64 КБ)
  • Оптимизация файловой системы EXT4, например используйте noatime и в зависимости от резервного копирования UPS и т. д. отключите ведение журнала и барьеры.

Я использовал стабильную версию Debian (9, Stretch), и это означает, что вы используете очень старую версию ядра, QEMU и virsh: - (

Я перешел на стабильную версию Ubuntu по той же причине, которая даст вам огромный скачок к новым версиям этих важных компонентов. На мой взгляд, стабильный Debian - действительно плохой выбор. Предполагается, что когда будет выпущен 10 / Buster, это будет нормально для периода, но рано или поздно у вас будет устаревшая система.

Во-вторых, было совершенно очевидно, что вам нужно использовать страничный кеш хост-системы. . При использовании MD RAID5 происходит некоторое предварительное кэширование. Даже когда кеш заполнен, производительность очень хорошая. В моем случае более 200 МБ / с записываются на медленные диски, которые в конфигурации JBOD работают со скоростью около 100 МБ / с.

Использование cache = none в XML и последующее использование кеша страниц гостевой системы Windows приведет к очень низкой производительности. Другое дело, SSD.

Не забудьте также поиграть с настройками кэша страниц в гостевой системе Windows для текущего диска, чтобы получить наилучший результат.

1
ответ дан 3 December 2019 в 12:30

Не хватает нескольких трюков. Вы должны убедиться, что весь стек системы хранения выровнен для достижения оптимальной производительности. Вам нужно начать с размера ввода-вывода верхнего уровня и оптимизировать его. Например, создайте гостевую файловую систему NTFS с кластерами по 64 КБ, используйте блочные устройства LVM (остерегайтесь аномалий выравнивания LVM) и оптимизируйте свой программный RAID для фрагментов по 64 КБ. Если вы должны использовать файлы для поддержки блочных устройств ВМ, убедитесь, что файловая система выровнена таким же образом, особенно обращая внимание на размер вашей группы блоков (опция -g в mkfs.ext*), чтобы убедиться, что ваши группы блоков не все запускаются на одном диске. Если рабочая нагрузка вашего приложения верхнего уровня использует блоки меньшего размера, выполните выравнивание для блоков меньшего размера, но принцип тот же.

Я написал статью о том, как обеспечить оптимальное выравнивание файловой системы для конкретной рабочей нагрузки, которая может оказаться вам полезной.

1
ответ дан 19 August 2020 в 19:49

Теги

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