Как мы знаем, кластерная файловая система VMware VMFS, которую используют серверы виртуализации VMware ESX / ESXi, может иметь разный размер блока при форматировании. Этот размер может быть 1,2,4 или 8 МБ. Малый размер блока в 1 МБ – допускается создавать файлы vmdk размером не более 256 ГБ. Размер блока в 8 МБ позволяет создавать диски vmdk размером до 2 ТБ. Однако размер, минимально занимаемый файлом на томе VMFS, не может быть меньше размера блока – например, лог-файл размером в несколько десятков килобайт в последнем случае займет 8 МБ. Примечательно, кстати, что в предыдущей версии, VMFS 2, был размер блока в 16 МБ, но его убрали из спецификации в VMFS 3.
На производительность виртуальных машин размер блока VMFS не влияет.
Размер блока VMFS может быть изменен только при форматировании тома, поэтому при его создании уделяйте данному параметру особое внимание.
Тем не менее утверждение о том, что считывание данных (запись) в гостевой системе с тома VMFS вызывает считывание (запись) всего блока VMFS – неверно. Суть VMFS как раз заключается в том, что при чтении файла в гостевой системе, независимо от размера блока VMFS реально считывается блок гостевой ОС (например, 64 КБ для Windows XP или 1 МБ для Windows Vista) с диска на системе хранения – VMFS оптимизирована под такие операции чтения. Достигается это путем адресации «субблоков» в пределах блоков тома VMFS.
Кроме того, на SCSI дисках системы хранения возникают такие события как SCSI Reservations. Это происходит тогда, когда хост ESX / ESXi «захватывает» LUN и производит некоторые операции с файлами (и с метаданными тома VMFS) в эксклюзивном режиме, а другие хосты ждут. Что вызывает SCSI Reservations на томах VMFS: открытие файла, его закрытие, выделение дополнительного блока для «тонкого» диска vmdk, изменение метаданных тома VMFS (смена атрибутов файлов на томе – например, время последнего доступа к файлу).
А вот если мы уже открыли flat vmdk диск – то запись и чтение не вызывает SCSI reservations.
Как становится понятно, чем больше SCSI reservations, тем больше снижается производительность виртуальных машин с точки зрения дисковой подсистемы. И, опять-таки понятно, что SCSI reservations в процессе эксплуатации серверов ESX/ ESXi возникают достаточно редко (создание виртуальных машин, их запуск и т.п.).
Однако с приходом решения для виртуализации настольных ПК VMware View – все меняется. Теперь используются «тонкие» (thin) диски для пулов с View Composer и SCSI reservations возникают чаще, при увеличении размеров vmdk дисков.
Итак, давайте разберемся, как растут диски vmdk в среде виртуализации настольных ПК VMware View. Есть 2 типа дисков, которые растут по мере их наполнения:
Диски, созданные как «снапшоты» для реплики из родительской виртуальной машины. Обычно это системные диски для виртуальных ПК.
Диски, созданные как изначально «тонкие» без родительского. Обычно это пользовательские диски для виртуальных ПК.
В обычных снапшотах в VMware Virtual Infrastructure пространство для дельта-дисков выделяется блоками по 16 МБ. С такой же частотой и возникают SCSI reservations.
А вот для тонких vmdk дисков – пространство выделяется блоками, равными размеру блока VMFS для данного тома. Что это значит? Прежде всего вот это:
При использовании больших размеров блока для тома VMFS реже наступают SCSI reservations, а соответственно и производительность таких томов выше для решения VMware View на тонких дисках.