> Не знаю даже чем объяснить, но KVM которые использует LVM том напрямую,
> не очень то выигрывает в скоросте при работе с диском чем
> хостовая система, напротив KVM использующий raw образ почти не испытывает оверхед
> при работе с диском.А что такое оверхед ? Можете объяснить простыми словами. Чем он плох и каков должен быть ?
> Вобщем возьмите да померьте все варианты, заодно и нам раскажите.
Да вот померил, Только мерил я hdtune pro. Первое из того, что попалось.
К моему сожалению: 1. выбрал именно её 2. она shareware ;(.
Ранее эту программу постоянно встречал в обзорах, поэтому и выбрал без особых изысканий.
В тему: нашел на просторах сети вот такое сравнение ide vs virtio в программе hd tune:
http://openadmins.ru/blog/virtio-ide-benchmark-windows2008srvr2
У них virtio побеждает ide disk с двойным отрывом.
Облизался, цифры показались интересными и пошел тестить этой HD TUNE PRO, дабы убедится лично.
Тестил только на чтение, просто решил что этого будет достаточно.
Результаты в Мегабайтах в секунду! Ведь dd выдает результаты скорости в Мегабитах ????
Гость везде - win2k3.
1-я Хост система, Core 2 Quad 8400: том md0 - raid10 на нем lvm
И тут я выявил некоторую проблему самого hd tune.
Если ФС гостя располагается в блочном устройстве lvm - то hd tune показывает нормальные, т.е. очень близкие результаты к реальным результатам работы ввода/вывода моих винтов в режиме raid10.
Если поместить фс в файл, например qcow или тот же vhd(vpc) то результаты выходят за рамки разумного.
LVM:
benchmark read, ide device (lvm block device over md-raid10) - average speed 119 Mb/sec
benchmark read, virtio device (lvm block device over md-raid10) - average speed 127 Mb/sec
QCOW2 File over ext4, ext4 over LVM:
benchmark read, ide device (qcow2 in ext4 over lvm block device over md-raid10) - average speed 456 Mb/sec
benchmark read, virtio device (qcow2 in ext4 over lvm block device over md-raid10) - average speed 543 Mb/sec
Странные результате во втором забеге, не правда ли ? А ведь практически ни чего не менялось ;)
выводы:
1. hd tune - зло, которое показывает реальную скорость чтения диска только если гость работает с блочным устройством;
почему реальную ?
ОТВЕТ: я посмотрел результаты тестов этих винтов с сайта hd tune: примерно 60-70 Мегабайт/сек. Скорость массива уровня 10 должна быть примерно в два раза больше.
Мы видим это из теста С LVM, эти скорости равны 119 и 127 мегабайт в секунду.
Это примерно! примерно! больше в два раза скорости работы винта в одиночку. И примерно должно быть равно скорости работы подсистемы IO в хостовой системе. По крайней мере быть намного больше скорость не может, из-за физических ограничений накопителей.
2. virtio disk немного (по сравнению с обзором с сайта openadmins), но все таки обгоняет ide disk по скорости чтения
3. по ощущениям - разницы при работе с гостем незаметно.
2-я Хостсистема. (переделанный десктоп Core 2 Duo 6600)
Пройдем дальше. У меня есть еще один сервер . Что дают на том и работаю. ;). Планировался как хранилище, и запас на случай выхода из строя основного виртуального.
Сервер с md0 raid5 (4 диска wd1000ears - 5400 rpm). Результаты не много интереснее.
Разница почти в два раза по скорости при использовании ide vs virtio. да и сами скорости уже другие - есть подозрение что это 5-й рейд работает быстрее 1-го из 4-х 7.2к винтов. ;)
benchmark read, ide device (lvm block device over md-raid5) - average speed 374 Mb/sec
benchmark read, virtio device (lvm block device over md-raid5) - average speed 735 Mb/sec
Опять же результаты странные, скорее всего из за работы в файле а не с блочным устройством.
raid5 получается быстрее raid10 ;( в теории именно так и есть, но увы для продакшен сервера не совсем подходит, а вот для подменного на время - очень даже ни чего.
3-я хост система (hyperv)
Пройдем дальше:
для сравнения этот же гость на сервере w2k8 с hyperv (система и раздел ntfs с гостями в *.vhd формате (диск D:) на аппаратном raid1 от контроллера в HP ML150G6, винты обычные 7200 seagate 500gb)
benchmark read, hyperv guest additions installed (disk d:(ntfs) vhd image) - average speed 886 Mb/sec
Результат конечно далек от справедливости(из за hd tune).
Но все же заставляет задуматься о странных различиях в тестах;)
По ощущениям - на hyper-v винда грузится гораздо медленнее.
Разницы в работе с vhd или qcow2 практически нет для kvm. Отсюда вывод не обязательно делать kvm-img convert -O qcow2 /mybook/temp/vt.vhd /mybook/temp/vt.vhd.qcow2
По крайней мере я для себя сделал такой вывод исходя из результатов тестов на хост системе № 1 с рейдом 10. Смотрите ниже:
benchmark read, virtio device (vhd in ext4 over lvm block device over md-raid10) - average speed 549 Mb/sec
benchmark read, virtio device (qcow2 in ext4 over lvm block device over md-raid10) - average speed 543 Mb/sec
Тем более, что мне всегда может понадобится перенос гостей с kvm сервера на hyper-v сервер и обратно.
Ох устал я уже от этих тестов ;(
Ну а продолжим.
По хорошему конечно надо еще на lvm 2-й и 3-й вариант проверить. Сказано - сделано!
Берем хост систему №2 с 5 рейдом и все того же гостя, накатываю акронисом образ с разделами С и D винды на lvm block device и вперед:
benchmark read, ide device (lvm block device over md-raid5) - average speed 158 Mb/sec
benchmark read, virtio device (lvm block device over md-raid5) - average speed 156 Mb/sec
И видим мы реальные результаты с точки зрения работы железа и 5 рейда.
Но увы разницы между использованием virtio и ide диска - практически НЕТ.
Странно. Очень странно.
Если сравнить их с самым первым замером, т.е. с
benchmark read, ide device (lvm block device over md-raid10) - average speed 119 Mb/sec
benchmark read, virtio device (lvm block device over md-raid10) - average speed 127 Mb/sec
То все вполне объяснимо 5 рейд работает быстрее на чтение, даже чем 10. Но почему нет разницы между virtio и ide дисками ???? Не понимаю.
Теперь давайте, все же попытаемся сравним работу сервера hyper-v с kvm если оба используют файл в качестве жесткого диска (результаты берем из тестов выше):
benchmark read, HYPERV SERVER server hyperv guest additions installed (disk d:(ntfs) vhd image) - average speed 886 Mb/sec
benchmark read, virtio device (qcow2 in ext4 over lvm block device over md-raid10) - average speed 543 Mb/sec
benchmark read, virtio device (lvm block device over md-raid5) - average speed 735 Mb/sec
Если цифры не врут - то вывод подсистема ввода-вывода kvm - не дотягивает до hyper-v
Если врут, значит врёт hd tune.
Вот так. Жду ваших комментариев.
Пока писал ответ, получил новые комментарии в свой пост. Отвечу на них позже. Есть вопросы ;)