VMware ESX server. Всякие полезности из командной строки.

* vSphere 4 *

Установка vCSHB - VC Server Heartbeat

4Gb disk, 512Mb RAM, Display 1024x768
Включить RDP (My Computer - Propertie - Remote)
Выключить Firewall (Control panel - Windows Firewall)
Enable VSS для C: C: - Properties - Shadow copy
Eth1 - Statical IP for VC, Advanced - WINS - Enable NetBIOS over TCP
Eth2 - Statical IP for HB channel, Advanced - WINS - Enable NetBIOS over TCP
Установить vSphere Client
Установить VC
Дистрибутив vCSHB обязан лежать на C: (с сетевого пути не ставится)

Открыть доступ к консоли esx-VM через VNC

Работает в ESX3.5, ESX4, WorkStation 6,7. В ESXi не работает

http://kb.vmware.com/selfservi...ayKC&externalId=1246

В .vmx добавляем

RemoteDisplay.vnc.enabled = TRUE
RemoteDisplay.vnc.port = "5910"
RemoteDisplay.vnc.password = "secret"

Не забыть в файволе на ESX-сервере открыть указанный порт

esxcfg-firewall --enableService vncServer
или
esxcfg-firewall -i 5910,tcp,in,vnc10

Коннектимся к ESX-серверу:

vncviewer esx.host.name:5910 или esx.host.name:10

Бэкап конфигурации ESXi через RCLI

Бэкап:

vicfg-cfgbackup.pl --server esxN --username root --password pass -s r:\esxN.cfg

Восстановление:
vicfg-cfgbackup.pl --server esxN --username root --password pass -l r:\esxN.cfg

Что такое vShield Zones

Это система VM-ок файрволлов(vShield) на каждом ESX + управляющая
консоль(vShield Manager) - тоже VM.

У каждой vShield три сетевых интерфейса: mgmt, unprot и prot, которые
подключены в соотв. портгруппы.

mgmt (со своим IP )- для коммуникации с vShield Manager
unprot смотрит в физическую сетку
prot - смотрит в internal vSwitch - в нем и живут защищаемые VM-ки
Обеспечивает полностью прозрачный firewall, фильтрацию и т.д.

Настройка VM Workstation 7.0 для установки в нее ESX4

Общий диск делаем Preallocated, Independent, Persistent, NoWriteCache
в .vmx добавляем строчки:

disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"

Это позволит в Workstation'е не нарываться на блокировку vmdk

Ethernet'а достаточно и одного.
Поставить его в "Bridged" + "Replicate physical connection state"
Для NAT и HosOnly чекбокса "Replicate conn state" нет, его можно сделать:
ethernet0.linkStatePropagation.enable = "TRUE"

Тогда виртуалки будут видны во внешнем LAN.

Wake on LAN включается так:
ethernet0.wakeOnPcktRcv = "FALSE"

Настройка VM для установки в нее ESX4

Да, это возможно. ESX 3.5 и 4.0 может крутиться внутри виртуальной
машины WorkStation 6,7, Mac Fusion 7 и ESX 4.0

http://www.vcritical.com/2009/05/vmware-esx-4-can-even-virtualize-itself/

Настройки VM:

GuestOS: RHEL 5(64 bit)
VM Virtuall Hardware Version 7
VCPU: 2, RAM: 2Gb
NIC: 2* e1000
SCSI: LSI Logic Parallel

PortGroup security: Promiscous mode=Accept

Ставимся со стандартного iso с ESX4 или ESX4i

Однако при попытке стартовать VM внутри виртуалного ESX получим:
"You may not power on virtual machine in a virtual machine"

Чтобы справиться с этим добавить в .vmx файл ESX'а строку

monitor_control.restrict_backdoor = TRUE

В V4 перестала работать скриптовая инсталляция

Веб-интерфейс для генерации ks-файлов был ликвидирован, зато в /root/ks.cfg
лежит адекватная версия для проинсталлированной системы.

