воскресенье, 22 марта 2009 г.

VMFS Alignment

Напомню, в чем суть выравнивания:

У нас есть блоки, которыми оперируют системы хранения("Chunk", иногда употребляется "кластер", afaik)
Поверх этого у нас файловая система, в нашем случае - VMFS.
На VMFS лежат диски ВМ, а в них гостевая файловая система со своими блоками.

Картинка:







На картинке показана плохая, не выровненная ситуация. Это значит, для чтения одного блока в госте, нам нужно несколько I\O. Это означает худшую производительность, чем могла бы быть. см. Выравнивание кластеров NTFS и блоков RAID массива (детальный тест для SQL Server) + Необходимо ли в Windows Server 2008 выравнивание кластеров NTFS и блоков RAID массива?

Хорошая дока по этому поводу - Storage Alignment and VMFS Block Sizes.

В ней описывается, как придти к правильной картинке









Как же выровнять все это дело:

выравнивание vmfs:

вооружаемся fdisk'ом.
Выполняем команду

fdisk -lu


на выходе получаем что то вроде

Device boot Start End Blocks Id System
/dev/sdj1 128 167766794 83883333+ fb Unknown


тут видно, что раздел выровнен по границе 128. Так и должно быть. Если цифирка другая(обычно 63) - то раздел не выровнен.

За дальнейшими инструкциями в первоисточник.

Еще рекомендую почитать тут - Корректное поблочное выравнивание LUN и файлов .vmdk при использовании системы хранения NetApp - документ на русском.

Так же, дается разъяснение про влияние размера блока VMFS на дисковые операции гостя:
When your Linux/Windows/Solaris guest reads/writes data, it does so in blocks and these blocks are usually around 64KB. For example, when your guest issues a SCSI read, then nothing happens to the VMFS at all - the read is "passed through" by the vmkernel straight to the SAN LUN.



VMFS does not get in the way of your guest read/writes, it does not do any kind of caching, the VMFS block size is irrelevant for guest I/O.

Насколько я понял, имеется в виду, что от размера блока зависит только максимальный размер файла-диска ВМ, а при операциях чтения записи гостя - эта операция пропускается сразу на уровень СХД, сквозь VMFS.

upd. Выравнивание VMFS актуально лишь при создании раздела из командной строки - при создании VMFS из клиента VI выравнивание указывается автоматически.

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

  1. Не могу открыть статью (блог) "Корректное поблочное выравнивание LUN и файлов .vmdk при использовании системы хранения NetApp". Это только у меня такая проблема?

    ОтветитьУдалить
  2. Странно... а у меня "обычно" все уже выравненное (128)...
    У меня ESX кривой? :)

    ОтветитьУдалить
  3. эта информация применима, в основном, для создания оазделов из командной строки. При создании раздела vmfs из GUI он создается выровненым, и, видимо, по границе 128.

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