Все про диски ВМ

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

Глобально вариантов здесь два:

1.    Диск ВМ – это файл vmdk на хранилище  VMFS или NFS.

2.    Диск ВМ – это весь LUN на FC / iSCSI  / локальных  дисках. Называется такой тип подключения Raw Device Mapping, RDM.

И в первом, и во втором случае у нас есть несколько вариантов. Поговорим про все варианты подробнее.

5.4.1. Виртуальные диски – файлы vmdk

Про виртуальные диски именно как файлы будет рассказано чуть далее, в разделе  «Файлы ВМ».  Сейчас  поговорим  про  различные настройки  виртуальных дисков – файлов vmdk.

Рис. 5.16. Выбор устройства для подключения к ВМ

Для подключения диска к ВМ зайдите в ее свойства, нажмите кнопку Add на закладке Hardware и выберите Hard Disk. После нажатия Next вы увидите следующие шаги мастера.

1.    Select a Disk – здесь вы выберете, хотите ли создать новый файл vmdk, подключить уже существующий и расположенный на доступном этому ESX(i) хранилище, или же подключить RDM. Сейчас рассмотрим первый вариант.

2.    Create a Disk – здесь вы можете указать следующие настройки:

•    Capacity – номинальный размер  диска. Столько  места на нем увидит гостевая ОС. Размер  же файла  vmdk зависит от следующей настройки: напоминаю, что максимальный размер файла ограничен размером блока раздела VMFS, на котором вы его создаете. На VMFS, созданном по умолчанию, вы не создадите один файл vmdk размером больше 256 Гб;

•    Disk Provisioning – тип файла vmdk. Вариант по умолчанию, без флаж ков, создаст vmdk типа zeroedthick.  Флажок Thin Provisioning создаст

файл vmdk типа thin. Второй флажок создаст файл типа eagerzeroedthick.

О типах дисков – чуть ниже;

•   Location – на каком хранилище  будет находиться  создаваемый файл.

3.     Advanced Options – эти настройки обычно менять не требуется:

•   Virtual Device Node – на каком ID какого виртуального контроллера будет располагаться этот виртуальный диск. SCSI (1:2) означает,  что этот  диск  займет  второе  SCSI  ID  на  виртуальном SCSI-контроллере номер 1 (нумеруются они с нуля).  Обратите  внимание, если этого контроллера  в ВМ еще нет – он будет добавлен вместе с диском. В ВМ может быть до 4 SCSI-контроллеров и до 15 дисков на каждом. Также вы можете указать, что создаваемый  диск подключен  к контроллеру IDE. Для IDE-дисков недоступны некоторые функции, такие как горячее добавление и увеличение  размера;

•   Mode – если поставить  флажок  Independent, то к этому виртуальному

диску  не будут применяться снимки  состояния (snapshot). В  режиме Persistent все изменения будут немедленно записываться в этот файл vmdk.  В режиме  Nonpersistent все  изменения с момента  включения будут записываться в отдельный  файл, который будет удаляться после выключения ВМ. Такой режим имеет смысл, например, для демонстрационных ВМ. Мы их подготовили,  настроили,  перевели их диски в данный режим. Теперь  после выключения они всегда будут возвращаться к своему состоянию на момент включения этого режима.

Файлы vmdk могут быть разных типов, и типы эти следующие:

Q  zeroedthick – «обнуляемый предразмеченный». Этот режим для диска используется по умолчанию при создании файла vmdk на хранилищах VMFS. В этом режиме место под файл vmdk выделяется в момент создания. То есть если вы создаете для ВМ диск размером 50 Гб, файл vmdk займет на диске 50 Гб даже тогда, когда никаких  данных ВМ еще не записала  на этот диск. Блоки  данных  обнуляются (очищаются от данных,  которые  находились там ранее)  перед первым к ним обращением  – поэтому первое обращение к ранее свободному  месту будет чуть медленнее,  чем могло бы быть. Он является рекомендуемым под большинство задач;

Q  eagerzeroedthick – «заранее обнуляемый предразмеченный». В этом режиме место под файл vmdk выделяется в момент создания. Также в момент создания происходит обнуление всех блоков, занимаемых этим файлом. Из-за обнуления  процесс создания  файла vmdk такого типа занимает намного больше времени, чем создание файла vmdk любого другого типа. Используйте его для ВМ под защитой Fault Tolerance (при включении FT мастер оповестит о необходимости преобразовать файлы vmdk ВМ к этому типу). Также файлы  vmdk этого типа рекомендуется использовать под диск для данных кластера Майкрософт. Чтобы создать файл этого типа, в графическом интерфейсе поставьте флажок «Support clustering features such as Fault Tolerance»;

