VMware vSphere, ESXi
Примеры использования командной строки, технические подробности
© 2008-2022 Составитель сборника М.Е.Мошков ? ../VMWARE/
Смонтировать VMFS в Linux
yum install vmfs-tools vmfs6-tools
vmfs-fuse /dev/sdb1 /vmfs5-mountdir
vmfs6-fuse /dev/sdc1 /vmfs6-mountdir
vmfs-fuse /dev/sdb1 /dev/sde1 /vmfs5-mountdir-me # multyextent mount
В openSUSE vmfs-tools лежит в отдельном репозитории
https://download.opensuse.org/repositories/filesystems/15.5/filesystems.repo
https://download.opensuse.org/repositories/filesystems/15.6/filesystems.repo
zypper addrepo \
https://download.opensuse.org/repositories/filesystems/15.5/filesystems.repo
zypper lr
zypper pa -ir "filesystems"
Чтобы использовать USB в качестве датастора
По умолчанию все usb-устройства перехватываются сервисом usbarbitrator для
обеспечния проброса их в VM. Если USB-диск не перехвачен - он распознается
как обычный локальный диск, и пригоден для датастора.
Три варианта: 1) отменить перехват по конкретному устройству/порту,
2) прицелить USB Quirck по DeviceID, 3) задисеблить usbarbitrator
1) Выяснить Bus : Dev : vendorId : productId
esxcli hardware usb passthrough device list
esxcli hardware usb passthrough device disable -d 1:4:1058:1140
# NB! не сработает, если воткнуться в другой USB-порт
2) Выяснить DeviceID (в формате 0xDEVICEID:oxVENDORID)
lusb
esxcli system settings advanced set -o /USB/quirks \
-s 0x1058:0x1140:0:0xffff:UQ_MSC_NO_UNCLAIM
3) Полное отключение USBarbitrator
ESX > Configure > System > Advanced System Settings
USB.arbitratorAutoStartDisabled == 1
или:
/etc/init.d/usbarbitrator stop
chkconfig usbarbitrator off
4) Выяснить, какое название получил обнаруженный USB-диск
esxcli storage core device list |grep '^mpx' -A3
5) Датастор можно создавать как через GUI, так и коммандлайном
DISK="/vmfs/devices/disks/mpx.vmhba34:C0:T0:L0"
partedUtil mklabel ${DISK} gpt
GUID=BB42E02A400F11DB9590000C2922E3C9
partedUtil "setptbl" "${DISK}" "gpt" "1 2048 $(eval expr $(partedUtil getptbl ${DISK} | tail -1 | awk '{print $1 " \\* " $2 " \\* " $3}') - 1) $GUID 0"
vmkfstools -C vmfs6 -S usbdrive ${DISK}:1
Если датаастор не монтируется автоматически (т.к. распознан как снапшот)
esxcli storage vmfs snapshot list | grep UUID
esxcli storage vmfs snapshot mount -u 583b1a72-ade01532-55f6-f44d30649051
Технологические принципы виртуализации
Виртуальная машина как исполнитель программного кода.
Процессорные команды обращения к аппаратуре.
Управление выполнением в процессоре.
CPU: Перехват "ключевых" команд. Паравиртуализация, софтверная виртуализация, аппаратная поддержка виртуализации CPU.
CPU: Многопроцессорность. Co-scheduling: независимый, жесткий, мягкий.
Memory: виртуальная память процесса, подгрузка данных из RAM, TLB, таблица размещения виртуальной памяти процесса.
Memory: софтверная трансляция таблиц, аппаратная поддержка виртуализации памяти.
Оптимизация. Hyperthreading.
Оптимизация. NUMA
Оптимизация. Паравиртуальная аппаратура.
Оптимизация. Проброс физического железа в виртуалку
Виртуализация жестких дисков. Прямой проброс, толстое выделение, тонкие диски.
How to save passwords for android horizon client
Start ADSI on VC
Connect to DC=vdi,DC=vmware,DC=int -- localhost:389
OU=Properties,OU=Global,CN=Common -- pae-ClientCredentialCacheTimeout
0 = disable, N = N minutes, -1 = forever
VSAN cache drive
Для гибридной конфигурации VSAN размер кэш-драйвов рекомендуется в 10% от
исходных пользовательских данных.
Используется: 70% read-cache
30% write-bufer
В all-flash кэш-драйв используется только под write-bufer, и технически его
размер может быть незначителен, достаточный для удержания врите-бурста.
Однако write-bufer получает ssd-writes столько же, сколько все capacity-
drives дисковой группы вместе взятые, и актуальным становится не размер
диска, а его TBD, который, впрочем, пропорционален размеру диска.
Максимальный размер кэша на одну DG в VSAN 6 и 7 ограничен - 600 Gb,
в VSAN 8 on-disk 17+ кэш по умолчанию ограничен 600 Gb,
но можно ограничение отключить:
# esxcfg-advcfg -s 1 /LSOM/enableLargeWb # SET
# esxcfg-advcfg -g /LSOM/enableLargeWb # get
cloud-init
Подготовка образа VM с cloud-init:
CDROM виртуалки должен быть в "transparent mode"
yum|dnf|zypper install cloud-init # проинсталлировать
systemctl enable cloud-init-local cloud-init cloud-config cloud-final
# взведение на first-boot
cloud-init clean --log --machine-id
shutdown -r now
# Для загрузки БЕЗ вызова cloud-init добавить в кернел-параметры
cloud-init=disabled
touch /etc/cloud/cloud-init.disabled
Установка Tanzu
https://cormachogan.com/2020/09/29/deploying-tanzu-kubernetes-guest-cluster-in-vsphere-with-tanzu/
Важный нюанс - обязательно должен быть прописан роутинг с primary workload
до extended-workload сеток, и пропуск в фиревалл портов 6433 и 30000-32000
А так же все добавляемые extended-workload-сетки должны быть записаны в
конфиг-файл (по нему ха-проьы активирует в appliance необходимый роутинг)
Без заполнения конфига роутинг до extended-workloads будет отправляться
через манагемент-интерфейс HA-proxy
Crontab in ESXi
Кронтаб уже используется в ESXi, его конфиг можно редактировать VI
и перезапустить crond
vi /var/spool/cron/crontabs/root
kill `cat /var/run/crond.pid`
/usr/lib/vmware/busybox/bin/busybox crond
Если интранет использует IP 172.17.* VSAN Fileservice не заводится
vsanfs-ноды поднимают nfs и samba-серверы контейнерами в локальных докерах.
Контейнеры получают IP по умолчанию - 172.17.0.* - при пересечении с
внешними рабочими диапазонами возникают проблемы (доступа клиентов,
роутинга, DNS, AD...)
Хак: На каждой ноде в файле /etc/docker/daemon.json прописать
(а после каждого обновления - перепрописывать)
{
"default-address-pools": // диапазон IP для контейнеров
[{"base":"192.168.5.0/24","size":24}] // вместо дефолтного 172.1[7-9].*.*
}
Смена протухшего пароля root в vcenter 7.0
ssh 'administrator@vsphere.local'@vcenter.address
Command> localaccounts.user.password.update --username root --password
Установка Power-CLI 7.0
https://code.vmware.com/web/tool/vmware-powercli
# распечатать каталоги для размещения PCM-модулей
$env:PSModulePath
# Вскрыть ZIP с модулями в одной из перечисленных папок
# Прописать разрешение на добавленные каталоги
Get-ChildItem -Path 'folder_path' -Recurse | Unblock-File
# Verify that the VMware PowerCLI modules have installed successfully.
Get-Module VMware* -ListAvailable
Максимальная скорость VMotion
В версиях ниже 7 один vmotion vmknic разгонялся не выше 18Gbit/sec и для
получения полной полосы на 25 и 40Gbit-ных аплинках нужно делать 2 и 3 vmo-
tion-vmknic соответственно.
Начиная с v7update2 один vmotion-vmknic может заполнить до 100Gbit.
Cannot vMotion VM attached to switch with no uplinks configured
Это дефолтное поведение.
Чтоб от него отказаться, вписать в VC Advanced Setting:
config.migrate.test.CompatibleNetworks.VMOnVirtualIntranet = false
Гостевой UNMAP/TRIM
ESXi поддерживает гостевой unmap на RDM и thin, и не поддерживает для thick
son lsblk -D # рапорт поддержки UNMAP дисками - ненулевые DISC-GRAN DISC-MAX
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
nvme0n1 0 512B 2T 0 # ДА
sda 0 0 0 0 # нет
Включение LLDP и CDP на стандартном свитче
# CDP
esxcfg-vswitch -B [none|both|listen|advertise] vSwitch1 # управление CDP
esxcfg-vswitch -b vSwitch1 # посмотреть CDP
# LLDP
# vsish
cd /net/portsets/vSwitch0
ls ports
# look at clientName:vmnic2, clientType: Physical NIC, flag UPLINK
get ports/33554437/status
get ports/33554439/status
set ports/33554437/lldp/enable 1
set ports/33554439/lldp/enable 1
Horizon Federation
Pool Scope:
Within POD десктоп ищется только в текущем POD, если в нем нет - отказ
Within Site в текущем POD, затем в других POD сайта, и на них нет - отказ
Global в текущем ПОД, затем в том site, затем в остальных, если нет - отказ
Если десктопы(ы) для пользователя уже есть, и он(и) находится в соответствии со SCOPE - берем
тот, что нашелся, где бы он не был
Запуск и авторизацию дектопа обеспечивает CS-владелец
Туннель до десктопа обеспечивает CS-подключения
Если один и тот же десктоп entitled пользователю
и через GlobalEntitlement и через LocalEntitlement, то
в списках доступны подов на клиенте декстоп показывается дважды,
через обе иконки попадаешь в тот же десктоп.
Пересечение LocalEntitlement и GlobaEntitlement вызывает шизофреническую
чехарду, десктоп поднятый через LocalEnt - передается в список Global, и
наоборот
Horizon UAG
Поскольку UAG со своего URL светит сертификатом выписанным на домен CS -
в клиент setting SSL придется выставить в "No verify"
Двойной туннель на UAG возможен для PCoIP, и не работает по Blast/RDP
При применении UAG: на CS PCoIP tunnel: можно включить, можно отключить
При применении UAG: на CS Blast tunnel: Only HTML access
Tanzu
Количество мастер-нод в Tanzu Supervisor-кластере можно уменьшить
VC:/etc/vmware/wcp/wcpsvc.yaml Set "minmasters" and "maxmasters" to 2
Расширение VMFS с помощью commandline
https://kb.vmware.com/s/article/2002461
Obtain the device identifier for the Datastore to be modified.
# vmkfstools -P /vmfs/volumes/Datastore_name
partedUtil check existing partition on VMFS volume (should be one partition).
# partedUtil get "/vmfs/devices/disks/mpx.vmhbax:Cx:Tx:Lx"
Use partedUtil to get usable sectors and resize parition.
# partedUtil getUsableSectors "/vmfs/devices/disks/mpx.vmhbax:Cx:Tx:Lx"
(NB: NewEndingSector = 16879000 - 1 # Т.к. нумерация секторов начинается с 0)
# partedUtil resize "/vmfs/devices/disks/mpx.vmhbax:Cx:Tx:Lx" \
PartitionNumber OldStartingSector NewEndingSector
Grow the VMFS Datastore in to the new space using the vmkfstools --growfs
# vmkfstools --growfs "/vmfs/devices/disks/Device:partition" \
"/vmfs/devices/disks/Device:partition"
For example:
# partedUtil resize "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0" \
3 10229760 16878999
# vmkfstools --growfs "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0:3" \
"/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0:3"
Execute to perform a refresh of the VMFS volumes by running this command:
# vmkfstools -V
Validate that the size of the VMFS Datastore has increased
# df -h
Виды network в vCloud Director
1. External Networks -- пробрасывает в Provider Portal из vSphere
стандартные и VDS портовые группы. Присваивает им vCloud'ные имена.
может "склеивать" по одной портгруппе от разных VC
2. Network pools. Механизмы для генерации внутренних сеток для Organization.
vxlan - клепает LogicalSwitch в конкретной Транспортной Зоне NSX-V
geneve - клепает Segment в конкретной Транспортной Зоне NSX-T
VLAN - клепает VLAN-портгруппу на конкретном VDS, назначая ей VLAN из пула
поргруппы - берет одну из заданного множества уже созданных портгрупп на VDS
NSX-T ...
3. OvCD-network - задаются для OvDC. Shared OvDC-network видна во всех OvDC
тенанта(Organization).
From "External Network". Присваивает собственное внутритенантовое
название. Создать может только администратор VCD
Organization-Network - создается админом тенанта, внутри Network-pool
Internal - просто сетка L2. В нее автоматически втыкается создаваемый
невидимый служебный Edge для обеспечения DHCP(только dhcp)
Organization-Network Routed - сетка L2. В нее втыкается какой-нибудь из
существующих OvDC-Edge, на выбор tenant-админа. Этот Edge роутит друг с
другом все подключенные Routed-networks, сливает их трафик "на север"
по аплинкам.
OvDC-Edge может обеспечить для подключенных сетей полезные
Services: firewall, dhcp, dns, NAT, LB, L2VPN...
4. VAPP-Network. Каждому vApp админ назначает несколько vAPP-сеток.
VM'ки vAPP можно подключать только в назначенные vAPP-network.
Organization - подключение в "общую сеть"
vAPP-net - персональная, видимая только в этом vAPP сетка, создается в
Network-pool, со своим Subnet и личным GW.
vAPP-net CONNECTED to OrgNet - персональная, видимая только в этом vAPP
сетка, со своим Subnet и личным GW. Для нее делается личный невидимый
служебный Edge, который будет NAT-ировать трафик с vApp-net в Org-net. Для
каждой VM из vApp назначается личный "External IP" из Org-net IP-Pool'а,
делается Reflexive-NAT VM-IP <==> External-VM-IP
5. vApp with "Fenced Network" - когда мы опасаемся, что IP, назначенные
внутри vApp могут пересечься с чужими vApp на одной и то же Organzation-net-
work, можно включить vApp'у Fencing (отгораживание)
Делается вид, что VM'ки подключены в Ogr-net, получают IP из Org-net IP-
pool, на самом деле создается служебный "vAPP-net CONNECTED to OrgNet", и
трафик VM'ок передается в Org-net сквозь невидимый служебный Edge, который
заряжает Proxy-Arp на связующих интерфейсах, и заодно NAT'ит трафик с
"официальных" IP на "External IP"
NSX активация DHCP Server
1. Add DHCP Profile:
Type: DNS Server; Server IP (не должен пересекаться с IP сегментов); Edge Cluster;
2. В свойствах роутера: Set IP Address Management: Type: DHCP Server; DHCP Server
3. В свойствах сегмента: Edit DHCP Config -- > DHCP Range; DNS Servers;
4. На ubuntu: /etc/network/interfaces iface ens160 inet dhcp
ifdown ens160 ; ifup ens160
NSX DNS redirectors АКА "DNS Service"
DNS редиректоры поднимаются только на Active/Standby Т0/Т1-роутерах, по одному на роутер,
на Active/Active гейтвей DNS редиректор не назначить
IP DNS-редиректора не должен пересекаться с IP-диапазонами сегментов
Сперва Add DNS-default Zone:
DNS-default-Zone-name; Server IPs: куда форвардим; Source IP: с какого ходить IP
Затем Add DNS Service:
Name; Gateway; DNS Service IP=Source IP; Default Zone = DNS-default-Zone-name
Как удалить зомби-дисковые группы из мертвого VSAN
ls -al /dev/disks/
Посмотреть, у каких дисков есть партиции (VSAN делает 2)
esxcli vsan storage list # подсмотреть UUID дисковой группы
esxcli vsan storage remove -u 524022e4-2d92-7e47-c09d-b2f9ea6c774b
Полный день сурка для VM
tools.syncTime = "FALSE"
time.synchronize.continue = "FALSE"
time.synchronize.shrink = "FALSE"
time.synchronize.restore = "FALSE"
time.synchronize.tools.startup = "FALSE"
time.synchronize.resume.disk = "FALSE"
time.synchronize.resume.memory = "FALSE"
rtc.startTime = "1612971568" # 2021-02-10 18:41
И дискам выставить атрибут "independend nonpersistend"
Или просто сделать снапшот и при необходимости к нему откатываться
Как держать Виндовую VM в прошлом времени
При старте windows тулзы самостоятельно и насильственно синхронизируют часы
VM с часами хоста. Это поведение должен отключать чекбокс в
VM -- Settings -- VM Option -- VMTools -- "Synchronize guest time with host"
но он не отключает. Поэтому прописываем в .vmx
tools.syncTime = "FALSE"
time.synchronize.tools.startup = "FALSE"
Установка апдейтов на VCSA
# для версий 7.x
/usr/lib/applmgmt/support/scripts/software-packages.py stage --url # --iso
/usr/lib/applmgmt/support/scripts/software-packages.py list --staged
/usr/lib/applmgmt/support/scripts/software-packages.py install --staged
# software-packages stage --iso # для версий 6.x
Тонкости с VRA. Назначение размещения по стораджу
Дефолтное размещение VM задает Дефолтный VRA Storage Profile
Персональное размещение vSphere.VM и AgnosticVM задается тегами:
resources.VMname12.properties.storage.constraints:
- tag: Таг-датастора или Таг-Storage_Профайла
Персональное размещение CloudAgnosticVolume задается тегами:
resources.VOlume13.properties.storage.constraints:
- tag: Таг-датастора или Таг-Storage_Профайла
Персональное размещение vMwareDisk задается тегом, стораджполиси, датастором:
resources.VOlume13.properties.storage.constraints: - tag: Таг-датастора
resources.VOlume14.properties.storagePolicy: vSphereStoragePolicyName
resources.VOlume15.properties.dataStore: vSphereDatastoreName
Назначать Сторадж-профайлы напрямую в VM или диски - не получится
На Сторадж-профайл ссылаться _только_ косвенно - через constraints tag
(вроде бы ;-)
Автоматическое гашение виртуалок потерявших диск в VSAN
Оказывается, у VSAN 7.0 для Stratched Cluster сделали аналог HA VM Component
Protection. Включается адвансед-параметром:
VSAN.AutoTerminateGhostVm = TRUE
Для обычного VSAN эта опция неприменима, и в нем на отколовшихся хостах
предлагается вручную запускать скрипт, автоматически распознающий и
убивающий "призрачные" VMки (потерявшие из-за раскола VSAN свои диски)
# python killInaccessibleVms.py
Размер системной партиции OSDATA в ESXi 7.0
Инсталлятор создает три партиции:
bootbank1 bootbank 1-8Gb
bootbank2 altbootbank 1-8Gb
OSDATA scratch + store + dumps 4-120 Gb (зависит от размера диска)
Размер OSDATA выставляется автоматически, на дисках меньше 128 Gb ESXi
инсталляция занимает _весь_ диск.
Перехватив загрузку ESC Shft+O можно задать желаемый размер OSDATA
autoPartitionOSDataSize=4096
https://www.virtuallyghetto.com/2020/05/changing-the-default-size-of-the-esx-osdata-volume-in-esxi-7-0.html
Оптимизация скорости VMotion
Для vmnic 1Gb/10Gb - создать для каждого свой vmk с VMotion
Для vmnic 40Gb и 100Gb - т.к. один thread на одном core для одного vmk
разгоняется максимум до 15Gb, то:
а) Надо делать несколько (от 3 до 6) vmk на один vmnic.
либо увеличить число потоков(Helpers) и приемных очередей на один vmk
b) Migrate.VMotionStreamHelpers = 3 (от 3 до 6) на отправителе
Net.TcipRxDispatchQueues = 3 (от 3 до 6) на получателе
Оптимизация сетевого стека для "быстрых сетевых" VM
# vmxnet3 virtual ethernet
# .vmx
sched.mem.prealloc = "TRUE"
sched.mem.prealloc.pinnedMainMem = "TRUE"
sched.swap.vmxSwapEnabled = "FALSE"
ethernet0.ctxPerDev = "3"
ethernet1.ctxPerDev = "3" . . .
----------------------------------
Host setting
# SplitTx Mode On
vsish -e set /net/pNics/vmnic0/sched/txMode 1
vsish -e set /net/pNics/vmnic1/sched/txMode 1
# Jumbo Frames On
Про LACP on VDS
http://www.k-max.name/vmware/razbiraemsya-s-lacp-i-nic-teaming-v-vmware/
Со стороны VDS настройка LACP задается в свойствах LACP -- LAG
Со стороны физического коммутатора настройка выглядит примрно так:
channel-group {group-id} mode on # статический LA (без CP)
channel-group {group-id} mode active # динамический LACP - вызывающая сторона
channel-group {group-id} mode passive # отвечающая сторона
# обе стороны могут быть в active, просто LACP PDU-пакетов будет больше
# если обе стороны в passive - LAG не соберется
# если одна из сторон НЕ в active|passive - LAG не соберется
NSX logging
NSX distributed firewall log
/var/log/dfwpktlogs.log
ruleID clusterID SRC DEST
Net+Sec -- Firewall Log column
Audit/system event:
/home/secureall/secureall/logs/vsm.log
Чтобы ESXi пускал ssh'ем непривелегированного пользователя
1. Не забыть активировать и стартвать sshd
2. Выдать пользователю Permition - Role=Administrator
Если Administrator давать не хочется, редактируем
/etc/security/access.conf и дописываем в него
. . .
*:username:ALL
этот файл зачищается и регенерится при каждой перезагрузке, а так же -
при добавлении новых пользователей и при выдаче Permitions
Поэтому придется колхозить его восстановление в начальную загрузку,
например через /etc/rc.local (если ESXi 4.x или ESXi 5.0)
или в /etc/rc.local.d/local.sh (если ESXi 5.1+)
Что нового в NSX 6.5
в Microsegmentation aka distributed firewall:
Распознает по Application ID трафик протоколов
AD, KMS, DNS, RDP, SSH, SMB, TLS и т.д. без привязки к номеру порта
в Microsegmentation aka distributed firewall:
Распознает по User ID трафик конкретного логина (даже на Terminal server)
Edge Gateway HA - реализован BFD, сократило переключение с 20 сек до 5-10 сек
EG - усовершенствования:
NAT64 on uplink provides IPv6 to IPv4 translation
Route Redistribution - реализован LE/GE
BGP Routing supported over GRE tunnel
new LB health check: MSSQL, DNS, LDAP
Capacity Dashbord
Расширенное Меню в Networking+Security
GUI частично реализован на HTML5 (хоть и вызывается из Flash Web Client)
Как проинсталлировать ESXi на хост с памятью меньше 4Gb
https://noteits.net/2015/06/24/installing-esxi-6-0-with-4gb-ram-or-less/
После получения при инсталляции MEMORY_SIZE_ERROR нажать ALT-F1
cd /usr/lib/vmware/weasel/util
rm upgrade_precheck.pyc # удаление скомпилированного конфига инсталляции
chmod 666 upgrade_precheck.pyc
vi upgrade_precheck.py # исправить параметр MEM_MIN_SIZE на (3*1024)
ps -c | grep weasel # после kill -9 инсталлятор перезапустится
kill -9 {weasel PID} #
Как вытащить VM из swap'а в ESXi 6.x
http://www.yellow-bricks.com/2016/06/02/memory-pages-swapped-can-unswap/
# Посмотреть ID засвапленных VM
# memstats -r vm-stats -u mb -s name:memSize:max:consumed:swapped |\
sed -n '/ \+name/,/ \+Total/p'
name memSize max consumed swapped
vm.449922 16384 2000 2000 14146
# localcli --plugin-dir=/usr/lib/vmware/esxcli/int vm process \
unswap -w 449922 -s 2 -u GB # Отсвапить 2 Gb
# localcli --plugin-dir=/usr/lib/vmware/esxcli/int vm process \
unswap -w 449922 # Отсвапить полностью
В более древних версиях ESXi unswapping'а можно добиться, сделав VM'ке
vmotion на хост, у которого VM-swap переназначен на датастор хоста
MAC learning в DVS 6.7
В Vsphere 6.7 в distributed свитче добавлена штатная поддержка режима
mac-learning. В GUI она не прикручена, включается только через API.
Позволяет не использовать чрезвычайно затратный "promiscuous mode: accept"
Подробности тут:
https://www.virtuallyghetto.com/2018/04/native-mac-learning-in-vsphere-6-7-removes-the-need-for-promiscuous-mode-for-nested-esxi.html
Для standart switches и ver. 6.5 существует похожее решение с инсталляцией
дополнительного пакета "MAC Learn Fling"
https://labs.vmware.com/flings/esxi-mac-learning-dvfilter
Параметры в .vmx, оптимизирующие скорость сети
# "жесткая" преаллокация памяти
shed.mem.prealloc.pinnedMainMem = "true"
shed.mem.prealloc = "true"
ethernet0.ctxPerDev = "1" # для ethernet0 свой trasmit thread
ethernet1.ctxPerDev = "3" # для ethernet1 от 2 до 8 transmit threads
Net.NetVMTxType = 3 [принимает значения 1,2,3]
1: One transmit thread per v-nic
2: One transmit thread per vm
3: 3-8 transmit threads per v-nic
Как увеличить служебные файловые системы в Vcenter 6.5
https://kb.vmware.com/s/article/2145603
В VC appliance 6.5 каждая служебная файловая система живет в одноименном
lvol на одноименной vg на отдельном диске.
df -h
file -s /dev/sd? | grep LVM
lvdisplay | grep 'LV Path'
VMDK1 12GB / (10GB)
/boot (132MB)
SWAP (1GB)
VMDK2 1.8GB /tmp
VMDK3 25GB SWAP
VMDK4 25GB /storage/core VPXD core
VMDK5 10GB /storage/log
VMDK6 10GB /storage/db Postgres storage
VMDK7 5GB /storage/dblog Postgres logging
VMDK8 10GB /storage/seat Postgres Stats,Events,Alarms,Tasks
VMDK9 1GB /storage/netdump Netdump ESXi collector
VMDK10 10GB /storage/autodeploy
VMDK11 10GB /storage/imagebuilder
VMDK12 100GB /storage/updatemgr
Увеличить нужный VMDK веб-клиентом, и запустить внутри VC скрипт
/usr/lib/applmgmt/support/scripts/autogrow.sh
либо
. /usr/sbin/disk_utils.sh
lvm_autogrowfs
либо
echo $VCPASSWORD | appliancesh appliance.system.storage.resize
или в appliancesh
Command> appliance.system.storage.resize
Который делает в цикле по всем LVM дискам и LVOL-fs примерно следующее:
pvresize /dev/sdX
lvresize --resizefs -l +100%FREE /dev/mapper/LVOL-NAME
Алгоритмы VMotion для разных версий vSphere
V2.5, V3.x, V4.0(?). "QuickResume"
Pre-copy в один проход: копируем память, собирая список "dirty pages"
(маркируем memory в RO, при записи - exception, page в список, дать ей RW)
Останавливаем оригинал, пересылаем список, помечаем там "грязную" память.
Включаемся на новом месте, дотягиваем недостающую память,
промахи по недоставленной памяти подтягиваем вне очереди.
Достоинства/Недостатки:
Однопроходный.
Критичен к network latency (< 5мс) - VM на дотяге памяти сильно тормозит.
Обрыв сети после переключения смертелен,
Мучителен для VM с большой памятью (в старых версиях память VM небольшая)
V4.1 "Итеративная погоня Ахила за черепахой" с failback на QuickResume
https://blogs.vmware.com/vsphere/2011/02/vmotion-whats-going-on-under-the-covers.html
http://www.yellow-bricks.com/2011/04/13/vmotion-and-quick-resume/
Pre-copy в несколько итераций, пока изменившаяся память сойдется (почти) в 0,
стоп, досылка этого "почти" и переключаемся.
Если pre-copy не сходится, мониторим скорость "пачкания" памяти, скорость сети,
смотрим время на копирование оставшихся "dirty pages". Если > 100 сек - fail
< 100 сек - QuickResume как в "древности", и "затягиваем недостающее".
Дубль "dirty pages" кидаем в файл на shared-datastore.
С случае обрыва сети "недостающую память" всасываем из этого файла.
Достоинства/Недостатки:
Можно двигать очень большие VM, обрыв сети не смертелен.
Network latency терпим (< 10 ms).
Повышенный трафик из-за итераций.
Нет гарантии переезда (Но можно увеличить vmotion.maxSwitchoverSeconds)
V5.0+ "Итеративная погоня Ахила за черепахой", с врубанием торможения SDPS
http://www.yellow-bricks.com/2011/07/20/vsphere-50-vmotion-enhancements/
Pre-copy в несколько итераций, пока память сойдется в 0, и переключаемся.
Если pre-copy не сходится, мониторим скорость "пачкания" памяти, скорость сети,
Врубаем SDPS - Stun During Page Send - пропорциональное торможение vCPU
микростопами, чтоб "dirty page" возникали медленне, чем отсылаются.
Достоинства/Недостатки:
Можно двигать очень большие VM, обрыв сети не смертелен.
Network latency терпим (< 150 ms).
Повышенный трафик из-за итераций.
Длительные тормоза VM с активной памятью из-за SDPS
Смена дефолтных портов VC и ESXi
Во-первых - это плохая идея.
Во-вторых - для новых портов - не забыть проковырять дырки в файрволле!
В-третьих - придется переучивать vsphere-клиентов и rCLI.
VCenter Server:
/etc/vmware-rhttpproxy/config.xml
C:\ProgramData\VMware\vCenterServer\cfg\vmware-rhttpproxy\config.xml
>httpPort>80>/httpPort>
>httpsPort>443>/httpsPort>
/etc/init.d/rhttpproxy restart
ESXi Host
/etc/vmware/rhttpproxy/config.xml
/etc/vmware/rhttpproxy/endpoints.conf
/etc/vmware/hostd.config.xml
>httpPort>80>/httpPort>
>httpsPort>443>/httpsPort>
/etc/init.d/rhttpproxy restart
После смены httpsport на хосте перестает работать esxcli, можно
вместо него использовать localcli
И стоит поправить VpxClient.exe.config
Password reset в vRealize Log Insight
Root-password в Settings VM -> Options -> vApp Options -> Other Properties
# Пароль к веб-админкв - пользователь admin:
ADMINPASSWORD=SEcret0! li-reset-admin-passwd.sh
При заходе на Log Insight использовать строго FQDN - по IP или короткому hostname
админка не распознает пароль или вообще не работает
Чтоб работать с ESXi 6.5 старой версией vsphere-client
# Исправить тег exactVersion на 6.0.0 в файле
/usr/lib/vmware/hostd/docroot/client/clients.xml
Или, более капитально, заменить его на файл от ESXi 6.0
<ConfigRoot>
<clientConnection id="0000">
<authdPort>902</authdPort>
<version>6</version>
<exactVersion>6.0.0</exactVersion>
<patchVersion>1.0.0</patchVersion>
<apiVersion>dev</apiVersion>
<downloadUrl>http://vsphereclient.vmware.com/vsphereclient/VMware-viclient-all-6.0.0.exe</downloadUrl>
<flexClientVersion>6.0.0</flexClientVersion>
</clientConnection>
</ConfigRoot>
Для этого создать файлик /bootbank/clients.xml и вписать в
пользовательский скрипт начальной загрузки /etc/rc.local.d/local.sh
# вариант для параноиков ###################################
# mv /usr/lib/vmware/hostd/docroot/client/clients.xml \
/usr/lib/vmware/hostd/docroot/client/clients.xml-orig
# вариант для отважных #####################################
[ -f /bootbank/clients.xml ]&&rm /usr/lib/vmware/hostd/docroot/client/clients.xml
##### просто overwrite не срабатывает ######################
cp /bootbank/clients.xml /usr/lib/vmware/hostd/docroot/client/clients.xml
В vcenter-сервере раньше тоже была похожая настройка в файлике
C:\ProgramData\VMware\VMware VirtualCenter\docRoot\client\version.txt
/etc/vmware-vpx/docRoot/client/version.txt
Но в 6.5 толстым клиентом можно только с ESXi работать.
Начальное конфигурирование vSphere Data Protection
https://vdp.appliance.address:8543/vdp-configure
начальный пароль: changeme
NB! Hostname для VDP-appliance обязан ресолвиться в DNS и в Reverse-DNS!
Минимальный Datastore - 0.5 Tb, пустой vdp занимает 55Гб с тонким диском
Автостарт в ESXi привязывается по именам VM, а не по их ID
Знаете ли вы, что автостарт VMок привязывается по их именам, а не по ID,
поэтому Rename и Storage migration vm'ки выносит ее из Автостарта.
Самонастраиваемый OVF-appliance с nested ESXi
https://www.v-front.de/2014/01/building-self-configuring-nested-esxi.html
Healthchek в VDS
При проверке в каждый заявленный VLAN кидается бродкаст-пакет размером MTU.
Если на VDS есть транкованая портгруппа (Trunk VLAN=1-4094) она на каждой
проверке получает 4К пакетов - при mtu 9000 - 28 Мб за раз. В один аплинк
кидает, из другого длжен прилететь. В VDS с одним аплинком healthceck - не
функционирует.
Тест скорости сетевых интерфейсов ESXi-хоста
# "сервер" с IP-адресом 1.2.3.4
/usr/lib/vmware/vsan/bin/iperf.copy -s -B 1.2.3.4 -w 1M
# "клиент"
/usr/lib/vmware/vsan/bin/iperf -c 1.2.3.4 -t 60 -i 3 -w 1M
HA advanced configuration options
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2033250
vpxd.das.completemetadataupdateintervalsec
das.iostatsInterval
das.config.fdm.reportfailoverfailevent
das.isolationShutdownTimeout
das.config.fdm.isolationPolicyDelaySec
das.useDefaultIsolationAddress
das.isolationAddressX
das.reregisterRestartDisabledVMs
das.terminateretryintervalsec
das.maxterminates
das.maxresets
das.respectVmVmAntiAffinityRules
das.config.fdm.memreservationmb
das.slotMemInMB
das.slotCpuInMHz
das.ignoreInsufficientHbDatastore
das.heartbeatDsPerHost
SRM: IP configuration для recovered VMs
Для каждой VM в recovery можно задать в "Configure Recovery"
IP Configuration. Но работают они только для Windows,
и Linux: RHEL, SLES, Ubunta. А CentOS - not supported
SRM: Пакетная генерация IP-config'ов для Recovery Plan
cd C:\Program Files\VMware\VMware vCenter Site Recovery Manager\bin
dr-ip-customizer --vc vc01.vclass.local --cfg ..\config\vmware-dr.xml
--cmd generate --output c:\dr01.csv -i
Сгенерит нам csv-болванку, которую нужно дополнить руками (Строки с EthId = 1)
SRM Bulk IP configuration CSV file:
------------------------------------------------------------------------------
ID,VM,vC,EthID,DNSdom,NBIOS,PrWINS,SeWINS,IP,Mask,GW,IP6,PrefLeng,GW6,DNSServ,DNSearch
prot-vm-1253,dbsvr01,vc01.vclass.local,0,,,,,,,,,,,,
prot-vm-1253,dbsvr01,vc02.vclass.local,0,,,,,,,,,,,,
prot-vm-1253,dbsvr01,vc01.vclass.local,1,,,,,1.2.3.11,255.0.0.0,1.2.3.254,,,,1.2.3.1,
prot-vm-1253,dbsvr01,vc02.vclass.local,1,,,,,2.3.4.11,255.0.0.0,2.3.4.254,,,,2.3.4.1,
------------------------------------------------------------------------------
dr-ip-customizer --vc vc01.vclass.local --cfg ..\config\vmware-dr.xml
--cmd apply --csv c:\dr01.csv -i
Закатывает содержимое файла в настройки SRM
Где записаны зарегистрированные VM
/etc/vmware/hostd/vmInventory.xml
<ConfigRoot>
<ConfigEntry id="0000">
<objID>1</objID>
<vmxCfgPath>/vmfs/volumes/554ce28a-7d670c0e-f5a3-005056023912/Linux01/Linux01.vmx</vmxCfgPath>
</ConfigEntry>
<ConfigEntry id="0002">
<objID>3</objID>
<vmxCfgPath>/vmfs/volumes/554cf557-a971eb9a-4182-005056023912/Win02-A/Win02-A.vmx</vmxCfgPath>
</ConfigEntry>
<ConfigEntry id="0003">
<objID>4</objID>
<vmxCfgPath>/vmfs/volumes/554cf557-a971eb9a-4182-005056023912/Win01-A/Win01-A.vmx</vmxCfgPath>
</ConfigEntry>
</ConfigRoot>
firewall: управление командой esxcli
https://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vcli.examples.doc_50%2Fcli_manage_networks.11.11.html
esxcli network firewall ruleset list
esxcli network firewall ruleset list --ruleset-id sshServer
esxcli network firewall ruleset set --ruleset-id sshServer --enabled true
esxcli network firewall ruleset allowedip list --ruleset-id sshServer
esxcli network firewall ruleset set --ruleset-id sshServer --allowed-all false
esxcli network firewall ruleset allowedip add --ruleset-id sshServer --ip-address 192.XXX.1.0/24
esxcli network firewall ruleset allowedip list --ruleset-id sshServer
Правила хранятся в /etc/vmware/firewall/*.xml
Доступ к PSC UI
https://vc.server/psc
Hidden CBRC (Content-Based Read Cache
http://www.virtuallyghetto.com/2011/08/new-hidden-cbrc-content-based-read.html
Включить кэширование vmdk-шек для lincked clones на ESXi-хосте
vim-cmd hostsvc/advopt/update CBRC.Enable bool true
vim-cmd hostsvc/advopt/update CBRC.DCacheMemReserved long 1024
Для Horizon View-десктопов эта же функция включается чекбоксом в настройках
lincked-cone pool'а
v6.0 Работа с пользователями ESXi из командной строки
esxcli system account add -i winuser -p 'Pa$$w0rd' -c 'Pa$$wrd'
esxcli system permission set -i winuser -r ReadOnly
esxcli system permission list
v6.0 TPS
kb2097593
Начиная с 5.5 Update2 TPS inter-VM TPS задисеблен, работает только ТПС внутри VM и для VM с одинаковой "солью"
sched.mem.pshare.salt = "соль"
Разрешить глобальный TPS: Mem.ShareForceSalting = 0
Hight mem.minfreepct*3 запрет large mempage (форсирует TPS)
Clear mem.minfreepct balooning
Soft mem.minfreepct*2/3 compression
Low mem.minfreepct*1/3 swaping
Hard mem.minfreepct*1/6 hard swaping
Unlocking and resetting the SSO administrator password (2034608)
VSPHERE 5.5 (SSO Account)
c:\Program Files\VMware\Infrastructure\VMware\CIS\vmdird> vdcadmintool.exe
/usr/lib/vmware-vmdir/bin/vdcadmintool
3. Reset account password
Account DN, enter:
cn=Administrator,cn=users,dc=vSphere,dc=local
VSPHERE 6.0 (PSC Account)
c:\> "%VMWARE_CIS_HOME%\vmdird\vdcadmintool.exe"
shell.set --enabled true
shell
/usr/lib/vmware-vmdir/bin/vdcadmintool
3. Reset account password
Account UPN:
Administrator@vSphere.local
Ручное копирование vmdk-файлов
При использовании cp результирующий -flat.vmdk будет раздут полностью
cp old/wm-flat.vmdk new/wm-flat.vmdk
du -s old/wm-flat.vmdk new/wm-flat.vmdk
Чтоб сохранить/задать формат копии - используем vmkfstools -i
vmkfstools -i old/vm.vmdk -d thin new/vm.vmdk
Копирование виртуального диска в RDM-lun (virtual и physical соответственно)
vmkfstools -i old/wm.vmdk -d rdm:/vmfs/devices/disks/t10.xxxx new/vm-rdm.vmdk
vmkfstools -i old/wm.vmdk -d rdmp:/vmfs/devices/disks/t10.xxxx new/vm-rdm.vmdk
Либо клиентом vSphere copy - paste
При использовании cp результирующий -delta.vmdk сохранит свой размер
cp old/wm-0000001-delta.vmdk new/wm-0000001-delta.vmdk
Если клиентом жСпхере копировать delta.vmdk - итоговый диск будет уже не
дельтой, а flat (с сохранением формата опорного flat.vmdk)
Если в базе VC переполняются таблицы Events и Tasks
Еще бы им не переполняться - Tasks и Events по умолчанию хранятся вечно.
Впрочем, можно включить зачистку этих таблиц по достижении заданного срока
хранения.
Administration > vCenter Server Settings > Database Retention Policy
Можно и врукопашную зачистить, sql-скриптами:
Purging old data from the database used by VMware vCenter Server (KB 1025914)
http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1025914
Как бекапить и переносить inventory-tree с об'ектами VC-server
Download/Upload VC-inventory можно сделать , PoweCLIшными скриптами,
которые можно скачать с Flings
https://labs.vmware.com/flings/inventorysnapshot
Пример переноса с из VCVA в VC-Win описан тут
http://www.the-little-things.net/blog/2012/12/16/vmware-migrating-a-vcenter-virtual-appliance-to-a-vcenter-windows-server/
Работаем с VMFS5
vmkfstools -T /vmfs/volumes/datastore # upgrade vmfs3 -- > vmfs 5
vdq -q # информация о дисках
partedUtil get /vmfs/device/disk/diskname # распечатать GPM partition
partedUtil getptbl /dev/disks/naa.60003ff44dc75adca0de46725140ce9f
Размещение файлов в VMFS5:
0 <= size <= 1 k размещается в inode
1k < size <= 8 k размещается в subblock (ровно одном)
8k < size <= 512 Gb в мегабайтных блоках, использует indirect pointer
512G< size <= 62 G Gb в мегабайтных блоках, использует double indirect pointer
vmkfstools -Phv 10 /vmfs/volumes/datastore # детализация инфо о VMFS
Maximums:
128,000 inodes
32,000 subblock
64,000 indirect pointers
256 double indirect pointers
Sysprep
Чтобы для Windows NT, 2000, 2003, XP при клонировании работала кастомизация
на VC должен лежать sysprep, конкретно два файла: sysprep.exe, setupcl.exe
В соответствующих каталогах для разных версий sysprep:
/etc/vmware-vxpd/syspre/svr2003
/etc/vmware-vxpd/syspre/svr2003-64
. . .
Глюки с сертификатами в SRM 5.8
Обнаружился глюк с сертификатами в SRM 5.5 и 5.8: не получается pairing двух
сайтов.
Если и у VC-нтров и SRM-ов - selfsigned sertificates то все спаривается.
Если и у VC-нтров и SRM-ов - ЦА-signed sertificates то все спаривается.
Если у VC-нтров СА-signed а у SRM-ов - selfsigned sertificates то нет.
Выход: либо всем сделать одинаково selfsigned, либо всем одинаково CA-signed.
Подробности:
Generating and Installing CA Signed Certificates for VMware SRM 5.5
http://www.definit.co.uk/2014/03/generating-and-installing-ca-signed-certificates-for-vmware-srm-5-5/
SMP-FT в 6.0
Чтобы SMP-FT работало в NestedESX виртуалка под ESX
должна иметь OS ESX 5.5-6.0, nic vmxnet3 (потому что 10 Gbit)
(virtual hardware 8 - достаточно)
vm.uselegacyft = true # использовать FT версии 5
Получить список всех снапшотов с помощью PowerCLI
Get-VM | Get-Snapshot | ft vm, name, created
Что нового в vsphere 6.0
Перед загрузкой VCSA придется установить в броузер Vmware Client Integration
Plugin и импортировать appliance броузером
SSO + License Server + Certificate Management + Identity service и т.д.
скомпонованы в Platform Services Controller (PSC)
Варианты установки VCSVA:
(у каждого VC свой PSC, PSC можно спаривать)
Embedded: VC1 + PSC1 ----- PSC2 + VC2
(Несколько VC цепляются на один PSC)
External: PSC
/ \
External: VC1 VC2
При инициализации SSO пароль SSO-администратора, а так же название SSO-шного
домена авторизации (прежний vsphere.local) - назначает пользователь
Адрес Web-client ушел с 9443 порта на дефолтный 443
https://vc.server.address/vsphere-client/
Custom tcp stack на ESXI 6.0
esxcli network ip netstack add -N Custom_name # создать новый IP-стек
esxcli network ip netstack list # посмотреть список стеков
Содержит собственные:
ARP table, routing table, default gateway, separate buffers, sockets and
trafic
[To be continued...]
vmkping -D -S Custom_name # ping всех vmk-интерфейсов стека
ESXI 6.0 настройки password lockout
DCUI.Access список пользователей, которым разрешен DCUI
security.AccountLockFailures
security.AccountLockTime
Сложность пароля можно задать в /etc/pam.d/ а можно в web-client
Manage - Settings - Advanced System Settings
- Password quality control: retry=3,min=disabled,disabled,disabled,7,7
VCVA 6.0 Menu
При ssh-логине открывается вместо обычного shell'а ограниченное меню
Активация Bash в VC-appliance
Shell> shell.set --enable true
Shell> shell.get
Shell> shell
65% скидка на экзамен VCP6 для тех, кто проапгрейдил свой VCP5.5
Тем кто проапгрейдил свой VCP5.5 статус до 10.03.2015 полагается 65% скидка
на сдачу одного VCP6(одного любого из DCV, CMA, DM, NV) или VCP6-delta DCV
Промокод: RECERT65 , действителен по August 31, 2015
http://blogs.vmware.com/education/2015/04/get-discount-met-original-recertification-deadline.html
Port mirroring в Distributed Switch
В web client есть "Encapsulated remote Mirroring(L3)" -
замирроренный трафик пересылается на заданный IP-адрес
использует ERSPAN GRE
Есть так же "Remote mirroring source" + "Remote mirroring destination"
использует RSPAN VLAN - где необходимо настроить три сессии мирроринга
1. Remote source: трафик VM-портов заворачивается в encapsulation VLAN и
сливается на destination аплинк
2. Физический свитч должен настроить проброс этого трафика
на аплинк ESXi получателя. Это настраивают цискари
3. Remote destination: encapsulated VLAN пробрасывает на порт VM-получателя
http://blogs.vmware.com/vsphere/2013/02/vsphere-5-1-vds-feature-enhancements-port-mirroring-part-2.html
Советы и хитрости по использованию WebClient
https://en.wikibooks.org/wiki/VSphere_Web_Client ? https://en.wikibooks.org/wiki/VSphere_Web_Client
Вендорские образы ESXi
HP customized VMware image downloads ? http://hp.com/go/esxidownload
http://hp.com/go/esxidownload
HP Proliants установка апдейтов, base images, firmware, dravers и т.д.
http://vibsdepot.hp.com/getting_started.html ? http://vibsdepot.hp.com/getting_started.html
Запрет Large pages для отдельной VM
monitor_control.disable_mmu_largepages = TRUE
Как ESX определяет moved/copyed VM
При создании VM хешируется каталог ее размещения и сохраняется в uuid.location
При старте VM хешируется каталог ее размещения и сравнивается с uuid.location
Если хэш не совпадает с uuid.location, то запускается answer-процедура
(?) Cancel | you move it | you copyed it
Cancel - отменить старт, ничего не делать
I move it - сохранить текущий хэш в переменной uuid.location
оставить старые uuid.bios и mac
I copyed it - сохранить текущий хэш в переменной uuid.location,
обновить uuid.bios == uuid.location, сгенерить новый mac
vmware-cmd path/to/vmx.file.vmx answer
Рекомпиляция модулей VMware Workstation после замены linux-kernel
service vmware stop
rm /lib/modules/$(uname -r)/misc/vmmon.ko
vmware-modconfig --console --build-mod vmmon /usr/bin/gcc /lib/modules/$(uname -r)/build/include/
depmod -a
service vmware start
Проблема с nopersistent independent disk
По факту - VM с nonpersistent disk - это просто машина, которой при старте
делается снапшот, а при выключении ее redo-log AKA дельта-диск удаляется
(vmdk т.е. откатывается к снапшоту).
Но есть ньюансы. В свойствах VM указан не дельта-файл, а сам заснапшоченный
диск, дельтафайл имеет нестандартное имя.
А еще nonpersistent VM не делает Storage Vmotion - этой ошибке уже несколько
лет и Vmware до сих пор ее не исправило.
More info about Snapshots
KB1025279
KB1015180
Vmware Replication initial configuration
zip-архив VR содержит два OVF с одним и тем же vmdk
vsphere replication OVF - VR Manager, upload в Source Site
vsphere replication OVF - VR Manager, upload в Destination Site
Дополнительные VR Servers - подгружаются как "vsphere replication addon OVF"
затем регистрируются в Web Client - Replication - Management
Чтобы справиться с error-popup "wrong VM Network" при загрузке OVF -
В Windows-vsphere Client: в IP Pools создать new IP Pool (с range IPv4),
ассоциированный с портгруппой, в которую подцепляется VR
В WebClient: DataCenter -- Manage -- Network Protocol Profiles --
создать Network Protocol Profile ассоциированный с портгруппой,
в которую подцепляется VR
Основной VRM (for Source Site) при загрузке регистрируется на VC
автоматически, для переконфигурации зайти броузером (можно переконфигурить
привязку VRM к соотвествующему VC)
https://vr.manager.source:5480
https://vr.manager.destination:5480
Подключение VC Server к external SSO
URL Lookup service: https://machinename.corp.com:7444/lookupservice/sdk
SSO Administrator: administrator@vsphere.local
VDP initial configuration
https://vdp.address:8543/vdp-configure/
Начальный пароль: root:changeme
Активация системы занимает около 20 минут,
в веб-клиенте появляется пункт vSphere Data Protection.
VDP работает по умолчанию, VDPA требует ассигнования похостовой лицензии VDPA
Зайти в Configure -- Add license key, Edit license assigment
Configure -- Backup WIndows configuration - настроить окно Bacup/Maintence
Backup -- backup job actions -- New, затем "Backup now"
Прохождение бэкапа можно смотреть в "Tasks"
Для File Level Restore зайти с забэкапленной машины броузером
https://vdp.address:8543/flr
Для FLR с бэкапа чужой VM - активировать по линку "Advanced login"
и указать свой админский логин и логин VC-server'а
Hands-n Labs - бесплатная демонстрация продуктов VMware
Для доступа к каталогу Лабораторных демонстраций (более 30 лаб) -
зарегистрироваться на портале
http://hol.vmware.com ? http://labs.hol.vmware.com
Browser warning: self-signed certificate of vCenter Web Client
Чтоб броузер при заходе на Web Client не жаловался на самоподписанный
сертификат, регистрируем его на клиенте в качестве "корневого сертификата"
На Windows и Linux vCenter CA ssl-сертификат лежит соответственно в
%ALLUSERSPROFILE%\VMware\vSphere Web Client\ssl\cacert.pem
/etc/vmware-vsphere-client/SerenityDB/keys/vsphere-client-ca-cert.pem
На клиентской машине закидываем его в список доверенных
certutil.exe -addStore -f Root файл-сертификата.pem
Или на клиенте переименовать cacert.pem в webclient.cer
Right-click -- Install certificate
Store location: Local Machine -- Trusted Root Certification Authorities store
sudo zypper install mozilla-nss-tools
Регистрация CA-сертификата на Linux Chrome: click on the certificate warning
Connection > Certificate Information > Details > Export
sudo zypper install mozilla-nss-tools # Инсталлируем certutil
openSUSE
certutil -d sql:$HOME/.pki/nssdb -A -t P -n CertNickName -i cert_file.crt
Ubuntu
certutil -d sql:$HOME/.pki/nssdb -A -t "CP,CP," -n CertNickName -i cert_file.crt
http://blog.avirtualhome.com/adding-ssl-certificates-to-google-chrome-linux-ubuntu/
32-битный ODBC для Update Magager
VUM до сих пор является 32-битным приложением, и ODBC-коннектор ему нужен
32-битный. На 64-разрядной винде его делают командой
c:\windows\system32\odbcad32.exe
В Windows2012:
Control panel > System and Security > Administrative Tools
ODBC Data Sources (32 bit)
Alarm action run script
Скрипт запускается на vCenter-сервере, контекст аларма передается переменными окружения
PATH=/bin:/usr/bin:/sbin:/usr/sbin
PWD=/var/log/vmware/vpx
VMWARE_ALARM_NAME=_Alarm-1
VMWARE_ALARM_ID=alarm-101
VMWARE_ALARM_ALARMVALUE=Current values for metric/state
VMWARE_ALARM_DECLARINGSUMMARY=([Yellow metric Is above 30%; Red metric Is above 70%])
VMWARE_ALARM_TARGET_NAME=win04
VMWARE_ALARM_TARGET_ID=vm-47
VMWARE_ALARM_NEWSTATUS=Yellow
VMWARE_ALARM_OLDSTATUS=Gray
VMWARE_ALARM_TRIGGERINGSUMMARY=Metric CPU Usage = 99%
VMWARE_ALARM_EVENTDESCRIPTION=Alarm '_Alarm-1' on win04 changed from Gray to Yellow
VPXD_HOSTNAME=vcva01.vclass.local
VPXD_IP_ADDR=172.20.10.94
VPXD_IPV6_ADDR=fe80::250:56ff:fe3f:ff01
VPXD_HTTPS_PORT=443
VPXD_HTTP_PORT=80
IS_HTTPS_PORT=10443
LD_LIBRARY_PATH=/usr/lib/vmware-vpx
LS_SERVER_LOCATION=https://vcva01.vclass.local:7444/lookupservice/sdk
ORACLE_HOME=/etc/vmware-vpx/oracle
PID_FILE=/var/run/vmware/vpxd.PID
Добавление apliance в AD-домен
domainjoin-cli join domain.name domain-username
domainjoin-cli query
domainjoin-cli leave
domainjoin-cli query
Скидка 25% на экзамен VCP в 2014 году для тех, у кого есть VCP
Скидочный код VCPRECERT25 действует до 1 января 2015, и только
для тех, кто имеет хоть какой-нибудь VCP.
https://mylearn.vmware.com/mgrReg/plan.cfm?plan=51574&ui=www_cert
WWW mob API for ESXi
https://esxi.ip.address/mob/?moid=ha-host&doPath=hardware
Бесплатные бекапилки для vSphere и Free ESXi aka vSphere Hypervisor
Vsphere Data Recovery (VDR) и Vsphere Data Protection (VDP) бесплатны, но
для работы требуют наличия VCenter Server, бэкапить FreeESX они не могут.
В бесплатной версии ESXi отключено VAPD(API for Data Protection) и
CBT(Change Block Tracking)
GhettoVBC script (делает снапшот и клонирует VM)
Veeam Backup & Replication free edition(требует CBT и VADP)
VeeamZip
Thinware vBackup(требует ssh ESXi и Virtual Disk Development Kit vmware-mount.exe)
(free: fullbackup, paid:scheduled incremental)
Trilead VM Explorer
(free: fullbackup, paid:scheduled incremental + FLR)
Remote и Local Диски в Nested ESX
Диски, подвешенные на LSI SAS virtual controller в NestedESX инсталлятором
показываются как "Remote"
Проблемы с virtual hardware version 10
Для Vsphere5.5 "Last verison" = 10, и VM перестает редактироваться в Win-client
Методы "лечения":
1. VM можно редактировать Web-клиентом
2. Установить Vsphere Client 5.5 Update 2 - в нем этот баг исправлен
3. Откатить версию: создать новую VM vh=8 без диска и подцепить диск от старой
virtualHW.version = "8"
4. Или командой:
vim-cmd vmsvc/getallvms
vim-cmd vmsvc/upgrade {VMID} vmx-09
5. Выключить VM и отредактировать vmx-file редактором vi
Хозяйке на заметку: 10Гбит для дома
NETGEAR ProSafe Plus XS708E-100NES : 8*10GBASE-T + 1*SFP+ = $1.5K
Как сделать слабый пароль пользователю ESXi
PAM запрещает давать локальным пользователям ESXi слишком простые пароли.
Чтобы разрешить (временно, до перезагрузки) задание слабого пароля:
vi /etc/pam.d/system-auth # и в строчке
password requisite /lib/security/$ISA/pam_passwdqc.so retry=3 min=8,8,8,7,6
min=8,8,8,7,6 заменить на min=6,6,6,0,0
Корректное клонирование ESXi - на флешку или Nested
В /etc/vmware/esx.cfg прописаны MAC vmk-интерфейсов, и системный UUID
Если их не поменять - клон получит дубляж MAC-адресов.
Перед клонированием выставить переменную FollowHardwareMac и удалить
/system/uuid - чтобы uuid и mac на новом клоне сгенерились заново
esxcli system settings advanced set -o /Net/FollowHardwareMac -i 1
sed -i 's%^/system/uuid =.*%%' /etc/vmware/esx.cfg
Если клонируется не флешка, а nested ESXi, то делать на нем VMFS не надо -
клоны получат datastore с одинаковыми UUID, VCenter их не подцепит.
Миграция VM воткнутой в Internal switch
По умолчанию запрещена. Чтоб разрешили - приходится предварительно
дисконнектить ethernet, или отключать с него IP-адрес изнутри гостевой OS.
"Лечится" advanced-настройкой VCентра
Administration > vCenter Server Settings > Advanced Settings
config.migrate.test.CompatibleNetworks.VMOnVirtualIntranet "false".
Переезд с Windows VC на Linux appliance VC
Передача базы не возможна. Схема Oracle-базы под Windows и Linux
различаются. Migration-tool для 5.1, 5.5 отсутствует.
Остается экспорт-импорт дистрибьютед свитчей.
Roud Robin для всех
esxcli storage nmp device list # получить сисок LUN
esxcli storage nmp satp set -satp=VMW_SATP_AA -default-psp=VMW_PSP_RR
# Единоразовое назначение на текущий сеанс для диска "dev.namnam" RR, iops=3
esxcli storage nmp device set -d "dev.namnamnam" -psp=VMW_PSP_RR
esxcli storage nmp psp roundrobin deviceconfig set -d "dev.namnam" -t iops -l 3
# Постоянное назначение для LUN'ов в конкретной модели СХД
esxcfg-rescan vmhba1
grep -i scsiscan /var/log/vmkernel.log
Vendor: 'VVV' Model: 'MMMM'
esxcli storage nmp satp rule add -s "VMW_SATP_AA" -V "VVV" -M "MMM" -P VMW_PSP_RR -O "iops=1"
# подействует после reboot'а
# или, чтоб сразу: переактивировать правила на ходу
esxcli storage core claiming unclame -t device -d naa.xxxx
esxcli storage core claimrule load
esxcfg-rescan vmhba1
Vmware-tools for nested-esxi 5.0, 5.1, 5.5
See more at:
https://labs.vmware.com/flings/vmware-tools-for-nested-esxi
http://www.virtuallyghetto.com/2013/11/w00t-vmware-tools-for-nestedesxi.html#sthash.f89qps1O.dpuf
# Драверов в них - нет!
# Перед установкой в Maintance
esxcli system maintenanceMode set -e true
# Установка с локального датастора
esxcli software vib install -v /vmfs/volumes/DatastorName/esx-tools-for-esxi-9.7.0-0.0.00000.i386.vib -f
# Установка по сети
esxcli network firewall ruleset set -e true -r httpClient
esxcli software vib install -v http://download3.vmware.com/software/vmw-tools/esxi_tools_for_guests/esx-tools-for-esxi-9.7.0-0.0.00000.i386.vib -f
esxcli system shutdown reboot -r "Installed VMware Tools"
# Удаление
esxcli software vib remove -n esx-tools-for-esxi
Mem.MinFreePct - amount of the memory should keep free
http://blogs.vmware.com/vsphere/2012/05/memminfreepct-sliding-scale-function.html
Mem.MinFreePct =
0- 4Gb 6%
4-12Gb 4%
12-28Gb 2%
28-..Gb 1%
память раскладывается, т.е. например для 64Gb ( 4 + 8 + 16 + 36 )
Mem.MinFreePct = 4Gb * 6% + 8Gb * 4% + 16Gb *2% + 36Gb*1% = 1.24Gb (т.е. 1.9%)
Пороги по сработке методов рекламации памяти:
>100% - High - none
Mem.MinFreePct * 100% - ???? - baloon
Mem.MinFreePct * 64% - Soft - compress
Mem.MinFreePct * 32% - Hard - swap (без блокировки VM)
Mem.MinFreePct * 16% - Low - hard swap (с блокировкой VM)
Redirecting vmware.log to ESX syslog
vmx.log.destination = "syslog-and-disk" # syslog И штатный vmware.log
vmx.log.destination = "syslog" # только в syslog
vmx.log.syslogID = VirtualMachineString # чтоб опознавать логи
Emulating an SSD Virtual Disk in VM
scsi1:2.virtualSSD = 1
Интеграция HP Data Protector - не работает SAN и HotAdd
Зачастую, при бэкапе виртуальных машин в DP VEA вместо ожидаемого режима
SAN или HotAdd включается сетевой NBD. Советы, что подергать:
Поставить все патчи в DP
Установить самый свежий Update в ESXi
Посмотреть, не осталось ли зависших монтажных каталогов в ...\OmniBack\tmp
и стереть их
Для DP 6.2 - SAN не работает на VMFS-5. Использовать VMFS-3
Для DP 6.2 - HotAdd не работает via ESXi server.
Использовать VC server
Как сбросить забытый пароль admin@System-Domain в SSO 5.1
Если помним MasterPassword в SSO
..\Infrastructure\SSOServer\util\rsautil.exe reset-admin-password
/usr/lib/vmware-sso/utils/rsautil.exe reset-admin-password
Если не помним MasterPassword, вставляем хэш пароля в SQL-базу SSO
SELECT [PASSWORD]
FROM [Dbo]. [IMS_PRINCIPAL]
WHERE LOGINUID = 'admin'
AND PRINCIPAL_IS_DESCRIPTION = 'admin'
UPDATE [Dbo]. [IMS_PRINCIPAL]
SET [PASSWORD] = 'хэш пароля'
WHERE LOGINUID = 'admin'
AND PRINCIPAL_IS_DESCRIPTION = 'admin'
Почему не включается Streaming ThinApp'ов
При захвате ThinAppa в Package.ini нужно выставить переменную
MSIStreaming = 1 (по умолчанию стоит 0)
и запустить build.bat
Запуск Windows 2008 и Windows 8 на ESXi4.1
Windows 8 и 2012 штатно поддерживается начиная с ESXi 5.0 U1,
для более ранних версий ESXi скачать
http://www.vmgu.ru/ext/bios.440.rom и положить его в каталог VM
OS Type: Microsoft Windows Server 2008 R2
bios440.filename = "bios.440.rom"
mce.enable = TRUE
cpuid.hypervisor.v0 = FALSE
vmGenCounter.enable = FALSE
Затем поставить в VM tools от 5.1(/locker/packages/5.1.0) закачав их на ESX4
rm /productLocker ; ln -s /vmfs/volumes/{Datastore}/vmware-tools /productLocker
esxcfg-advcfg -s /locker/packages/5.1.0 /UserVars/ProductLockerLocation
Чтоб vmk0 автоматически получал MAC от своего vmnic
esxcfg-advcfg -s 1 /Net/FollowHardwareMac
И тогда при клонировании загрузочной USB-флешки с ESXi не возникнет дубля MAC
Если клонируется не флешка, а виртуальный ESXi с vmdk, то делать VMFS не
надо - клоны получат datastore с одинаковыми UUID, VCenter их не подцепит.
Как погасить дисплей, подключенный к ESXi
Приветствие на мониторе ESXi выводится на спецфайл терминала процесса DCUI
cat /etc/inittab
. . .
tty1::respawn:/sbin/initterm.sh TTY1 /sbin/techsupport.sh ++min=0,swap
tty2::respawn:-/sbin/initterm.sh TTY2 /sbin/dcui 2
. . .
выводим в этот файл ESC-последовательность затирания терминала `tput clear`
т.е. \033 [ H \033 [ 2J оно и затрется
Команда затирания изнутри ESXi-сервера:
echo -e "\033[H\033[2J" > /dev/tty2
или, скажем, снаружи, через SSH:
ssh root@192.168.1.102 'echo -e "\\033[H\\033[2J" > /dev/tty2'
VCP exam скидка 50% в 2013
VCP-DV, VCP-DT, Cloud, IaaS
http://www.pearsonvue.com/vmware/getcertified/
http://vmware.com/certification
Promotion code
Существует так же инструкторская скидка 25%, до 31 октября 2013
спросить код у своего инструктора
Поставить VM на паузу
Узнать PID vmm-процесса VM
esxcli vm process list # см. VMX Cartel ID
или
ps -c
kill -STOP {pid}
kill -CONT {pid}
Hyper-V in VMware VM
Заменить guestOS = "windows8srv-64" на
guestOS = "winhyperv"
featMask.vm.hv.capable = "Min:1"
Передача в VM информации о платформе ("проброс BIOS")
В .vmx файл добавить
smbios.reflecthost = TRUE
View: Вычеркивание несуществующего connection или security server'а
При деиснталляции реплики CS, а так же View security-server они остается в
списках серверов конфигурации View. Удалять их приходится руками:
vdmadmin -S -s server.name -r
Доступ к экрану View-сессии через vsphere console
Запустить Group Policy Management
Edit -- Group Policy Management Editor -- Computer Configuration
-- Policies -- Administrative Templates" -- "Add/Remove Templates
Загрузить ...\VMware\VMware View\Server\Extras\GroupPolicyFiles\pcoip.adm
Затем
Computer Configuration
Policies
Administrative Templates" -- "Add/Remove Templates
Classic Administration
PCoIP Sessions - выставить переменную:
Enable access to PCoIP session from a vSphere console -- enable
Copy/paste в консоли VM
По умолчанию выключенно по соображениям безопасности. Для активации:
в .vmx файле конкретной VM
isolation.tools.copy.disable false
isolation.tools.paste.disable false
Для всех VM ESXi-хоста:
Добавить в файл /etc/vmware/config
vmx.fullpath = "/bin/vmx"
isolation.tools.copy.disable="FALSE"
isolation.tools.paste.disable="FALSE"
5.1 Переименование vmdk-файлов при миграции VM
У переименованной VM имена файлов остаются старые, и не меняются даже
при миграции. При миграции переименовывается только каталог.
Чтобы при миграции файлы переименовывались:
Administration -- vCenter Server Setting -- Advanced Settings
provisioning.relocate.enableRename true
Расположение дистрибутивов vmware-tools в ESXi
Каталог для tools задается конфигурационным параметром
UserVars.ProductLockerLocation = /locker/packages/5.1.0
после перезагрузки автоматически создается симлинк /productLocker на него:
ln -s /locker/packages/5.1.0 /productLocker
V51: 15 секундная задержка при открытии console у VM
Надеюсь этот глюк когда-нибудь запатчат. Но пока...
http://kb.vmware.com/kb/2020988
your desktop/laptop used to connect to vCenter is not connected to
internet and so his unable to download updated root certificates
from www.download.windowsupdate.com
На Win 7
gpedit.msc
Computer \ Administrative Templates\System
\Internet Communication Management\Internet Communication Settings
Modify "Turn off Automatic Root Certificates Update" set "Enable"
V51: подробности про Single Sign On
Default SSO Admin Account: admin@System-Domain VMw@re11
Настройка через Web-client:
Administration -- Configuration -- Identify Sources -- + добавление источника
V5: настройка SNMP
esxcli system snmp set -communities public # задать community-string
esxcli system snmp set -targets server.domain@161/public # куда слать трапы
esxcli system snmp set -enable true # активируем SNMP-сервер
esxcli system snmp test
V5: команды по мониторингу дисков
esxcli storage san fc reset -A vmhba3
esxcli storage san iscsi stats get
# получить статус SSD (и не только) диска
esxcli storage core device smart get -d naa.xxxxxx
Media Wearout Indicator показатель здоровья SSD диска
Reallocated Sector Count перемапленные bad-сектора
Drive Temperature
Файл webclient.properties
Operating System File path
Windows 2003 %ALLUSERPROFILE%Application Data\VMware\vSphere Web Client
Windows 2008 %ALLUSERPROFILE%\VMware\vSphere Web Client
vCenter Server Appliance /var/lib/vmware/vsphere-client
session.timeout = value
время жизни сессии. Чтобы сессия не отваливалась - 0.
Загрузка VM с USB в Vmware Workstation
1. Виртуальный BIOS не умеет загружаться с USB.
Хак 2. Add -- Hard Disk -- RDM -- в качестве физдиска выбираем USB-флешку.
Затем в настройках BIOS назначаем этот "диск" загрузочным.
Хак 3. http://www.plop.at/en/bootmanagerdl.html
Plop Boot Manager - загрузочный iso, умеет редиректить загрузку на USB
Автоматическое скриптовое конфигурирование свежезадеплоеного VCSA
Подробности: http://www.virtuallyghetto.com/2012/09/automating-vcsa-51-vcenter-server.html
ssh vcserver <<\EOF
VCFQDN=vcapp-diego05.hp.local
ADADMIN=adadmin05
ADPASSW=password
ADDOMAIN=`echo $VCFQDN | sed 's/[a-z0-9-]*.//`
VCNAME=`echo $VCFQDN | cut -d. -f1`
############
echo $VCFQDN > /etc/HOSTNAME
/bin/hostname $VCFQDN
sed -i s/localhost.local[a-z]*/$VCFQDN/g /etc/hosts
sed -i s/localhost.local[a-z]*/$VCNAME/g /etc/hosts
/usr/sbin/vpxd_servicecfg db write "$ADADMIN" "$ADPASSW" "$ADDOMAIN"
/usr/sbin/vpxd_servicecfg eula accept
/usr/sbin/vpxd_servicecfg tz write MSK
/usr/sbin/vpxd_servicecfg db write embedded
# /usr/sbin/vpxd_servicecfg sso write embedded # SSO for v5.1
/usr/sbin/vpxd_servicecfg service start
#########
EOF
Копирование VM с хоста на хост с помощью ovftool by William Lam
ovftool vi://root@esx1/ # смотрим имеющиеся VM, -ds = Destination Storage
ovftool -ds=esx2-Local-storage -dm=thin vi://root@esx1/VMname vi://root@esx2
Ghosted-ethernets в Windows
После удаления и замены на новый виртуального ethernet старый конфиг может
заклинить и не даст назначить прежний IP новому адаптеру.
Запускаем Device Manager с показом nonpresent_devices
set devmgr_show_nonpresent_devices=1
devmgmt.msc
View > Show Hidden Devices.
И удаляем zombi-ethernet
Конфигурирование software FCoE
vmnic _обязан_ иметь FC-offload
Выяснить, под каким VLAN зарегистрирован FC в коммутаторе и сделать vmk-порт
на требуемом vmnic (обеспечить ему моно-тиминг) с этим VLAN. IP можно
назначить любой - он не используется.
Затем - Storage Adapters -- Add -- Software FCoE
Активация Perfmon DLL и подгрузка esxtop-csv в Perfmon
Начиная с версии 5.1 Perfmon.DLL включен по умолчанию
В более древних версиях он включался переменной в .vmx
tools.guestlib.EnableHostInfo = TRUE
активирует в Perfmon показ метрик VM Memory и VM Processor
resxtop -b -a > file.csv
esxtop -b -d 2 -n 10 > example_file.csv # -d интервал -f fields
graph -- Properties -tab- Source -- DataSource -- Log files [*] -- Add
browse *.csv OK
# Собрать статистику в файл за 300 сек с шагом 30, а затем прокрутить их
# в каталоге /var/tmp
vm-support -S -d 300 -i 30 filename # -i или -l? [ -w outfile ]
esxtop -R /var/tmp/bundled_snapshot.tgz
resxtop -r filename
# собрать performance statistics
vm-support -p -d 300 -i 30
# активация snmp-агента
еsxcli system snmp set --enable true
esxcli system snmp set --port {port}
esxcli system snmp set --communities public,eastnoc,westno
VMware MIB files from the VMware website:
http://communities.vmware.com/community/developer/managementapi
-------- DOCS -------------------------------------------------------
Мониторинг производительности ESXi - обзор для начинающих
http://pyatilistnik.org/monitoring-resursov-vmware-esxi-5-5/
vSphere Monitoring and Performance 7.0 PDF
https://docs.vmware.com/en/VMware-vSphere/7.0/vsphere-esxi-vcenter-server-70-monitoring-performance-guide.pdf
VMWare ESX Server Metrics
https://docs.oracle.com/cd/E11857_01/em.111/e10709/vmware.htm
vSphere 7.0 Performance Counter Description
https://www.virten.net/2020/12/vsphere-7-0-performance-counter-description/
-------- LINUXTOOLS -------------------------------------------------------
pyvmmomi performance extraction from ESXi
https://communities.vmware.com/t5/VMware-vSphere-Discussions/Monitoring-ESXI-Performance-Metrics-over-API/td-p/2234986
vmware-scripts/perl/esxcfg-perf.pl
https://github.com/lamw/vmware-scripts/blob/master/perl/esxcfg-perf.pl
cpan VMware::VIFPLib.pm
vSphere Graphite
Linux/container: Отслеживает производительность с помощью govmomi.
https://github.com/cblomart/vsphere-graphite/blob/master/README.md
vrops-export
A simple command-line data export tool for vRealize Operations.
https://github.com/vmware/vrops-export
-------- POWERCLI -------------------------------------------------------
PowerCLI Performance export cmdlets
Get-Stat
https://developer.vmware.com/docs/powercli/latest/vmware.vimautomation.core/commands/get-stat/
Get-StatType,Get-StatInterval,Get-Stat
https://www.lucd.info/2009/12/30/powercli-vsphere-statistics-part-1-the-basics/
Как сделать самопальный .vib
VIB-архив вскрывается и создается архиватором ar
ar tv file.vib
ar vx file.vib
Внутри лежит descriptor.xml с описанием и списком файлов пакета,
файл с sig.pkcs7 сигнатурой(можно делать пустой) и
tar-gzip-архив без расширения с файлами пакета
tar czvf vibname etc/
vi descriptor.xml
vi sig.pkcs7
ar -r vibname.vib vibname descriptor.xml sig.pkcs7
scp vibname.vib root@esxi:/vibname.vib
esxcli software acceptance set --level CommunitySupporte
esxcli software vib install -v /vibname.vib
Origin:
http://www.yellow-bricks.com/2011/11/29/how-to-create-your-own-vib-files/
Добавление пользовательских портов в firewall ESXi 5, 6
cd /etc/vmware/firewall
more services.xml
vi myrule.xml # По образу и подобию сделать аналогичные описания портов
esxcli network firewall refresh
После перезагрузки этот файл утрачивается - он создан в RAM-диске.
Поэтому - копируем его в /store или куда-нибудь на /vmfs/volumes/...
и добавляем в /etc/rc.local (если ESXi 4.x или ESXi 5.0)
или в /etc/rc.local.d/local.sh (если ESXi 5.1+)
cp /store/myrule.xml /etc/vmware/firewall/
esxcli network firewall refresh
Еще один способ подсовывать свой файл - запаковать его в .tgz в /bootbank :
chmod 444 /etc/vmware/firewall/myrule.xml # NB: права именно r--r--r-- важны!
tar -czvf myrule.tgz /etc/vmware/firewall/myrule.xml
BootModuleConfig.sh --add=myrule.tgz
# для удаления - использовать ключ --remove=myrule.tgz
После чего в /bootbank/boot.cfg мы увидим добавленный:
modules= ... --- state.tgz --- myrule.tgz
Перманентное сохранение настроечных файлов в ESXi 5.0
ESXi размещает свой корень в рамдиске. Конфиг-файлы, подлежащие сохранению
имеют stiky-bit и файл-двойник .#filename
закронтабленной командой /sbin/auto-backup.sh все они сохраняются в архиве
local.tgz, который пакуется внутрь /bootbank/state.tgz
при каждой загрузке конфиги вынимаются из сохраненного local.tgz
Не в рамдиске живут /bootbank /altbootbank /store - они конечно сохранюется
ls -al | grep -i ^.........t
-r--r--r-T 1 root root 0 Aug 19 2011 .#chkconfig.db
-r--r--r-T 1 root root 183 Aug 19 2011 .#hosts
-r--r--r-T 1 root root 82 Aug 19 2011 .#ntp.conf
-r--r--r-T 1 root root 257 Aug 19 2011 .#passwd
. . .
ls -al /bootbank # В /bootbank лежат архивы с софтом и конфигурацией
cat /bootbank/boot.cfg # параметр modules в файле boot.cfg
# говорит, какие архивы подлежат вскрытию в рамдиске
modules=b.b00 --- useropts.gz --- k.b00 ... --- imgdb.tgz --- state.tgz
tar tzvf /bootbank/state.tgz
-rwx------ 0/0 22135 2012-07-26 19:01:02 local.tgz
http://www.virtuallyghetto.com/2011/08/how-to-persist-configuration-changes-in.html
http://www.virtuallyghetto.com/2011/08/how-to-persist-configuration-changes-in_09.html
Схлопывание тонкого диска
Опустевший тонкий диск перед схлопыванием - залить нулями
В винде - командой sdelete -z ? http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
В Linux - заливкой пустого места файлом из нулей
dd if=/dev/zero bs=1024k of=/fs/mount/fuflo ; rm /fs/mount/fuflo ; sync
или занулением ненулевых блоков fs с помощью команды zerofree
umount /fs/mount ; zerofree /dev/sdb1 ; mount /dev/sdb1 /fs/mount
Затем, если нельзя останавливать VM
сделать два SVMOTION: thin ==> thick eager ; thick eager ==> thin
Или при выключенной VM:
# работает на VMFS5, а в VMFS6 не реализована
vmkfstools -K vm.vmdk # NB! не vm-flat.vmdk, а именно vm.vmdk
# обратная операция inflate - тонкий в thick eager
vmkfstools -j vm.vmdk
Место хранения лицензии на ESX-сервере
/etc/vmware/vmware.lic
/etc/vmware/license.cfg
при их удалении лицензия сбрасывается
Подключение ленточных библиотек в VM
1. FC-connected tape libraryes not supported
2. Отменить ALUA SATP для библиотечных устройств (tape и changer)
Для v4.1
esxcli nmp satp listrules -s VMW_SATP_ALUA
esxcli nmp satp deleterule --satp VMW_SATP_ALUA --claim-option tpgs_on
Для v5.0
esxcli стораге nmp satp listrules -s VMW_SATP_ALUA
esxcli storage nmp satp rule remove -s VMW_SATP_ALUA
--device="" --vendor="" --model="" --claim-option="tpgs_on"
--driver="" --transport="" -b
3. Сделать их monopath.
http://vmpress.blogspot.com/2010/12/fc-tape-library-vmware-esxi.html
Создание снапшотов из командной строки ssh
vim-cmd vmsvc/getallvms # узнать VM-id
vim-cmd vmsvc/snapshot.create VM-id Snapshot-Name
Автоматическое создание и удаление снапшотов
http://faq.sanbarrow.com/index.php?solution_id=1080
В WS и Fusion - используем Autoprotect
В ESX - руками правим .vmx
napshot.minFreeSpace = value in bytes
snapshot.maxSnapshots = number of allowed snapshots
The basic parameters
rollingTier0.interval = "10"
This parameter sets a time-interval in seconds.
With this value a snapshot will be created every 10 seconds
snapshot.numRollingTiers = "3"
This parameter sets the number of timers you want to run.
rollingTier0.maximum = "33"
This parameter sets the maximum number of snapshots that will be created by
the timer.
rollingTier0.live = "TRUE"
Also stores the memory along with the snapshot
Удаление снапшотов древнее, чем 3 дня:
Get-VM -Name VMName | Get-Snapshot | \
Where-Object { $_.Created -lt (Get-Date).AddDays(-3) } | Remove-Snapshot
Snapshot parameters
snapshot.action = [ keep | autoRevert | autoCommit | prompt ]
workingDir =
snapshot.redoNotWithParent = "TRUE"
suspend.Directory =
snapshot.numSnapshots =
snapshot.minFreeSpace =
HA VM and VM&Application monitoring
Агент HA мониторит состояние VM, и если она умерла неестественной смертью -
перезапускает на _том же самом_ хосте.
VM monitoring, условие перезапуска:
либо: аварийный останов сопровождающего VMM
либо: отсутствие vmtools heartbeat AND полное отсутствие IO
Application monitoring, условие перезапуска:
Внутри VM необходимо в цикле запускать программу
C:\VMware-GuestAppMonitorSDK\bin\win32>vmware-appmonitor.exe
{enable | disable | markActive}
markActive - подается не реже, чем раз в 30 секунд
enable - включает application monitoring изнутри
disable - выключает application monitoring изнутри
Входит в состав VMware-GuestAppMonitorSDK, добывается гуглением
http://www.yellow-bricks.com/2011/08/11/vsphere-5-0-ha-application-monitoring-intro/
Vmware Data Recovery
Pre- и post-freeze скрипты:
Windows: Перед бэкапным снапшотом - исполняются по алфавиту все скрипты из
C:\Program Files\VMware\VMware Tools\backupScripts.d
После удаления бэкапного снапшота - они же, в обратном порядке
Linux Pre-freeze /usr/sbin/pre-freeze-script
Linux Post-thaw /usr/sbin/post-thaw-script
Serial Port connection
Вариант: Named Pipe - цепляет компорт одной VM(near end=client) к
компорту другой VM(near end=server) - обе машины используют одинаковое
слово в поле Pipe Named - чтобы найти друг друга
Вариант: Use Network
* Server
Port URI: telnet://:12345
После включения VM делаем: "telnet esx.host 12345" и попадаем в компорт VM
Вариант: Use Network
* Client
Port URI: telnet://external.linux:23456 (можно так же ssh?)
После включения VM делает "telnet external.linux 23456"
и пробрасывает туда свой компорт
Virtual Serial Port Concentrator
Появился в v4.1. Поставляется в виде (платного?) апплианса
ACS v6000 Virtual Advanced Console Server ? http://www.avocent.com/Products/Category/Serial_Appliances/ACS_v6000_Virtual_Advanced_Console_Server.aspx
В апплиансе управление IP, с консоли: wiz
У VM'ки: Add Serial Port -- Connect Via Network --
Click Use Virtual Serial Port Concentrator.
Port URI: ACSID://ttyS42 (42 = номер порта в концентраторе)
vSPC URI: telnet://192.168.1.1:8801 - назначает tcp-порт в концентраторе
Внутри гостевого Linux, в /etc/grub.conf
console=ttyS0,9600 - переназначает GRUB-console w COM-port
Так же см: free vspcpy server
http://sourceforge.net/p/vspcpy/home/Home/
Коротко про View Persona Management
Origin: http://www.vmgu.ru/articles/vmware-view-persona-management
Можно установить на Connection-сервере GPMC.msc - Group Policy Management Editor
http://www.microsoft.com/download/en/details.aspx?id=21895
Запускаем GPMC
Или запускаем штатный gpedit.msc
Computer Configuration>Policies>Administrative Templates - Add/Remove Templates
на CS подключаем c:\...\VMware\VMwareView\Server\extras\GroupPolicyFiles\ViewPM.adm
на десктопе подключаем c:\...\VMware\VMwareView\ViewAgent\bin\ViewPM.adm
Затем переходим в
Computer Configuration>Policies>Administrative Templates
>VMware View Agent Configuration> Persona Management
>Roaming& syncronisation
GPO "Persona Repository Location"
>Folder Redirectiop
. . .
>Desktop UI
. . .
Как выключить ESXi через ssh
# этот метод жестко убивает VM-ки
ssh root@esx 'shutdown.sh ; poweroff'
VM cannot allocate memory при большом об'еме vmdk
При подключении более 20 жмдк и/или больше 4 Т vmdk суммарно
виртуальной машине не хватает heap size.
VMFS3.MaxHeapSizeMB = увеличить
Создание DB-instance в Oracle для VCSA
sqlplus sys/manager as SYSDBA
CREATE SMALLFILE TABLESPACE "VPX" DATAFILE "/var/oracle/oradata/vpxd/vpx01.dbf"
SIZE 1G AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT
MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE USER "VPXADMIN" PROFILE "DEFAULT" IDENTIFIED BY "oracle"
DEFAULT TABLESPACE "VPX" ACCOUNT UNLOCK;
grant connect, resource, create view, sequence, create table to VPXADMIN;
grant create materialized view to VPXADMIN;
grant execute on dbms_lock, execute on dbms_job to VPXADMIN;
grant execute on dba_tablespaces to VPXADMIN;
grant select on dba_temp_files, select on dba_data_files to VPXADMIN;
grant unlimited tablespace to VPXADMIN;
Название instance придумывается и вбивается в web-управлялке VCSA
tsnames.ora редактировать не требуется
Advanced настройки управляющие памятью
Mem.ShareVmkEnable = 1 # Разрешает Transparent Page Sharing
Mem.MemZipEnable = 1 # Разрешает Memory Compression
Mem.GuestAllocLargePages = 1 # Разрешает LagePage во всех VM
Отключение ASLR (Address Space Layout Randomization) в реестре VM
\HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages
создать ключ DWORD = 0 # Disable ASLR = плюс 20% к эффективности TPS
# Disable ASLR = минус x% к секьюрности OS
Внутри VM читаем информацию о настройках vApp, IP pool и OVF environment
http://virtual-red-dot.blogspot.com/2012/01/vapp-options-in-vm.html
http://blogs.vmware.com/vapp/2009/07/selfconfiguration-and-the-ovf-environment.html
Linked-clone своими руками
Берем обычную VM-1 с обычным виртуальным диском. Делаем ей снапшот.
Делаем VM-2, с "Disk - Use existing". Через "Browse" находим диск VM-1 - их
там два - исходник, и delta - цепляемся к исходному. Не включая VM-2, делаем
ей снапшот. Теперь VM-1 и VM-2 можно безболезненно запускать, в т.ч. и на
разных хостах.
Beacon probing по двум аплинкам: револьверный режим
На двух аплинках beacon probing failure не в состоянии определить, какой из
аплинков "погас" (ведь бродкасты не проходят по обоим направлениям). Тогда
дополнительно проверяется Link Status. Если оба аплинка "up", vSwitch
переключается в "shortgun mode"(двустволка) - весь трафик дублируется в оба
аплинка. Это может быть (а может не быть) чревато шквалом RARP бродкастов -
используемых при "Notify switches".
Beacon probing нельзя применять при Ether Channel (balancing by IP hash)
Просмотр информации о хардвере ESXi 5.0
smbiosDump
Установка апдейта в vSphere 5.0
vihostupdate в V5 отменена. Вместо нее esxcli
esxcli -server=x.x.x.x -username=root software vib update -depot=/vmfs/volumes/datastore/ESXi500-201109001.zip
Что почитать про vSphere
Книжки:
Nick Marshall "Mastering VMware vSphere 6.7" (1 ed, Sybex, 11.2018)
Davis, Baca, Thomas "VCP-DCV for vSphere 7.x (Exam 2V0-21.20) Official Cert Guide".
F.Guthrie, S.Lowe "VMware vSphere Design" (изд.2, Sybex, 03.2013)
Duncan Epping, Frank Denneman "vSphere 6.7 Clustering Deepdive" (07.2018) ? https://pages.rubrik.com/clustering-deep-dive-ebook.html?utm_campaign=authors
Dunkan Epping "vSphere HA deepdive 6.x" ? https://ha.yellow-bricks.com/
Frank Denneman, Niels Hagoort "Host Resources Deep Dive"
Mostafa Khalil "Storage Implementation in vSphere 5.0"
Perf_Best_Practices_vSphere ? http://www.vmware.com/pdf/Perf_Best_Practices_vSphere5.0.pdf
Christopher Kusek, Van Van Noy, Andy Daniel
"VMware vSphere 5 Administration Instant Reference" изд. Sybex
- помогает при подготовке к VCP
Книжки на русском:
Скотт Лоу "VMware vSphere 4. Полное руководство"(Mastering VMware vSphere 4)
Михаил Михеев "Администрирование VMware vSphere 5"
Околоvmware'овские блоги:
http://www.vmgu.ru ? http://www.vmgu.ru
http://www.virtuallyghetto.com ? http://www.virtuallyghetto.com
http://vmind.ru ? http://vmind.ru
http://blog.vadmin.ru ? http://blog.vadmin.ru
http://vmpress.blogspot.com ? http://vmpress.blogspot.com
http://www.yellow-bricks.com/ ? http://www.yellow-bricks.com/
http://CormacHogan.com ? http://cormachogan.com
http://chansblog.com/vmware-nsx/ ? http://chansblog.com/vmware-nsx/
http://v-front.de ? http://v-front.de
http://www.hoonkar.com/main/ ? http://www.hoonkar.com/main/
http://communities.vmware.com/community/vmtn/vmug/forums/emea/russia?view=discussions ? http://communities.vmware.com/community/vmtn/vmug/forums/emea/russia?view=discussions
VMware Vsphere Blog ? https://blogs.vmware.com/vsphere/
VMware Free Learning Videos ? http://www.vsphere.ru/2012/04/vsphere-5-free-learning-videos/
VMware Technical Journal ? http://labs.vmware.com/publications/vmware-technical-journal
VADP: vSphere storage APIs for Data Protection
VAPD FAQ ? http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1021175
VADP описание API http://www.vmware.com/support/developer/vddk/vadp_vsphere_backup111.pdf
VADP сам по себе (загрузка?) ? http://www.vmware.com/products/vstorage-apis-for-data-protection/overview.html
VAAI: vSphere storage APIs for Array Integration
VAAI plugins for Array
ATS (Atomic Test and Set) - Hardware Assisted Locking
Clone - Hardware Accelerated Full Copy - копирование vmdk
Zero - Hardware Accelerated Block Zeroing - обнуление eager zeroed vmdk
Delete - Thin Provisioning - оповещение RAID об удалении VMDK (полезно для массивов с thin-provisioned LUN)
VAAI plugins for NFS
Reserve Space - позволяет создать thick vmdk на NFS'e
Full File Clone - копирование vmdk
Lasy File Clone - "копирование" посредством NAS-snapshot (offload аналог linked clone)
Extended Statistics
Просмотр возможности VAAI для разных LUNs
esxcli storage core device vaai status get
Просмотр стандартных назначений VAAI-модулей для поддерживаемых Arrais
esxcli storage core claimrules list -c all
Как назначить локальному SATA диску фальшивый атрибут SSD
http://www.virtuallyghetto.com/2011/07/how-to-trick-esxi-5-in-seeing-ssd.html
# делаем правило
esxcli storage nmp satp rule add --satp VMW_SATP_LOCAL --device mpx.vmhba1:C0:T2:L0 --option=enable_ssd
# проверяем его
esxcli storage nmp satp rule list | grep enable_ssd
# активируем
esxcli storage core claiming reclaim -d mpx.vmhba1:C0:T2:L0
vim-cmd hostsvc/storage/refresh
# убеждаемся
esxcli storage core device list --device=mpx.vmhba1:C0:T2:L0
Чтобы ESXi не жаловался на включенный SSH
Configuration -- Software -- "Advanced Settings"
UserVars > UserVars.SupressShellWarning = 1
HA/DRS 5.0 advanced options
VMware Distributed Resource Management: Design, Implementation and Lessons Learned ? http://labs.vmware.com/download/157/
das.ignoreinsufficienthbdatastore = true
das.heartbeatdsperhost = value
http://www.virtuallyghetto.com/2011/07/new-vsphere-5-ha-drs-and-sdrs.html
Частота прерывания таймера в Linux
Штатная частота прерываний таймера во многих Linux - 1000 Hz.
Понизить ее до 100 Hz можно ключом начальной загрузки:
divider=10
Кернельный параметр divider=10 сокращает дефолтную частоту обработчика
раз, что сокращает CPU overhead для idle VM.
Размещение снапшотов
snapshot.redoNotWithParent = "TRUE"
workingDir = "..."
snapshot.maxSnapshots = "n"
Configuring Auto Deploy on the vCenter Server Appliance
Подробнее тут
http://www.yellow-bricks.com/2011/08/25/using-vsphere-5-auto-deploy-in-your-home-lab/
1. Активируем Autodeploy на VCapp
https://vcapp.sevrev.address:5480/
Services - Status - Start ESXi services
2. Настраиваем TFTP
vSphere Client -- Home - Administration - Autodeploy -
"Download TFTP boot zip" и вскрываем эти PXE-файлы
в корневой каталог TFTP-сервера
После активации AutoDeploy - aTFTPd конфигурится в VCVA автоматически
/srv/tftpboot/undionly.kpxe.vmw-hardwired - загрузчик
/srv/tftpboot/tramp - адрес autodeploy
Привязка PXE-загрузчика к конкретному Autodeploy - в файле "tramp":
#!gpxe
set filename https://10.10.47.242:6502/vmw/rbd/tramp
chain https://10.10.47.242:6502/vmw/rbd/tramp
service atftpd restart # рестарт stftpd
3. Настраиваем DHCP
vi /etc/sysconfig/dhcpd
DHCPD_INTERFACE="eth0"
mv /etc/dhcpd.conf /etc/dhcpd.conf.old
vi /etc/dhcpd.conf
ddns-update-style interim;
subnet 10.10.47.0 netmask 255.255.255.0 {
range 10.10.47.212 10.10.47.212;
option routers 10.10.47.3;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.47.3;
# файл автодеплойного загрузчика на указанном TFTP сервере
filename "undionly.kpxe.vmw-hardwired";
next-server 192.168.47.112;
host _disklessesxhostname_ {
hardware ethernet MA:Ca:dd:re:ss:ESX;
fixed-address 10.10.47.212;
}
}
service dhcpd restart
4. Настраиваем Autodeploy с помощью autodeploy PlugIN
http://labs.vmware.com/flings/autodeploygui ? http://labs.vmware.com/flings/autodeploygui
5. Настраиваем Autodeploy с помощью PowerCLI
File path to the ESXi offline image c:\HL234\VMware-ESXi-5.0.0-469512-depot.zip
# разрешаем работу PowerCLI
get-executionpolicy
set-executionpolicy unrestricted
connect-viserver vCenter.Server.name
# подключаем архив с дистрибутивом ESXi к ImageBuilder
Add-EsxSoftwareDepot c:\HL234\VMware-ESXi-5.0.0-469512-depot.zip
# а так подключается vmwar-овский депот
Get-Help Add-ESXSoftwareDepot -Full
Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
# HP depot с HP-build ESXi
Add-EsxSoftwareDepot http://vibsdepot.hpe.com/index.xml
# Список image-профайлов в подключенных депотах
get-esximageprofile
# Заряжаем правила соответствия - какой хост каким boot-образом кормить:
# Привязываем image-профайл (фактически - boot-образ) ко всем хостам
new-deployrule -name prawilo1 -item ESXi-5.0.0-469512-standard -allhosts
# загруженный хост включать в кластер Cluster12
new-deployrule -name prawilo2 -item "Cluster12" -allhosts
# к загруженному хосту применить Host Profile
new-deployrule -name prawilo3 -item "HostProfile12" -allhosts
# Активируем созданные правила
add-deployrule -deployrule prawilo1
add-deployrule -deployrule prawilo2
add-deployrule -deployrule prawilo3
add-deployrule -deployrule
get-deployruleset
6. Stateless Caching
Конфиг берется из Profile, однажды загруженный по сети ESX кэшируется
на локальный диск или usb и грузится в случае отказа PXE-boot
Выставить в BIOS порядок загрузки: 1. Network, 2. Local Disk
Host Profiles -- выбрать diskless-profile -- Edit Profile:
System Image Cache Configuration -- > System Image Cache
-- > Enable stateless caching on the host
*Argument for first disk: esx,local (или esx,usb)
*Check for overwrite any VMFS volume on selected disk: NO
7. Statefull Installation
Конфиг берется из Profile, однажды загруженный по сети ESX кэшируется
на локальный диск или usb и грузится в дальнейшем с него.
Выставить в BIOS порядок загрузки: 1. Local Disk, 2. Network
Host Profiles -- выбрать diskless-profile -- Edit Profile:
System Image Cache Configuration -- > System Image Cache
-- > Enable statefull installs
*Argument for first disk: esx,local (или esx,usb)
*Check for overwrite any VMFS volume on selected disk: YES (или NO)
Еще несколько команд:
Test-DeployRuleSetCompliance -VMHost host1.company.local
Get-VMHost host1.company.local | Test-DeployRuleSetCompliance
Get-VMHost host1.company.local | Test-DeployRuleSetCompliance | Repair-DeployRuleSetCompliance
Get-VMHostAttributes -VMHost host1.company.localB
Get-VMHost host1.company.local | Get-VMHostAttributesB
Get-VMHostMatchingRules host1.company.local
Get-VMHost host1.company.local | Get-VMHostMatchingRulesB
Get-Command -Module VMware.DeployAutomaionB
Image Builder
Add-EsxSoftwareDepot C:\ESXi-Depot\update-from-esxi5.0-5.0_update01.zip # Add offline software depot
Add-EsxSoftwareDepot http://vibsdepot.hp.com # Add online software depot
Remove-EsxSoftwareDepot zip:C:\ESXi-Depot\update-from-esxi5.0-5.0_update01.zip?index.xml # Remove offline software depot
Get-EsxSoftwareChannel
Set-EsxImageProfile
Get-EsxSoftwarePackage # Show available VIBs
Get-EsxSoftwarePackage -Name tools-light # Show details for VIB "tools-light"
Get-EsxSoftwarePackage -Vendor VMware # Show all VMware VIBs
Get-EsxSoftwarePackage -AcceptanceLevel PartnerSupported # Show PartnerSupported VIBs
Get-EsxSoftwarePackage net-e1000 | Select -ExpandProperty Depends # Show dependencies for VIB "net-e1000"
Get-EsxSoftwarePackage net-e1000 | Select -ExpandProperty Conflicts # Show conflicts for VIB "net-e1000"
Get-EsxSoftwarePackage net-e1000 | Select StatelessReady # Identify if VIB "net-e1000" is Stateless Ready
New-EsxImageProfile -CloneProfile ESXi-5.0.0-20120302001-standard -Name CustomProfile -AcceptanceLevel PartnerSupported
New-EsxImageProfile -NewProfile -Name MinInstall -Vendor Custom -SoftwarePackage esx-base,esx-tboot,misc-drivers
Add-EsxSoftwarePackage -ImageProfile CustomProfile -SoftwarePackage tools-light # Add VIB "tools-light" to CustomProfile
Remove-EsxSoftwarePackage -ImageProfile CustomProfile -SoftwarePackage tools-light # Remove VIB "tools-light" from CustomProfile
Get-EsxImageProfile # Show Image Profiles
Get-EsxImageProfile CustomProfile | Select -Expand VibList # List VIBs in Image Profile "CustomProfile"
Compare-EsxImageProfile CustomProfile01 CustomProfile02 # Compare Image Profiles CustomProfile01 and CustomProfile02
Export-EsxImageProfile -ImageProfile CustomProfile -ExportToIso -FilePath C:\ESXi-Depot\CustomProfile.iso
Export-EsxImageProfile -ImageProfile CustomProfile -ExportToBundle -FilePath C:\ESXi-Depot\CustomProfile.zip
Get-Command -Module VMware.ImageBuilder
Если DPM не выключает хосты
Проверить, что _все_ VM-ки поддаются vmotion в оба конца.
Зачистить COM-порты у VM-ок, полученных с помощью Convertor'а,
как минимум выставить им: NOT connected, и NOT connected at poweron
Чтоб vsphere-клиент при выборе LUN для RDM/VMFS показывал все LUN
Чтоб vsphere-клиент при выборе LUN для RDM/VMFS показывал все LUN,
а не только незанятые:
Administration > vCenter Server Settings > Advanced Settings.
config.vpxd.filter.rdmFilter; false
config.vpxd.filter.vmfsFilter; false
Это СТРЕМНО! Не подумав, не применять!
http://kb.vmware.com/selfservice/microsites/search.do?externalId=1010513
Оффтопик. Скриптинг в win-cmd
cmd /c c:\wintools\devcon.exe find "USB\VID_0BB4&PID_0C02&MI_01" | c:\batch\htc.cmd
########### htc.cmd ##########################
@echo off
set /p res=
if "%res%"=="No matching devices found." goto end
"C:\Program Files (x86)\MyPhoneExplorer\MyPhoneExplorer.exe" action=sync flags=noerrmsg syncitem=multi
:end
VDS - конфигурирование без VC
Вообще-то без VC VDS конфигурировать невозможно, но если у портовой группы
port binding = ephemeral, то подключить виртуалку к VDS можно будет и через
host, без доступа к VC
Превращение VM с 4-vcpu в VM с двумя двухядерными процессорами
cpuid.coresPerSocket = 2
Как уменьшить размер виртуального диска
1. Партицию на уменьшаемом диске надо подрезать _заранее_
2. В файле .vmdk уменьшаем явно заданный (в блоках по 512b) размер диска,
RW 25165824 VMFS "Win2003se-flat.vmdk"
затем - делаем диску migrate, или "storage vmotion" или VM clone.
3. Официально vmware этот трюк не поддерживает.
Просмотр ARP-таблицы в ESXi
esxcli network neighbor list
а еще можно - vimsh - по свойствам vSwitch
Как обнулить пароль в ESX и ESXi
В ESX - загрузиться single user mode
В ESXi содержимое /etc/passwd при каждой загрузке замещается с конфиг-архива.
Поэтому править нужно в нем.
setup.tgz лежит на VFAT-партиции No 2(? 3?4?) содержит local.tar -
вскрыть их, исправить файл, затем свернуть обратно и положить на место.
Как восстановить удаленный VMFS3
Команда "Delete Datastore" удаляет из partition table партицию типа "fb", но
сама мета-информация VMFS - остается целой.
Для оживления удаленного VMFS надо просто воссоздать партицию ручным fdisk с
тем же размером, что был у оригинала.
Тип партиции: "fb"
Командой "e" (Expert mode) - "x 128"(отступ) сместить начало партиции на 128
блок (т.е. 64Kb от начала)
Затем "Rescan strorages" - и VMFS будет обнаружен.
Переназначение snapshot'ов и swap'а на другой сторадж
Вставляем в .vmx строчку
workingDir="/vmfs/volumes/Datastore1/vm-snapshots"
она переназначает и снапшоты и swapfile тоже.
Если swapfile должен лежать в другом сторадже, задаем его:
sched.swap.dir="path_to_vm_directory...or_other_datastore_dir"
сделать машине "Remove from inventory"+"Add to inventory"
Установка updates в ESXi
Встать в Maintеnаnce моде
Удаленно:
/usr/lib/vmware-vcli/apps/host/hostops.pl --target_host ESX-Host-FQDN
--operation enter_maintenance --url https://vCenter-Host/sdk/vimService.wsdl
Локально:
vim-cmd hostsvc/maintenance_mode_enter
esxupdate --bundle /vmfs/volumes/nfs/update-from-esxi4.1-4.1_update01.zip update
vim-cmd для ESXi
vim-cmd vmsvc/getallvms # список всех VM
vim-cmd vmsvc/power.getstate 65 # power-статус
vim-cmd vmsvc/power.off 64
power.shutdown,power.suspend ...
vim-cmd vmsvc # help
# shutdown всех VM
vim-cmd vmsvc/getallvms|sed -e "s/ .*//"|grep "^[0-9]*$"|\
while read vmid ; do vim-cmd vmsvc/power.shutdown $vmid ; done
Перезагрузка ESX3.5:
shutdown -r или
vim-cmd hostsvc/maintenance_mode_enter
reboot -f
vim-cmd hostsvc/maintenance_mode_exit
Реконфигурация сети у vMA
Можно перезапустить скрипт начальной конфигурации сетевых параметров vMA:
# в VMA 4.0
vi-admin$ sudo /opt/vmware/vima/bin/vmware-vima-netconf.pl
# в VMA 4.1
vi-admin$ sudo /opt/vmware/vma/bin/firstboot/vmware-vma-netconf.pl
Дабы у vMA не двоила клавиатура - вставить в .vmx
keyboard.typematicMinDelay = 2000000
FT машины не обслуживаются DRS-кластером
Если в DRS-кластере активировать EVC, DRS начнет обслуживать и FT-машины
View: если зависает QuickPrep Customization на Win7
Десктопы Win7 без лицензии (evaluation) QuickPrep'овскую кастомизацию
до конца не отрабатывают, создание пула linked-clonов дает ошибку.
Лечение: regedit'ом отредактировать реестровую переменную (примерно)
Local Machine/System/Current Control Set/Services/
VmwareViewComposer-ga/SkipLicenseActivation = 1
Как выполнить команду внутри GUEST OS
NOTE! В 2013 VIX API заменяется на vSphere Guest Operations API
http://www.virtuallyghetto.com/2011/07/automating-new-integrated-vixguest.html
https://www.vmware.com/support/developer/vix-api/guestOps50_technote.pdf
Устаревший вариант: VMware API VIX
download: http://www.vmware.com/support/developer/vix-api/
В его состав входит команда vmrun
http://www.virtuatopia.com/index.php/Controlling_VMware_Virtual_Machines_from_the_Command_Line_with_vmrun
В .vmx вписать (по умолчанию выключено)
vix.inGuest.enable = TRUE
Примеры использования vmrun (-T esx , -T ws ...)
vmrun -T esx -h https://myHost.com/sdk -u hostUser -p hostPassword stop "[datastore1] vm/myVM.vmx"
vmrun -T esx -h https://hostname/sdk -u root -p PaSs -gu Administrator
-gp guestpasswd listProcessesInGuest "[Vol1] win2008-1/win2008-1.vmx"
vmrun -T esx -h https://hostname/sdk -u root -p PaSS -gu Administrator
-gp guestpaswd runProgramInGuest "[datastore1] win2008-1/win2008-1.vmx"
-activeWindow "c:\windows\system32\cmd.exe"
vmrun -T ws -h https://hostname:8333/sdk -u root -p PaSS -gu Administrator
-gp guestpasswd killProcessInGuest "[Vol1] win2008-1/win2008-1.vmx" 2368
vmrun -T server -h https://hostname:8333/sdk -u root -p PaSS -gu Administrator
-gp guestpasswd runScriptInGuest "[Vol1] CentOS 5/Centos 5.vmx"
/usr/bin/ruby /home/ruby/hello.rb
Либо PowerCLI
Инсталляция ESXi по сети
Origin: http://communities.vmware.com/blogs/vmwareinsmb/2010/07/13/esxi-41-scripted-installation-via-pxe-and-kickstart
Иметь установленными: dhcpd, tftpd, apache, syslinux, pxeboot
# Настройки приведены для openSUSE 11.3 - для других Linux надо
# делать очевидные замены, типа zypper == > apt-get, yum и т.д.
zypper install tftp dhcp-server syslinux qiwi-pxeboot apache2
#### /etc/dhcpd.conf #### задать инсталляционным адресам загрузчик pxelinux
option domain-name-servers 192.168.1.4;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.151 192.168.163.180;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}
# А еще лучше - индивидуально задать на mac-адрес хоста
host esxi02 {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 192.168.1.22;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}
################################
Смотрим в /etc/xinetd.d/tftp - где корневая директория tftp, например
server_args = -s /srv/tftpboot
меняем disable = yes
на disable = no
и перезапускаем xinetd
service xinetd restart
# Размещаем в ней загрузчик pxelinux
/srv/tftpboot/pxelinux.0
# и его конфигуратор
# /srv/tftpboot/pxelinux.cfg/default :
DISPLAY boot.txt
DEFAULT ESX_4.1_install
LABEL ESX_4.1_install
kernel vmware/esx4.1/mboot.c32
append vmware/esx4.1/vmkboot.gz ks=http://192.168.1.4/linux/vmware/esxi-ks.cfg --- vmware/esx4.1/vmkernel.gz --- vmware/esx4.1/sys.vgz --- vmware/esx4.1/cim.vgz --- vmware/esx4.1/ienviron.vgz --- vmware/esx4.1/install.vgz
в подкаталог tftpd сервера монтируем инсталляционный CDROM ESXi
mkdir -p /srv/tftpboot/vmware/esx4.1
mount /dev/cdrom /srv/tftpboot/vmware/esx4.1
или
mount -o loop /export/vmware/ESXi4.1.iso /srv/tftpboot/vmware/esx4.1
# Осталось сделать kick-start-файл, и можно приступать
#### /export/linux/vmware/esxi-ks.cfg ##############
accepteula
rootpw supersecretpassword
autopart --firstdisk --overwritevmfs
install url http://192.168.1.4/linux/vmware
network --bootproto=static --ip=192.168.1.22 --gateway=192.168.1.1 --nameserver=192.168.1.4 --netmask=255.255.255.0 --hostname=esxi02 --addvmportgroup=0
reboot
####################################################
Назначение локального SATA-диска в RDM для ESXi
Origin: http://www.vm-help.com/esx40i/SATA_RDMs.php
При создании RDM через клиента ESXi локальные SATA-ные диски выбрать не дает.
Поэтому RDM-конфиг для него придется делать руками, командой vmkfstools
# находим VML-идентификатор требуемого диска
ls -l /dev/disks/
... vml.0100000000202