Образы виртуальных машин можно размещать как на файловой системе, так и на блочных устройствах, таких как физические или логические тома. В 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 не ухудшает результаты, а в остальном результаты на столько красноречивы, что даже не требуют каких либо комментариев.
Правда можно предложить изменение методики тестирования и/или нагрузчика, и если у Вас есть конкретные предложения по проведению повторного тестирования, то для получения более достоверных (?) результатов я готов потратить дополнительное время.