Q  thin – «тонкий».  Файлы vmdk  этого типа  создаются  нулевого размера  и растут по мере того, как гостевая  ОС изменяет  данные на этом диске. От-

лично подходят для экономии  места на хранилищах.  Чтобы создать файл этого типа, в графическом интерфейсе поставьте флажок «Allocate and commit space on demand (Thin  Provisioning)». Блоки  данных обнуляются перед первым к ним обращением. Чуть больше подробностей дам позже;

Q  2gbsparse – файл разбивается на части размером по 2 Гб. Если файлы vmdk

ВМ в таком формате,  то включить  ее на ESX(i) нельзя.  Однако  в подобном формате  ВМ используются в других продуктах  VMware.  Так что ВМ в таком формате вам может понадобиться при переносе ее на ESX(i) с другого продукта  VMware  или для запуска на другом продукте созданной  на ESX(i) виртуальной машины.  Преобразовывать vmdk в формат  2gbsparse или из него в thin/thick вы можете при помощи команды vmkfstools;

Q  rdm и rdmp – такой тип у vmdk, которые являются ссылками на LUN, под-

ключенных  Raw Device  Mapping,  RDM.  vRDM  – virtual  RDM,  pRDM – physical RDM. Подробнее про RDM – чуть ниже;

Q  monosparse и monoflat – виртуальные диски в этих форматах используют-

ся в других продуктах VMware.

Обратите внимание. Понятие и технология thin disk также используются некоторыми аппаратными системами хранения (3Par, NetApp), причем такой «аппаратный thindisk» может быть создан независимо  от «программного thin-диска  ESX(i)». В случае поддержки системой хранения thin provisioning созданный thick-диск в thin-режиме  СХД займет место на системе хранения только по мере заполнения его действительными данными. Но в книге рассматривается  только thin provisioning  в варианте от VMware.

На ESX(i) 3.x был еще тип виртуального диска thick  – предразмеченный необнуляемый. При работе с ним ESX(i) не производил обнуления блоков. Однако в ESX(i) 4 создать файл vmdk в таком формате нельзя. В графическом интерфейсе  и в данной книге под типом «thick»  понимается  zeroedthick.

Режим  thin для виртуального диска обычно используется по умолчанию при создании файла vmdk на хранилищах NFS. Но не всегда, это зависит от настроек на стороне сервера NFS.

По большому  счету, в случае использования vmdk выбирать  нам надо между thin и zeroedthick.  Какие соображения имеет смысл принимать во внимание?

Thin-диски требуют намного меньше места на хранилище при создании и в начале эксплуатации ВМ. Однако через пяток-другой месяцев разница с предразмеченными дисками может сойти на нет, потому что операции уменьшения (Shrink) виртуального диска в ESX(i) не предусмотрено. Однако некоторые способы очистить thin-диск от записанных, а впоследствии удаленных данных все-таки существуют, см. раздел «Уменьшение размера виртуального диска».

В частности,  потому  что при удалении  данных  изнутри  гостевой  ОС  происходит  только  очистка  заголовков  – ОС  помечает какие-то  блоки  как «их теперь можно  использовать». ESX(i) не может  отличить  блоки, занятые такими (удаленными, с точки зрения гостевой ОС) данными, от блоков с неудаленными данными.

Плюс к тому некоторые  операционные системы  (Windows, в частности) для записи новых данных предпочитают использовать изначально  пустые блоки, нежели  занятые  ранее удаленными данными. Например, мы создадим  ВМ с Win dows Server 2008 и с диском в 20 Гб. В момент создания ВМ размер ее файла vmdk равен нулю. После установки ОС – порядка  6 Гб. Если теперь скопировать на ее файл диск размером в 2 Гб, удалить его, опять скопировать и удалить и в последний раз скопировать,  то:

1.    В гостевой ОС мы увидим примерно 8 занятых гигабайт: 6 + 2 – 2 + 2 – 2 + 2.

2.    С точки зрения файлов  ВМ, мы увидим, что файл vmdk занимает порядка  12 Гб: 6 + 2 + 2 + 2.

Вывод: под некоторые  задачи, когда данные часто добавляются и удаляются,  thin-диски быстро вырастут до номинальных размеров.

В каких  ситуациях нам интересно  использовать thin-диски? Для производ ственных ВМ – когда мы хотим сэкономить  на дисках в первое время эксплуата ции виртуальной инфраструктуры. Поясню свою мысль.