опция загрузки ksdevice=eth0 отныне не работает, надо использовать vmnic0

итоговая строка скриптовой инсталляции должна выглядеть примерно так:

esx ks=nfs://192.168.51.10/ks/sc-unreal06.cfg ksdevice=vmnic0

http://communities.vmware.com/message/1274648
ks.cfg # вариант для сетовой инсталляции
. . .
install url http://192.168.1.1/4.0/
. . .

SNIP-config:

kernel vmlinuz-install-vmware4
append initrd=initrd-install-vmware4.img ksdevice=vmnic0 ip=172.16.12.132 netmask=255.255.255.0 gateway=172.16.12.1 nameserver=172.16.11.250 vmkopts=debugLogToSerial:1 mem=512M ks=http://172.16.10.2/ks/${file}.cfg

??
IPAPPEND 1

Как открыть root'доступ в vMA

sudo chsh -s /bin/bash root

how can i view which physical nic each VM's vNic maps to

esxtop will show the used uplink in the TEAM-PNIC colum
(vSphere esxtop only)

Distributed switch: ephemeral vs dynamic port binding

Static - port-id для VM назначается в момент создания/задания подключения
количество подключенных VM ограничено числом портов в портгруппе
Dynamic - port-id выдается в момент poweron
количество "подключеных" VM не ограничено
количество включенных VM ограничено числом портов в портгруппе
Ephemeral - количество портов в портгруппе не задано.
Port-id выдается в момент poweron,
количество включенных VM - любое
В этом режиме невозможно задавать параметры для конкретных port-id

FT - экономим netw - secondary может самостоятельно вести disk IO

По умолчанию весь дисковый ввод/вывод ведет PrimaryVM, а прочитанные данные
передаются на SecondaryVM через FTloggingNet. Но можно переключить SecondaryVM
на самостоятельное чтение с диска

Добавить в .vms

replay.logReadData = checksum

Естественно, дисковый вывод порождаемый SecondaryVM по-прежнему игнорируется

FT - список совместимости

3rd-Generation AMD Opteron based on the AMD Barcelona, Budapest and Shanghai
processor families; and Intel Xeon processors based on the Penryn and Nehalem
microarchitectures

Intel Xeon based on 45nm Core 2 Microarchitecture Category:

o 3100, 3300, 5200 (DP), 5400, 7400

Intel Xeon based on Core i7 Microarchitecture Category:

o 5500 Series

AMD 3rd Generation Opteron Category:

o 1300, 2300 Series (DP), 8300 (MP)

Ограничен также список поддерживаемых операционных систем. Подробности:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1008027

FT FAQ

vApp IP settings do not directly influence anything

Then, at the individual VM level turn on Edit Settings > Options > vApp Options, and at OVF Settings turn on one or both of the Environment Transports. The next thing is to go to vApp Options > Advanced > Properties. For each network setting that you want to query in your VM add a new property there, give it an appropriate key, open Type > Edit, select Dynamic Property and the thing you want to query (e.g. IP Address for network Production). When you are satisfied, give your OK to all dialogs and start the VM.

Once the VM is up, depending on which transport you enabled you will find a CD in its drive containing ovf-env.xml or you can query the same information with

vmware-guestd --cmd "info-get guestinfo.ovfEnv"

This XML blob will contain the properties you configured above including, for example an IP adress assigned from the IP Pool. All that's left to do is write code that parses the file and bashes the settings into the guest OS. Of course all vApp properties that are not autoconfigured will be there as well.

Вернуть аплинк из дистрибутед свитча обратно обычному, с SC-портом

esxcfg-vswitch -l # get the port ID for the nic

esxcfg-vswitch -V the-port-id -Q vmnic# DVSvSwitchname

esxcfg-vswitch -L vmnic# vSwitch#

* Vi 3.5 *

SSH доступ к ESXi

http://wiki.vm4.ru/InstBase/ssh

Официально VMware не дает вообще такой возможности. Но.
В локальной консоли ESXi нажмите ALT-F1. Напечатайте unsupported.
Текста видно не будет, но вы войдете в режим Tech Support Mode и
появится запрос пароля root

