In God we trust
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
Но вот проблема! При включении ВМ, не возможно найти снапшот. Проблема решаема. Дышите глубже, Вы взволнованы.
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"
И так по возрастанию.
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. Мне после этого ЗП подняли! Успехов =)