Выравнивание (alligment)

Существует  такое  понятие,  как  «выровненный» или  «невыровненный  раздел». Суть его в том, что при операциях чтения-записи массив оперирует блоками данных (или  страйпами). И файловая система оперирует  блоками  данных. В некоторых  случаях  блоки  файловой системы  не выровнены  по границам  блоков (страйпов) системы хранения,  потому что граница  создания  первого блока файловой системы сдвинута. Это происходит потому, что x86 операционные системы создают в начале раздела master boot record (MBR), занимающую 63 блока.

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

В случае виртуализации ситуация  даже немного сложнее: у нас есть блоки на СХД, блоки  файловой системы  VMFS  и блоки  файловой системы  гостевой  ОС в файле vmdk.

На  рис. 5.23 показан  невыровненный, плохой  случай  наверху  и  выровнен ный – внизу.

В англоязычной документации вам могут попасться  термины  Chunk,  Block и Cluster  – соответственно,  для SAN, VMFS  и файловой системы гостевой  ОС (NTFS  в гостевой Windows).

По доступным  мне данным,  падение  производительности в  невыровненном случае не является значительным в большинстве  случаев, порядка  10%. Однако имеет смысл производить его для шаблонов  – тогда с минимальными усилиями диски большинства наших ВМ будут выровнены.

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

Выравнивание VMFS

Этап первый – выравнивание VMFS. Для большинства СХД достаточно при создании  LUN  указать  правильный тип (обычно  «VMware»). Это выравнивает блоки создаваемого  LUN в соответствии с параметрами VMFS. VMFS, создаваемый из графического  интерфейса, создается  по границе 128 – кроме того, что создается при установке ESX(i) 4.

Для просмотра того, по какой границе создан раздел VMFS, выполните команду

fdisk –lu

На выходе вы получите информацию о разделах, что-то вроде

Device boot    Start   End              Blocks         Id    System

/dev/sdj1      128       167766794  83883333+  fb    Unknown

Рис. 5.23. Иллюстрация выровненных и невыровненных разделов Источник: VMware

Здесь вас интересует столбец «Id» – значение «fb» указывает, что этот раздел отформатирован в VMFS. И столбец «start» – значение  «128» говорит о том, что этот раздел выровнен по границе 128. Выравнивание по границе 128 нам подходит. Другое значение (обычно 63) – о том, что не выровнен. При создании VMFS из интерфейса клиента vSphere он автоматически выравнивается по границе 128. Получается, что столкнуться с невыровненным разделом VMFS нам придется  в одном из двух случаев:

1)    это создаваемый  установщиком раздел VMFS по умолчанию;

2)    это созданный  нами из командной  строки раздел.

В первом  случае  иногда  ничего  сделать  нельзя,  так  как  для  выравнивания раздела требуется  его пересоздать. В случае использования ESX создаваемый  по умолчанию VMFS невозможно удалить, если на нем расположен esxconsole.vmdk, диск Service Console.

Во втором случае надо пересоздать  раздел правильно.  Можно  сделать это из GUI, можно из командной  строки:

1.    Выполните

fdisk  /dev/sd<x>

где <x>  – буква нужного  LUN. Опознать  нужное устройство можно, выполнив команду

fdisk -l

2.    Нажмите p. Если на LUN есть раздел VMFS,  вы сможете его опознать  по ID «fb».

Нажмите d для удаления  раздела.

Обратите внимание: это удалит все данные с этого раздела. Если там что-то есть, перенесите данные на другой LUN или сделайте резервную копию.

3.    Нажмите n для создания  нового раздела.

4.    Нажмите p для указания,  что этот раздел primary.

5.    Нажмите 1 для создания  раздела № 1.

6.    Оставьте по умолчанию номер первого и последнего цилиндров, задейство вав тем самым весь LUN под этот раздел.

7.    Нажмите t для указания system ID создаваемого раздела.

8.    Напечатайте fb для указания,  что это VMware VMFS volume.

