xxlkms
Contributor
Contributor

Производительность дисковой подсистемы в ESX3.5i

Jump to solution

Добрый день.

Имеется сервер IBM x3650, на него установлен ESX3.5U4i. Сервер через SAN подключен к СХД. На СХД создан 10-й рейд из восьми 146 GB 15k rpm дисков, этот обьем единым кусков подключен к ESXi. В самом ESX создан vmfs volume, создал vmdk файл на все свободное пространство и подключен к виртуальной машине. В гостевой системе запускаем Iometer на raw диске (этот тот самый 10-й рейд). Параметры теста:

pattern 8K OLTP (67% read, 100% random, 256 outstanding IO/s)

И наблюдаем странную картину: сразу после запуска гостевая система входит в ступор, наблюдаются огромные тормоза (практически ни на какие действия не реагирует), смотрим esxtop с самого хоста:

DEVICE PATH/WORLD/PARTITION NPH NWD NPN DQLEN WQLEN ACTV QUED %USD LOAD CMDS/s READS/s WRITES/s MBREAD/s MBWRTN/s

vmhba1:0:0 - 1 29 9 238 0 0 0 0 0.00 11.89 0.00 11.89 0.00 0.03

vmhba2:0:0 - 2 17 2 32 0 1 0 3 0.03 171.61 18.23 153.38 0.14 95.68

vmhba2:0:1 - 2 11 2 32 0 0 0 0 0.00 0.40 0.00 0.40 0.00 0.00

vmhba2:0:2 - 2 12 2 32 0 0 0 0 0.00 0.40 0.00 0.40 0.00 0.00

И видим аж целых 95 МБ/c какой то непонятной записи!!! Теперь самое интересное, после часов 8 прогона этого теста, уже на другой день увидел совсем другую картину:

1590 iops, ~12MBps как и должно быть. Тот же самый диск, подключенный к физическому серверу на таком же тесте давал примерно такие же результаты. Только сразу после запуска, без всяких прогонов!

А теперь вопрос: это что за ерунда такая? Создается впечатление, что после создания vmdk файла, он ещё и каким то образом должен проинициализироваться. Или как ещё можно обьяснить такие мягко говоря странные результаты? Для проверки специально удалил vmdk-файл, создал его заново, запустил тест и опять наблюдаю тоже самое! Кто нибудь сталкивался с подобным?

ЗЫ: повторный запуск теста на уже "проинициализированном" vmdk-файл показывает нормальные iops'ы сразу же без каких либо прогонов.

0 Kudos
1 Solution

Accepted Solutions
AntonVZhbankov
Immortal
Immortal

По умолчанию используются диски типа zeroedthick - полностью выделяется место под vmdk, и кусками обнуляется содержимое при первом обращении на запись.

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

Есть еще thick - выделяется место, но никакого обнуления не происходит. Eagerzeroedthick - диск полностью забивается нулями при создании, и thin - место выделяется по мере использования диска.

Очевидно, что eagerzeroedthick дает большую нагрузку на диски при создании vmdk, а thick - потенциально небезопасны.


---

VMware vExpert '2009

http://blog.vadmin.ru

EMCCAe, MCITP: SA+VA, VCP 3/4/5, VMware vExpert http://blog.vadmin.ru

View solution in original post

0 Kudos
6 Replies
AntonVZhbankov
Immortal
Immortal

По умолчанию используются диски типа zeroedthick - полностью выделяется место под vmdk, и кусками обнуляется содержимое при первом обращении на запись.

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

Есть еще thick - выделяется место, но никакого обнуления не происходит. Eagerzeroedthick - диск полностью забивается нулями при создании, и thin - место выделяется по мере использования диска.

Очевидно, что eagerzeroedthick дает большую нагрузку на диски при создании vmdk, а thick - потенциально небезопасны.


---

VMware vExpert '2009

http://blog.vadmin.ru

EMCCAe, MCITP: SA+VA, VCP 3/4/5, VMware vExpert http://blog.vadmin.ru

View solution in original post

0 Kudos
Igor_Nemilosti1
Contributor
Contributor

Возможно, что бы поддержать мнение Антона, попробуйте приципить этот LUN, как RDM диск и провести тестирование. Но это можно будет сделать, еслу у Вас есть хоть какой нибудь маленький локальный сторадж с vmfs, для хранения самой ВМки (локальный диски, NFS, iSCSI?).

--

Igor Nemilostivy

-- Igor Nemilostivy
0 Kudos
xxlkms
Contributor
Contributor

Благодарю за ответы.

Маленький сторадж на локальных дисках конечно есть, собственно системный диск тестовой виртуалки там и лежит. Через RDM все работает нормально, сразу показывает адекватные iops'ы. А как можно изменить тип создаваемого vmdk-файла по умолчанию? И не совсем понял, почему не безопасны thick-файлы? В принципе меня волне устроит, если при создании vmdk файла он сразу будет обнулятся (EagerZeroedThick disk), хотя опять же не понятно, зачем вообще обнулять файл ?:|

0 Kudos
AntonVZhbankov
Immortal
Immortal

На этом месте раньше могли быть другие данные и другие диски. RDM - это RDM, там обнуления не происходит.

Другого типа диски можно создавать при помощи команды vmkfstools или пакета VI Toolkit. Из клиента никак.


---

VMware vExpert '2009

http://blog.vadmin.ru

EMCCAe, MCITP: SA+VA, VCP 3/4/5, VMware vExpert http://blog.vadmin.ru
0 Kudos
xxlkms
Contributor
Contributor

А дефолтную настройку типа vmdk файлов изменить нельзя?

0 Kudos
AntonVZhbankov
Immortal
Immortal

Увы, нет. Вариант - разворачивать машины из шаблона.


---

VMware vExpert '2009

http://blog.vadmin.ru

EMCCAe, MCITP: SA+VA, VCP 3/4/5, VMware vExpert http://blog.vadmin.ru
0 Kudos