пятница, 10 апреля 2009 г.

Типы дисков(vmdk файлов)

Коллеги, напомню, что у дисков ВМ - vmdk файлов - есть несколько типов:

VMDK файлы могут быть в одном из 4х режимов.
Отличаются эти режимы следующим:
  • Когда размечаются блоки под них
  • когда затираются блоки(обнуляются, zeroed).

ZeroedThick Thick EagerZeroedThick Thin
Разметка При создании При создании При создании По запросу
Обнуление При первой операции записи на блок Нет При создании диска Перед первой операцией записи
Используется в случае Во всех типовых Для кворумных дисков MSCS Для кворумных дисков MSCS
(дольше создается, чем в формате
Thick, но является более рекомендованным)
Когда хотим поэкономить место на LUN.
Если vmdk создается на NFS хранилище,
то по умолчанию он создается в этом формате
.

обратите внимание:
Thin диски используются на NFS - без вариантов, но не поддерживаются на FC SAN.
ZeroedThick диски дают задержку при первом обращении к блоку. Сложно сказать, насколько это замедляет работу в производственной среде, но на тестах явно заметно - см. тему на официальном русскоязычном форуме - http://communities.vmware.com//thread/204046?tstart=0. Так что, в производственной среде под важные машинки может иметь смысл использовать eagerzeroedthick диски - их единственный минус в том, что они долго создаются. Или thick - их минус в том, что блоки не обнуляются перед использованием - правда, я не знаю конкретики, почему это плохо.

Сама VMware позиционирует их так:
  1. ZeroedThick - тип по умолчанию. В нем создаются vmdk, когда мы их делаем из VIC. Самый используемый.
  2. Thick - для кворумных дисков MSCS, когда кластер поднимается для поиграться.
  3. EagerZeroedThick - для кворумных дисков MSCS, когда кластер поднимается в эксплуатацию.
  4. Thin- динамический. Занимает места только столько, сколько реально занято гостевой ОС, в отличие от всех других.
    Как их создать -
    Создание тонких (растущих по мере наполнения) дисков на VMware ESX Server 3.5.

Правда, есть мнение, что эффективность тонких, thin, дисков может быть не очень большой, в некоторых ситуациях. Процитирую один из старых своих постов - VMware View - это все о нем - речь, правда, в нем идет про Linked Clones, но суть та же:
А следующий пост - критика основы метода экономии места на сторадже - VMware View - Linked Clones Not A Panacea for VDI Storage Pain!.
Идея в том, что дельты, которые создаются для каждой ВМ, очень быстро вырастают до номинального размера диска ВМ. Каждая дельта. Автор ссылается на свои собственные тесты. Причину он видит в особенности работы NTFS - которая сначала использует обнуленные блоки, и только за их отсутствием будет использовать те, которые заняты удаленными файлами. Например - если мы создадим и сразу удалим файл в 1 ГБ 10 раз подряд, то с т.зрения гостевой ОС у нас свободного места как было, так и осталось. А снапшот(файл дельта) вырос на 10 ГБ.
Таким образом, вещи типа временных интернет файлов, да и вообще любых временных файлов, от того же офиса; кэши дистрибутивов софта и патчей, данные для деинсталляции патчей и т.п... Все это приведет, даже привОдит к быстрому росту дельты.
Наконец, дельты увеличиваются. Увеличиваются блоками по 16 МБ. И каждое увеличение требует резервирования LUN хостом с этой ВМ. Таким образом, на один LUN положив много VDI машин в Liked Clone режиме, мы можем получить снижение производительности из за этих паразитных блокировок LUN'а.


Так что мне очень интересно было бы услышать отзывы на эту тему, если кто использует активно thin диски у себя.

3 комментария:

  1. ZeroedThick диски дают задержку при первом обращении к блоку, Thick как раз не должны давать.

    ОтветитьУдалить
  2. навеяно http://communities.vmware.com//thread/204046?tstart=0

    решил провести тест для IOmetr

    тестовый стенд ml150g3 - xeon 5110 + 5gb + 2 sata в набортном чипсете
    esxi 3.5 upd 3 на флешке

    ESXi винты видит как отдельные хранилища.
    Системный раздел для виртуалки лежит на одном хранилище, тестовый диск - на втором, размер 50 gb

    в самом IOmetr есть возможность отдать для теста сырую партицию или создать тестовый файлик заданного размера.

    диск для тестов был создан zeroedthick
    в тестах Iometer использовался тест «All in one»
    отдал пустую партицию - 120 iops
    создал тестовый файлик на весь диск - 150 iops

    создал диск Eagerzeroedthick
    в тестах Iometer использовался тест «All in one»
    отдал тестовую партицию - 150 iops
    создал тестовый файл на весь диск - 150 iops

    вообщем то все как и говорил Anton V Zhbankov
    zeroedthick следует предварительно разминать ))
    либо сразу делать Eagerzeroedthick

    ОтветитьУдалить