9.    Нажмите x для входа в режим эксперта.

10.     Нажмите b для указания номера первого блока раздела.

11.     Нажмите 1 для выбора раздела 1.

12.     Наберите  128 (128-й блок – это 64-й килобайт).

13.     Нажмите w для записи информации о разделе на диск.

Обратите  внимание: fdisk создаст раздел, но не отформатирует его в VMFS. Для форматирования сделайте следующее:

1.    Выполните  команду

ls –l  /vmfs/volumes/devices/disk

Сопоставьте тому LUN, где вы только что создали раздел, имя вида

eui.6a07eb73337ba5c1 или vml.010000000036413037454237333333374241354331494d41474546 или

mpx.vmhba35:C0:T0:L0.

2.    Выполните  команду вида

vmkfstools  -C vmfs3 -b  1m  -S  myVMFS  /vmfs/volumes/devices/disk/mpx.

vmhba35:C0:T0:L0:1

Параметр  «–b 1m» указывает  создать VMFS  с блоком, равным 1 Мб. Размер  блока VMFS  не имеет значения  с точки зрения производительности, от него за-

висит  только  максимальный размер  файла  на  создаваемом  разделе.  Параметр

«-S myVMFS» присваивает создаваемому  разделу метку «myVMFS». После имени LUN, например eui.6a07eb73337ba5c1, не забудьте указать номер раздела через двоеточие – «:1».

Все, раздел VMFS у нас выровнен.

Выравнивание файловой системы гостевой ОС

Теперь  надо выровнять файловую  систему  гостя в файле  vmdk. Я расскажу об этом на примере  данной операции  для создаваемого  шаблона ВМ с Windows.  Обратите  внимание,  что выравнивание рекомендуется делать только  для  диска с данными, не для загрузочного  диска ВМ.

Итак, постановка  задачи – создать выровненный диск для ВМ с Windows, из которой затем сделаем шаблон.

Первое, что нам понадобится,  – виртуальная машина  с Windows.  У этой ВМ уже есть диск, на который  установлена ОС. Добавим  к ней второй диск. Мы его сначала выровняем из-под этой Windows, затем отключим и подключим уже к новой ВМ – будущему шаблону.

Итак,  заходим  в свойства  ВМ, Add на закладке  Hardware, добавляем  Hard Disk нужного размера. Теперь в гостевой ОС запускаем  утилиту diskpart.exe (она актуальная для Windows Server 2003 и 2008). Выполните команды:

1.    Для просмотра списка дисков:

List disk

Добавленный будет «Disk 1».

2.    Для последующих операций над этим диском:

Select disk  1

3.    Для создания  раздела с правильным выравниванием:

Create  partition primary  align=64

4.    Для назначения буквы созданному разделу:

select partition  1 remove noerr

assign letter=E  noerr

5.    Для выхода из diskpart:

Exit

6.    Для форматирования созданного раздела в NTFS, с размером блока в 32 Кб:

Format E:  /FS:NTFS  /A:32K

Если вам хочется посмотреть, выровнены  ли существующие  разделы, сделать это можно так:

1.    В гостевой ОС: Start ? Run ? msinfo32.

2.    В открывшейся утилите  пройдите  Components ? Storage ?  Disks. Для

русской  версии Windows это Компоненты ? Запоминающие устройства

? Диски.

3.    Вас интересует  поле Partition Starting Offset (Начальное смещение раз-

дела). Для выровненных разделов  число из этого поля должно нацело делиться на размер блока данных (например, в случае кластера по умолчанию  для NTFS – на 4096).

За дополнительной информацией обратитесь  в статью базы знаний Майкро софт 929 491 (http://support.microsoft.com/kb/929491).

Обратите  внимание,  что в случае подключения к ВМ LUN как RDM  в свойствах LUN (LUN  Protocol Type)  необходимо  ставить  тип гостевой ОС  для корректного выравнивания без дополнительных усилий.

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

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

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

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