vi /etc/inetd.conf
Расскомментировать #ssh
Перезапустите management services командой /sbin/services.sh restart.

Что нового в VI4 aka vSphere aka NextGeneration VI

Upgrading VMware deployments

Distributed virtual switches to simplify datacenter-wide network management

VMDirectPath - assign a PCI adapter directly to a virtual machine

Storage vMotion - миграция диска работающей VM

Увеличение размера виртуальных дисков и VMFS томов в онлайне

VMware's new Pluggable Storage Architecture

VMware Fault Tolerance - application availability

Lincked Mode - Manage more than one vCenter Server from the same client

Use the new Host Profiles feature to keep hosts uniformly configured

VMware Distributed Power Management - энергосбережение

Save disk space with thin provisioning

Виртуальные апплиансы, содержащие сразу несколько VM

Если в VI Client не открывается консоль виртуальной машины

Clicked on the VM and selected "open console" I got the following:

"error connecting: can not connect to host x.x.x.x: a connection attempt
failed because the connected party did not properly respond after a period
of time, or established connection failed because connected host has failed
to respond."

To fix the problem add the following line to the /etc/vmware/config file:

vmauthd.server.alwaysProxy = "TRUE"

http://vmetc.com/2008/06/02/vi-client-open-console-attempt-fails/

Если клавиатура в консоли VM двоит

Увеличиваем таймаут между нажатиями в .vmx

keyboard.typematicMinDelay = 20000000

Как остановить виртуальную машину

Получить список зарегистрированных в ESX-сервере машин.

vmware-cmd -l

Посмотреть статус VM

vmware-cmd {cfg} getstate

where {cfg} is the path to the .vmx file retrieved from the vmware-cmd -l
command.

Останов, старт, саспенд, снапшот виртуальной машины: start/stop/suspend/snapshot

vmware-cmd {cfg} stop

4. Verify the state again with:

vmware-cmd {cfg} getstate

Как установить в ESX Storage VMotion

www.vmware.com => Downloads => VMware Infrastructure 3 Download =>
Driver & Tools => VMware Infrastructure Remote CLI Download

Проще всего запускаться командой

svmotion --interactive

Как добавить пользовательские дравера на Convertor Cold Clone CD

Within the cd there is a tool called petool.exe with it you can add the
needed extra drivers for your hardware.

You just need to create a folder in uppercase with the drivers, than run the
command bellow, it will import the drivers to the coldclone ISO.

petool.exe -i c:\temp\coldclone.iso -d c:\temp\DRIVERS

Как ограничить IP-доступ к виртуальному центру

conf directory for tomcat and there is a file called server.xml
If you put the following entry in that file it does the job

There is a different valve for limiting by domain name.

Создание и управление VMFS-стораджами

Сторадж создается только на SCSI-дисках (к которым относятся SCSI, SAS, FC,
iSCSI) В отдельной партиции, ID партиции - "fb", начало партиции желательно
выравнять на 128 блок (64Kb)

esxcfg-vmhbadevs # выводит список лунов и соответствующих им /dev/sd* в SC

vmhba1:0:13 /dev/sda
vmhba1:0:14 /dev/sdb
vmhba1:0:21 /dev/sdc

fdisk /dev/sda # создаем primary партицию с ID "fb"
n
p 1
t 1
fb
w

fdisk /dev/sda # выставляем начало 1 партиции на 128-й блок (64-й килобайт)
x
b 1
128
w
. . .

fdisk -l /dev/sda
Device Boot Start End Blocks Id System
/dev/sda1 1 11 88326 fb Vmware VMFS

esxcfg-info -s

При создании стораджа указываем партицию, которую хотим отформатировать под VMFS3

vmkfstools -C vmfs3 -S StorageName vmhba1:0:13:1

Добавление экстенда к стораджу:

vmkfstools -Z vmhba1:0:14:1 vmhba1:0:13:1 # -Z добавка голова

