Просянко Дмитро Володимирович

Просянко Дмитро Володимирович

Факультет комп'ютерних наук і технологій

Кафедра комп'ютерної інженерії

Спеціальність «Комп'ютерні системи та мережі»

Тема випускної роботи

«Моделююча система навігаційного тренажера»

Науковий керівник: Святний Володимир Андрійович

In God we trust

Маcштабируемая виртуализация в крупных компаниях. Использование ESXi.
Увеличение жесткого диска виртуальной машины.

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

Чем же он так хорош?

Виртуализация позволяет экономить ресурсы, энергопотребление, занимаемую площадь. На одном сервере, в зависимости от его характеристик может хостится минимум 7 виртуальных машин различной конфигурации. У меня на не платформенном сервере умещалось до 10 виртуальных машин, каждая из которых выступала в кач-ве стенда того или иного программного продукта. Это были сервера OAS(Oracle Application Server), SharePoint, Exchange, AD и т.д. и т.п. В чем же подвох спросите Вы?

Подвох был. Но к счастью сейчас он уже не актуален. Но даже в бытность того когда он был актуален, мне удалось с ним справиться. Тем самым положить конец своему испытательному сроку на работе. Так вот первое что попалось мне в руки был ESXi 3. Обратите внимание на приставку i, которая обозначает именно то, что это версия распространяющаяся бесплатно. Аналоги которые платные имеют ряд надстроек, которые бесплатным дистрибутивам не доступны. Так вот довелось мне данный продукт разворачивать на не white-list платформе. Описывать это не имеет смысла, так как четвертая весрия данного продукта без бубна работает на стандартном железе.

Что же может Вас здесь заинтерисовать? Есть у меня в кармане один фокус. Представте ситуацию, что при создании ВМ(виртуальной машины), Вы указали размер жесткого диска к примеру 20 Гб. Проект растет и требует больших ресурсов, и было бы хорошо добавить места на диск. Ко всему прочему у Вас есть около 6 снапшотов. Но, увы... Стандартными методами этого сделать нельзя, но с помошью бубна- очень даже можно! Задача сводится к тому, чтобы увеличить место и не потерять снапшоты, да еще чтобы виртуалка поднялась.

Приступим! На машине с установленным сервером совершите следующие вещи:

1.Нажмите Alt+f1

2.Введите Unsupported

3.Далее логин и пароль пользователя root:pass

4.Выполните команду cd /vmfs/volumes/VmStore

5.Эта строка увеличит диск до 30Гб vmkfstools –extendvirtualdisk 30g DiskFileName.vmdk

Но вот проблема! При включении ВМ, не возможно найти снапшот. Проблема решаема. Дышите глубже, Вы взволнованы.

Ищем, что либо типа в vmware.log-

Oct 22 20:09:45.665: vmx| DISKLIB-LINK : Opened '/vmfs/volumes/4ab3f165-e0ed950e-cf85-001b213ad3c4/PSB-MSB-Dev/PSB-MSB-Dev.vmdk' (0xe): vmfs, 115343360 sectors / 55 GB.

Oct 22 20:09:45.665: vmx| DISKLIB-LINK : Attach: the capacity of each link is different (115343360 != 52428800).

Это значит, что в файлах жестких дисков(родителя и потомков, созд. при создании снапшота) различные размеры. Соотв открываем каждый из них и меняем на значение, которое стоит с лева от знака неравенста(115343360). Далее очень важно иметь цепочку передачи ссылок на родительский диск. Проверям что имеем в начальном. first.vmdk-

# Disk DescriptorFile

version=1

encoding="UTF-8"

CID=eb451bf3

parentCID=ffffffff

createType="vmfs"

# Extent description

RW 115343360 VMFS "PSB-MSB-Dev-flat.vmdk"

# The Disk Data Base

#DDB

ddb.virtualHWVersion = "4"

ddb.toolsVersion = "0"

ddb.encoding = "windows-1251"

ddb.longContentID = "a78cc5af078a93de79bf4525eb451bf3"

ddb.uuid = "60 00 C2 9e da be 3b 8c-33 f9 d5 eb c9 b3 5e 4e"

ddb.geometry.cylinders = "7179"

ddb.geometry.heads = "255"

ddb.geometry.sectors = "63"

ddb.adapterType = "lsilogic"

ddb.geometry.biosCylinders = "3263"

ddb.geometry.biosHeads = "255"

ddb.geometry.biosSectors = "63"

Это значение должно присутствовать в поле parentCID в след. Файле жесткого диска(для снапшота)

Например-

# Disk DescriptorFile

version=1

encoding="UTF-8"

CID=00000001

parentCID=eb451bf3

createType="vmfsSparse"

//Родительский файл

parentFileNameHint="PSB-MSB-Dev.vmdk"

# Extent description

//собственный

RW 115343360 VMFSSPARSE "PSB-MSB-Dev-000001-delta.vmdk"

# The Disk Data Base

#DDB

ddb.longContentID = "4f97f7bb521e1e9953eeda4ff1a8c0a4"

И так по возрастанию.

Также важно знать, что находится в файле вирт. Машины VirtMashineName.vmx

encoding = "UTF-8"

config.version = "8"

virtualHW.version = "7"

pciBridge0.present = "true"

pciBridge4.present = "true"

pciBridge4.virtualDev = "pcieRootPort"

pciBridge4.functions = "8"

pciBridge5.present = "true"

pciBridge5.virtualDev = "pcieRootPort"

pciBridge5.functions = "8"

pciBridge6.present = "true"

pciBridge6.virtualDev = "pcieRootPort"

pciBridge6.functions = "8"

pciBridge7.present = "true"

pciBridge7.virtualDev = "pcieRootPort"

pciBridge7.functions = "8"

vmci0.present = "true"

nvram = "PSB-MSB-Dev.nvram"

deploymentPlatform = "windows"

virtualHW.productCompatibility = "hosted"

unity.customColor = "|23C0C0C0"

tools.upgrade.policy = "useGlobal"

powerType.powerOff = "default"

powerType.powerOn = "default"

powerType.suspend = "default"

powerType.reset = "default"

displayName = "PSB-MSB-Dev"

extendedConfigFile = "PSB-MSB-Dev.vmxf"

floppy0.present = "true"

scsi0.present = "true"

scsi0.sharedBus = "none"

scsi0.virtualDev = "lsilogic"

memsize = "2048"

scsi0:0.present = "true"

//Должен быть файл последнего отчета

scsi0:0.fileName = "PSB-MSB-Dev-000012.vmdk"

scsi0:0.deviceType = "scsi-hardDisk"

ide1:0.present = "true"

ide1:0.clientDevice = "true"

ide1:0.deviceType = "cdrom-raw"

ide1:0.startConnected = "false"

floppy0.startConnected = "false"

floppy0.clientDevice = "true"

ethernet0.present = "true"

ethernet0.wakeOnPcktRcv = "false"

ethernet0.networkName = "VM Network"

ethernet0.addressType = "generated"

usb.present = "true"

- PSB-MSB-Dev.vmx 1/98 1%

И теперь у Вас все хорошо! ВМ имееть больше места. Шеф доволен, а Ваша самооценка выросла.

PS. Мне после этого ЗП подняли! Успехов =)