zvol для образа виртуальной машины - плюсы и минусы

Образы виртуальных машин можно размещать как на файловой системе, так и на блочных устройствах, таких как физические или логические тома. В ZFS существует возможность создания томов, и я не первый, у кого возникает желание разместить на них образ виртуальной машины.

Какое-то время назад я уже пробовал размещать виртуальные диски для VirtualBox на zvol на хост системе FreeBSD, и тогда у меня возникло ощущение ухудшения производительности. Также использование zvol в качестве хранилища делало менее удобной работу в самом VirtualBox, из-за чего я отказался от этой идеи.

Но... внезапно встала задача переноса виртуальной машины Windows 2003 с VMware ESXi на Xen. Во избежание возникновения небольшой священной войны, побудившие к этому причины я опущу. Так как Xen развёрнут на Debian с установленным ZOL, перед принятием решения о размещении образа захотелось провести тестирование производительности дисковой подсистемы.

В качестве нагрузчика дисковой подсистемы был взят первый предложенный Google нагрузчик для Windows - iometer. Беглый взгляд на iometer показал, что это не самый идеальный продукт, но для оценки производительности должен подойти.

Первый раз тест был запущен на системе без установленных драйверов паравиртуализации Xen, а образ виртуальной машины размещён в файле на ZFS с компрессией lz4. После чего были установлены драйвера паравиртуализации и произведено повторное тестирование.

Далее данные были перенесены на zvol и проведено тестирование:
- с размером блока 4KB (размер блока в NTFS) и 128KB (по умолчанию);
- без компрессии и с LZ4 компрессией.

Во всех случаях iometer запускался на 10 минут, Access specification был выбран "All in one", т.е. размером блока от 512 байт до 32KB.

Полученные результаты сведены в таблице. В качестве дополнительной характеристики приведена степень сжатия данных на ZFS.

Размещение на файловой системе на zvol
Драйвера паравиртуализации Нет Есть
Размер блока   4K 128K
Сжатие lz4 lz4 off lz4 off
IOPS 1165 1691 684 685 538 482
Скорость, MB/s 14.93 21.68 8.77 8.79 6.89 6.19
Утилизация CPU, % 20.83 6.07 2.57 2.62 1.99 1.93
Степень сжатия 1.94 1.18 1 1.25 1

Можно заметить, что использование сжатия LZ4 не ухудшает результаты, а в остальном результаты на столько красноречивы, что даже не требуют каких либо комментариев.

Правда можно предложить изменение методики тестирования и/или нагрузчика, и если у Вас есть конкретные предложения по проведению повторного тестирования, то для получения более достоверных (?) результатов я готов потратить дополнительное время.

Коротко о себе:

Работаю в компании Tune-IT и ассистентом кафедры Вычислительной техники в СПбГУИТМО.

Очень люблю команду cat и ставить core solaris.