Вот у нас есть задача запустить  30 ВМ, для простоты одинаковых. Допустим, приложению может потребоваться до 50 Гб места за пару лет работы. В первые полгода-год – вряд ли больше 15 Гб. И по статистике 50 Гб начинает использовать лишь небольшая  доля таких серверов, в большинстве  случаев для этого приложе ния хватает и 25 Гб. Получается:

Q  при использовании thick-дисков нам необходимо 1500 Гб = 50 Гб ? 30 ВМ.

Но внутри  большей части 50-гигабайтных файлов  vmdk будет много сво-

бодного места (скорее всего, мы это просто предполагаем);

Q  при использовании thin-дисков мы можем обойтись 450 Гб = 15 Гб ? 30 ВМ.

Через год понадобится от 1000 Гб = 25 Гб ?  30 ВМ, плюс еще гигабайт 300

для тех, кому среднестатистических 25 Гб все-таки  недостаточно. Но! Все

эти цифры  являются приближением. Их точность зависит  от имеющихся  у нас данных по использованию места на диске конкретным приложением и оценок по росту нагрузки  в будущем. Если мы ошиблись  в расчетах и не успели докупить  еще дисков, то место на хранилище  закончится,  и работа всех (!) виртуальных машин с заполненных хранилищ станет невозможна.  Когда  хранилище  заполняется на 99%, ESX(i)  автоматически переводит все ВМ на этом хранилище  в состояние паузы (suspend).

Вывод: использование thin provisioning позволяет  в начальный  момент обойтись меньшим количеством места на системе хранения, но повышает вероятность столкнуться с неработоспособностью сразу всех ВМ в связи с нехваткой места.

По  данным  VMware,  производительность ВМ  с дисковой  подсистемой   не ухудшается при использовании thin-дисков вместо thick.

И для thin, и для zeroedthick время самого первого обращения  к блоку значительно выше, чем для eagerzeroedthick, потому что его еще надо обнулить  перед первой  записью  туда. Если  такая  задержка  может быть неприятной для вашего приложения, используйте eagerzeroedthick-диски. Однако  все дальнейшие обращения,  кроме самого первого, по скорости одинаковы  и для thin,  и для разного типа thick-дисков.

Обратите внимание. Диски ВМ мы можем конвертировать в любые форматы. При операциях Storage VMotion и Clone нас спросят, хотим ли мы, чтобы диски были толстыми или тонкими (zeroedthick  или thin). Также мы можем конвертировать файлы vmdk в эти и прочие форматы из командной строки с помощью консольной утилиты vmkfstools.

Тонкие диски и интерфейс

Выделите  виртуальную машину  с тонким  диском и посмотрите  на закладку Summary. Там  в разделе  Resources вы увидите  данные  по  занимаемому  месту (рис. 5.17).

Q  Provisioned Storage – это максимальный объем, который могут занять файлы виртуальной машины.  То есть это номинальный объем ее диска плюс объем всех прочих файлов. Из «прочих файлов» заслуживают упоминаний два. Это  файл  подкачки  (*.vswp),  который  гипервизор  создает  для  этой ВМ, и файлы vmdk снимков состояния. Так как каждый снимок состояния (snapshot) может занять место, равное номинальному размеру диска, то при каждом снимке состояния величина Provisioned Storage  увеличивается на размер диска/дисков;

Q  Not-shared Storage – сколько  места  эта  виртуальная машина  занимает именно под свои файлы, не разделяя их с другими ВМ;

Q  Used Storage – сколько места реально занимают на хранилище файлы-диски этой ВМ.

Рис. 5.17. Данные по размеру тонкого диска

Not-shared Storage всегда равняется Used Storage, за исключением  двух вариантов:

Q  когда используется функция Linked Clone. Она доступна при использова-

нии поверх vSphere  таких продуктов,  как VMware  Lab Manager  или VMware View;

Q  когда диском  ВМ является RDM  и у вас кластер  между  ВМ (например,

MSCS/MFC). В таком случае RDM  выступает в роли общего хранилища, принадлежит сразу двум ВМ. Not-shared Storage будет показывать  остальное место, что ВМ занимает на хранилище, кроме RDM.

Обратите внимание. Provisioned Storage – это ограничение размера файла vmdk. То есть это гипервизор не даст файлу вырасти больше. Однако если на хранилище закончится место, то гипервизор не сможет увеличить thin-диск  (или файл снимка состояния), даже если тот не достиг своего максимума.  Это приведет к неработоспособности ВМ.

Источник: Михеев М. О.  Администрирование VMware vSphere 4.1. – М.: ДМК Пресс, 2011. – 448 с.: ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий