ZFS и скорость доступа к диску в гипервизорах

В данной статье публикуются результаты замеров скорости доступа к файловой системе внутри гипервизора в различных вариантах установки ZFS. Всем кому интересно прошу под кат, предупреждаю о наличии большого количества изображений под спойлерами (оптимизированы).
io93xwfrzfhg0kodp0mku-p7s6u.png

Всем привет! В сети довольно много материалов, посвященных файловой системе (далее ФС) ZFS, ее развитию в Linux’е и практическому применению. Меня данная ФС очень заинтересовала в контексте совершенствования моего домашнего сервера виртуализации (, а также благодаря посту пользователя kvaps), однако я не смог найти в интернете (может быть плохо искал?) сравнительных тестов производительности виртуализированных машин. Поэтому решил собрать тестовую платформу для проведения своего сравнительного исследования.

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

image

Суть эксперимента заключалась в следующем: на машину устанавливалась (каждый раз с загрузочного диска) ОС Proxmox VE 5.2. Во время установки выбирался Один из вариантов XFS/ZFS. После этого создавалась виртуальная машина, на которую производилась установка Windows Server 2008 R2, после чего запускалась популярная утилита CrystalDiskMark 5.2.2 и проводились тесты на объемах 1, 4, 32 GiB (в связи с потерей изображений с результатами 32 GiB тестов нельзя воспользоваться при выборе решения, имеющиеся данные приводятся для массовки).

Тест на ФС XFS использовался для измерения эталонной скорости работы одного ЖД (возможно это и неправильно, но других вариантов ее оценить я не придумал).

Тесты ZFS RAID 0, RAID 1 проводились на двух случайно выбранных дисках, ZFS RaidZ1 на 3 дисках, ZFS RAID 10, RaidZ2 на 4 дисках. Тесты с ZFS RaidZ3 не проводились по причине отсутствия желания купить еще один крайне экономически нецелесообразный HDD на 500GB.

Под спойлером кратко приведу описания каждого из видов ZFS RAID с моим примером получаемого объема «коммерческих» гигабайтов:

ZFS RAID
2 диска:
  • ZFS RAID 0 — чередование (Striped), объем 2 * DiskSize = 1000ГБ.
  • ZFS RAID 1 — зеркалирование (Mirror), объем 1 * DiskSize = 500ГБ.

3 диска:
  • ZFS RaidZ1 — он же ZFS RaidZ, аналог RAID5, объем (N — 1) * DiskSize = 1000ГБ.

4 диска:
  • ZFS RAID 10 — зеркалирование с чередованием (Striped Mirrored), объем 2 * DiskSize = 1000ГБ.
  • ZFS RaidZ2 — аналог RAID6, объем (N — 2) * DiskSize = 1000ГБ.
  • при этом, я такой тест не проводил, но ZFS RaidZ1 при 4 дисках = 1500ГБ.

Очень понятно расписана суть вот тут (англ). А также сколько дисков допустимо потерять, сохранив информацию.


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

Технические характеристики платформы, (возможно) влияющие на результаты тестирования:

  • Материнская плата: Intel Desktop Board DS67SQ-B3;
  • Процессор: Intel Pentium G630 2.7GHz;
  • Оперативная память: 2×4096Mb Hynix PC3–10700;
  • Жесткие диски: 3 x WD 5000AZRX 500GB SATA 64MB Cache, 1 x WD 5000AZRZ 500GB SATA 64MB Cache, SSD SATA Goldenfir T650–8GB;
  • Блок питания: DeepCool DA500N 500W.


Виртуальной машине (KVM) для тестов выделялось 4GB оперативной памяти, 1 ядро процессора, жесткий диск VirtIO Block 100GB.

q9mx86d_t8ffn4bvbsynchogabg.png

Для систем, установленных на ZFS выполнялось 2 теста, во втором в качестве кэш-диска подключался SSD.

Все результаты представлены в виде скриншотов ниже. Если у кого-нибудь возникнет желание оцифровать данные результаты — буду благодарен и включу результаты работы в статью.


ZFS RAID 0
1etldytbqlnhmh_7-tz-3ic81oa.png
5fi_ruurkwiffmdx61uybbpdd-w.png

ZFS RAID 0 + cache


ZFS RAID 1
yffe64pup3scltlsasvrhmyf08g.png
9crfpcyxgsuzffb_jvpv8ofbzv8.png

ZFS RAID 1 + cache


ZFS RAID 10

ZFS RAID 10 + cache
hhdlg6ccn0ftw61d3wo-1ko1gjy.png
as7eff7569ocbpumlqanobdpd-g.png


ZFS RaidZ1
yrbhfdinmncnp24l6vmqmnkuwio.png
puuui7qrfwpvrxlfadpomg9wqbk.png

ZFS RaidZ1 + cache


ZFS RaidZ2
5edvf3wgrt7oqril5plkbjmqkqq.png
p1arlrbte_bh9qan_budkbncv5w.png
ZFS RaidZ2 + cache
dqihpf02po3twpdlnkiqcpvpbem.png
63esglusobuwce65bj0n8buvmro.png


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

P.S. по непонятным мне причинам часть изображений куда-то пропали, замеры проводились в конце весны, тестовую платформу уже не собрать в том виде, к счастью все они приходятся на тесты с 32 GiB.

P.P. S. Не пытался рекламировать какие-либо организации и/или программные продукты, не имел цели нарушить лицензионных соглашений, если где-то был неправ, прошу писать в личные сообщения.

P.P. P.S. Изображение с логотипом ZFS является репродукцией.

© Habrahabr.ru