Работа со стораджами

ls -l /vmfs/volumes
vdf
vmkfstools -P StorageName
vmkfstools -P -h StorageName # -h - выводить разнеры в Mb/Gb

# переименование Стораджа (старый симлинк удалять и переименовывать НЕ НАДО)

ln -sf /vmfs/volumes/storage-uuid /vmfs/volumes/NewStorageName

Файлы, из которых состоит VM

VM.vmx Конфиг-файл VM

VM.vmdk Диск VM (конфиг файл диска)
VM-flat.vmdk Цельный диск VM (preallocated - собственно данные)

VM-f0001.vmdk Splitted диск VM (2Гб кусок splited preallocated диска)
VM-s0001.vmdk Splitted growable диск VM (2Гб кусок расрастущего диска)

VM.vmsd Словарь снапшота и заснапшоченых дисков
VM.vmem VM memory mapped то file
VM.nvram NVRAM Award-BIOS'а VM
VM.vmx.lock Lock, создается при старте VM
VM-delta.vmdk Снапшотная дельта
VM-Snapshot8.vmsn Конфигурация снапшота No 8

Distribudet Lock Handling Host-блокировки на VMFS3

Хост-lock создается в heartbit-регионе, timestamp обновляются каждые 3 сек.

Наличие лока проверяется 15 секунд - если за 5 проверок timestamp не
обновился - значит владелец lock'а скончался, и его можно перехватить. Далее
делается восстановление накатом журнала, и ставится свой lock.

Монтаж стораджей, и стораджи на LUN-снапшотах

ESX монтирует все корректные (с его точки зрения) стораджи с VMFS3
В заголовке VMFS3 указан UUID и номер LUN'а, на котором он создан.

Если в заголовке VMFS3 указан не тот LUN, под которым мы его видим -
значит это не оригинал, а RAID-овый снапшот, полученный в результате CA или BC

Категорически недопустимо монтировать два стораджа, имеющих одинаковый UUID
Автоматический монтаж управляется двумя Advanced Config-переменными
LVM.DisallowSnapshotLUN, LVM.EnableResignature

LVM.EnableResignature = 1 (default) если видим снапшотный LUN - прописываем
ему в заголовок новый UUID и LUN, после этого он безболезненно монтируется

LVM.DisallowSnapshotLUN = 1 либо просто запрещаем монтировать такой LUN

LVM.DisallowSnapshotLUN = 0 (default 0) снапшотный LUN - таки монтируется

LVM.EnableResignature = 0 если видим снапшотный LUN - заголовок не меняем

Самый цирк случается, если хитровымученный RAID-массив один и тот же LUN
двум разным хостам показывает под разным lun-номером. Тогда один из них
всегда будет воспринимать этот LUN как заснапшоченый - и стремиться
произвести с ним ресигнатуру - скорректировать заголовок, следом - второй
хост захочет того-же - и так в вечном цикле. Именно для таких случаев
выставляют LVM.EnableResignature = 0, LVM.DisallowSnapshotLUN = 0

Управление переменными:

cat /proc/vmware/config/LVM/EnableResignature # посмотреть

esxcfg-advcfg -g /LVM/EnableResignature # посмотреть

esxcfg-advcfg -s 1 /LVM/EnableResignature # выставить в 1

esxcfg-rescan vmhba1

Либо (стремно)

vi /etc/vmware/esx.conf
/adv/LVM/EnableResignature = "1"

/adv/Disk/MaskLUNs = "vmhba2:0:34-38;vmhba3:0:1,5,7-9"
/adv/Disk/MaxLUN = "256"
/adv/Disk/DiskSupportSparseLUN
/adv/Disk/ShedNumReqOutstanding

shutdown -r 0

Модули, драверы и их настройки

esxcfg-module -q # посмотреть статус и список модулей VMKERNEL

cat /proc/scsi/qla2300/1 # посмотреть настройки 1-го контроллера типа qla2300

/proc/scsi/[draver]/[instance]

esxcfg-boot -q vmkmod # boot-options vmkernel'a

# сконфигурить длину очереди для QLogig FC

esxcfg-module -s ql2maxqdepth=64 qla2300_707_vmw

vi /etc/vmware/esx.conf
/vmkernel/module/qla2300_707_vmw.o/options = ql2maxqdepth=64

vmkload_mod -s qla2300_707_vmw # детальные текущие настройки дравера

Сразу несколько настроек для разных instansow драверa в одной команде:

esxcfg-module -s "lpfc0_lun_queue_depth=16 lpfc0_lun_queue_depth=16" lpfcdd_7xx

после любых настроек модулей выполнить команду esxcfg-boot -b

esxcfg-boot -b # пересобирает init-ram-disk и его настройки

Для гостевых Windows - удлинить таймаут по опознанию сбойнувшего диска

Старт -- Рун -- регедит

HKEY_LOCAL_MACHINE > System > CurrentControlSet > Services > Disk

TimeOutValue = 60

Работаем с virtual-свитчами

esxcfg-nics -l # статус физических ethernet'ов

esxcfg-nics -s 1000 -d full vmnic2

32 nics per host
32 nics per vSwitch
128 vSwitchs
512 PortGroups
1016 Ports per vSwitch
4096 Ports in all PortGroups (точнее 4096 - 128 - numvswith*8)

esxcfg-vswitch -a vSwith2:32 # создать 24-портовый (32-8) v-свитч

esxcfg-vswitch -D Production vSwith2 # оторвать портгруппу
esxcfg-vswitch -A Production vSwith2 # создать в vSwith2 портгруппу Production
esxcfg-vswitch -A Production -v 105 vSwith2 # создать в vSwith2 портгруппу Production с VLAN 105
esxcfg-vswitch -v 105 -p "Service Console" vSwitch0 # Назначить порт-группе Service Console VLAN 105

esxcfg-vswitch -L vmnic2 vSwith2 # подключить физический ethernet в vSwith2
esxcfg-vswitch -U vmnic2 vSwith2 # оторвать физический ethernet

esxcfg-vswitch -l # просмотреть конфиг всех vSwitch

esxcfg-vswitch -m 9000 vSwith1 # enable Jumbo frames в vSwitch1

esxcfg-vswitch -B listen vSwith1 # включить CiscoDiscoveryProtocol
esxcfg-vswitch -B down vSwith1 # выключить CDP
esxcfg-vswitch -b vSwith1 # проверить статус CDP

esxcfg-vswif -l # Посмотреть IP-настройки Service Console

# Назначить IP-адрес для Service Console

esxcfg-vswif -a -i 192.168.31.36 -n 255.255.255.0 -m 1500 -p "Service Console" vswif0

esxcfg-vmknic -l # посмотреть статус VMkernel'ных IP
esxcfg-vmknic -a -i IP -n NETMASK -m MTU -p PortGroupName # назначить IP для vmkernel
# TSO включается по умолчанию, чтобы не включался - добавить -t

esxcfg-route [gateway-IP] # default gateway для VMkernel
esxcfg-route -l # посмотреть таблицу маршрутизации vmkernel
cat /proc/vmware/net/tcpip/ifconfig
vmping # ping с vmkernel'ного адреса

Как прописать себе права админа VC, если Администратор стал ReadOnly

VC SQL database table : VPX_ACCESS

Then add another row :
ID: 1
Principal : Administrators
Role_ID : -1
ENTITY_ID : 1
FLAG : 3

Afterwards you need to restart the Virtual Center Services.

Как переименовать ESX-сервер

1. Update the following files with the correct server name
/etc/hosts
/etc/sysconfig/network
/etc/vmware/esx.conf

2. Update the hostname as follows

# hostname mateo0x.hp.local

3. Restart the network

# service network restart

4. Restart the hostd daemon so that the VI client will get the updated hostname

# service mgmt-vmware restart

http://www.kulichki.com/moshkow/unixhelp/vmware.txt