Примеры использования командной строки, технические подробности
© 2008-2022 Составитель сборника М.Е.Мошков



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-устройства перехватываются сервисом 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
Оптимизация. Паравиртуальная аппаратура.
Оптимизация. Проброс физического железа в виртуалку
Виртуализация жестких дисков. Прямой проброс, толстое выделение, тонкие диски.



  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 размер кэш-драйвов рекомендуется в 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


Подготовка образа 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



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


Кронтаб уже используется в ESXi, его конфиг можно редактировать VI
и перезапустить crond

vi /var/spool/cron/crontabs/root

kill  `cat /var/run/crond.pid`
/usr/lib/vmware/busybox/bin/busybox   crond



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].*.*
}




ssh   'administrator@vsphere.local'@vcenter.address

Command>  localaccounts.user.password.update --username root --password



 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



В  версиях  ниже  7  один vmotion vmknic разгонялся не выше 18Gbit/sec и для
получения полной полосы на 25 и 40Gbit-ных аплинках нужно делать 2 и 3  vmo-
tion-vmknic соответственно.

Начиная с v7update2 один vmotion-vmknic может заполнить до 100Gbit.




Это дефолтное поведение.
Чтоб от него отказаться, вписать в VC Advanced Setting:

config.migrate.test.CompatibleNetworks.VMOnVirtualIntranet = false




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    #  нет




# 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


            Pool Scope:
     Within POD   десктоп ищется только в текущем POD, если в нем нет - отказ
     Within Site   в текущем POD, затем в других POD сайта, и на них нет - отказ
     Global        в текущем ПОД, затем в том site, затем в остальных, если нет - отказ

Если десктопы(ы) для пользователя уже есть, и он(и) находится в соответствии со SCOPE - берем
тот, что нашелся, где бы он не был

Запуск и авторизацию дектопа обеспечивает CS-владелец
Туннель до десктопа обеспечивает CS-подключения

    Если один и тот же десктоп entitled пользователю
и через GlobalEntitlement и через LocalEntitlement, то
в списках доступны подов на клиенте декстоп показывается дважды,
через обе иконки попадаешь в тот же десктоп.

Пересечение  LocalEntitlement  и  GlobaEntitlement  вызывает шизофреническую
чехарду, десктоп поднятый через LocalEnt - передается  в  список  Global,  и
наоборот


Поскольку UAG со своего URL светит сертификатом выписанным на домен CS -
   в клиент setting SSL придется выставить в "No verify"

Двойной туннель на UAG возможен для PCoIP, и не работает по Blast/RDP
При применении UAG: на CS PCoIP tunnel: можно включить, можно отключить
При применении UAG: на CS Blast tunnel: Only HTML access


Количество мастер-нод в Tanzu Supervisor-кластере можно уменьшить
VC:/etc/vmware/wcp/wcpsvc.yaml  Set "minmasters" and "maxmasters" to 2



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



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"


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


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



ls -al /dev/disks/

Посмотреть, у каких дисков есть партиции (VSAN делает 2)

esxcli vsan storage list  # подсмотреть UUID дисковой группы

esxcli vsan storage remove -u  524022e4-2d92-7e47-c09d-b2f9ea6c774b



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"
Или просто сделать снапшот и при необходимости к нему откатываться



 При старте windows тулзы самостоятельно и насильственно синхронизируют часы
VM с часами хоста. Это поведение должен отключать чекбокс в
 VM -- Settings -- VM Option -- VMTools -- "Synchronize guest time with host"
 но он не отключает. Поэтому прописываем в .vmx

tools.syncTime = "FALSE"
time.synchronize.tools.startup = "FALSE"


# для версий 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



Дефолтное размещение 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 7.0 для Stratched Cluster сделали аналог HA VM Component
Protection. Включается адвансед-параметром:

  VSAN.AutoTerminateGhostVm = TRUE

Для  обычного  VSAN  эта  опция  неприменима, и в нем на отколовшихся хостах
предлагается  вручную  запускать  скрипт,   автоматически   распознающий   и
убивающий "призрачные" VMки (потерявшие из-за раскола VSAN свои диски)

# python killInaccessibleVms.py


Инсталлятор создает три партиции:
 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


Для 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) на получателе



# 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


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 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


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+)


 в 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)


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}    #



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 переназначен на датастор хоста



В  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



#  "жесткая" преаллокация памяти
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


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



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


Во-первых - это плохая идея.
Во-вторых - для новых портов - не забыть проковырять дырки в файрволле!
В-третьих - придется переучивать 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



Root-password в Settings VM -> Options -> vApp Options -> Other Properties

# Пароль к веб-админкв - пользователь admin:
ADMINPASSWORD=SEcret0!       li-reset-admin-passwd.sh

При заходе на Log Insight использовать строго FQDN - по IP или короткому hostname
админка не распознает пароль или вообще не работает



# Исправить тег 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 работать.


https://vdp.appliance.address:8543/vdp-configure
начальный пароль: changeme

NB! Hostname для VDP-appliance обязан ресолвиться в DNS и в Reverse-DNS!
Минимальный Datastore - 0.5 Tb, пустой vdp занимает 55Гб с тонким диском



Знаете  ли  вы, что автостарт VMок привязывается по их именам, а не по ID,
поэтому Rename и Storage migration vm'ки выносит ее из Автостарта.



https://www.v-front.de/2014/01/building-self-configuring-nested-esxi.html



При  проверке в каждый заявленный VLAN кидается бродкаст-пакет размером MTU.
Если на VDS есть транкованая портгруппа (Trunk VLAN=1-4094)  она  на  каждой
проверке  получает  4К пакетов - при mtu 9000 - 28 Мб за раз.  В один аплинк
кидает, из другого длжен прилететь. В VDS с одним аплинком healthceck  -  не
функционирует.



# "сервер" с 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



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


Для каждой VM в recovery можно задать в "Configure Recovery"
IP Configuration. Но работают они только для Windows,
и Linux: RHEL, SLES, Ubunta. А CentOS - not supported



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



/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>




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



https://vc.server/psc




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'а



 esxcli system account    add -i winuser -p 'Pa$$w0rd' -c  'Pa$$wrd'
 esxcli system permission set -i winuser -r ReadOnly
 esxcli system permission list


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



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



При использовании 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)




Еще  бы  им  не  переполняться - 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



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/



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



Чтобы для 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.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 работало в NestedESX виртуалка под ESX
должна иметь OS ESX 5.5-6.0, nic vmxnet3 (потому что 10 Gbit)
(virtual hardware 8 - достаточно)

vm.uselegacyft = true # использовать FT версии 5



Get-VM | Get-Snapshot | ft vm, name, created



Перед загрузкой 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/




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-интерфейсов стека




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





При ssh-логине открывается вместо обычного shell'а ограниченное меню

Активация Bash в VC-appliance
Shell> shell.set --enable true
Shell> shell.get
Shell> shell



Тем  кто проапгрейдил свой 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


В 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



https://en.wikibooks.org/wiki/VSphere_Web_Client


HP customized VMware image downloads
http://hp.com/go/esxidownload

HP Proliants установка апдейтов, base images, firmware, dravers и т.д.
 http://vibsdepot.hp.com/getting_started.html



monitor_control.disable_mmu_largepages = TRUE



При создании 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



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




По  факту  - VM с nonpersistent disk - это просто машина, которой при старте
делается снапшот, а при выключении ее  redo-log  AKA  дельта-диск  удаляется
(vmdk т.е. откатывается к снапшоту).

Но  есть ньюансы. В свойствах VM указан не дельта-файл, а сам заснапшоченный
диск, дельтафайл имеет нестандартное имя.

А еще nonpersistent VM не делает Storage Vmotion - этой ошибке уже несколько
лет и Vmware до сих пор ее не исправило.




KB1025279
KB1015180


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



URL Lookup service: https://machinename.corp.com:7444/lookupservice/sdk
SSO Administrator:  administrator@vsphere.local



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'а



Для доступа к каталогу Лабораторных демонстраций (более 30 лаб) -
зарегистрироваться на портале

http://hol.vmware.com



Чтоб  броузер  при  заходе  на  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/



VUM  до  сих  пор является 32-битным приложением, и ODBC-коннектор ему нужен
32-битный. На 64-разрядной винде его делают командой

c:\windows\system32\odbcad32.exe

В Windows2012:

 Control panel > System and Security > Administrative Tools
    ODBC Data Sources (32 bit)



Скрипт запускается на 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



domainjoin-cli join  domain.name domain-username
domainjoin-cli query
domainjoin-cli leave
domainjoin-cli query



Скидочный код VCPRECERT25 действует до 1 января 2015, и только
для тех, кто имеет хоть какой-нибудь VCP.

https://mylearn.vmware.com/mgrReg/plan.cfm?plan=51574&ui=www_cert



https://esxi.ip.address/mob/?moid=ha-host&doPath=hardware



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)



Диски,  подвешенные  на LSI SAS virtual controller в NestedESX инсталлятором
показываются как "Remote"




Для 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



NETGEAR ProSafe Plus XS708E-100NES : 8*10GBASE-T + 1*SFP+ = $1.5K



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



В /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 их не подцепит.



По   умолчанию   запрещена.   Чтоб  разрешили  -  приходится  предварительно
дисконнектить ethernet, или отключать с него IP-адрес изнутри гостевой OS.

"Лечится" advanced-настройкой VCентра

Administration > vCenter Server Settings > Advanced Settings

config.migrate.test.CompatibleNetworks.VMOnVirtualIntranet "false".



Передача базы не возможна. Схема Oracle-базы под Windows и Linux
различаются. Migration-tool для 5.1, 5.5 отсутствует.

Остается экспорт-импорт дистрибьютед свитчей.



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




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



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)



vmx.log.destination = "syslog-and-disk"    # syslog И штатный vmware.log
vmx.log.destination = "syslog"             # только в syslog

vmx.log.syslogID = VirtualMachineString    # чтоб опознавать логи



scsi1:2.virtualSSD = 1



Зачастую, при бэкапе виртуальных машин в 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




Если помним 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'






При захвате ThinAppa в Package.ini нужно выставить переменную

MSIStreaming = 1   (по умолчанию  стоит 0)

и запустить build.bat



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



esxcfg-advcfg -s 1 /Net/FollowHardwareMac

И тогда при клонировании загрузочной USB-флешки с ESXi не возникнет дубля MAC

Если  клонируется  не  флешка,  а виртуальный ESXi с vmdk, то делать VMFS не
надо - клоны получат datastore с одинаковыми UUID, VCenter их не подцепит.




Приветствие на мониторе 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-DV, VCP-DT, Cloud, IaaS
http://www.pearsonvue.com/vmware/getcertified/
http://vmware.com/certification
Promotion code 

Существует так же инструкторская скидка 25%, до 31 октября 2013
спросить код у своего инструктора



Узнать PID vmm-процесса VM

esxcli vm process list  # см. VMX Cartel ID
  или
ps -c

kill -STOP {pid}
kill -CONT {pid}



Заменить guestOS = "windows8srv-64" на
guestOS = "winhyperv"
featMask.vm.hv.capable = "Min:1"



В .vmx файл добавить

smbios.reflecthost = TRUE




При  деиснталляции  реплики CS, а так же View security-server они остается в
списках серверов конфигурации View. Удалять их приходится руками:

vdmadmin -S -s server.name -r




Запустить 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



По умолчанию выключенно по соображениям безопасности. Для активации:
в .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"



У переименованной VM имена файлов остаются старые, и не меняются даже
при миграции. При миграции переименовывается только каталог.
Чтобы при миграции файлы переименовывались:
Administration -- vCenter Server Setting -- Advanced Settings

provisioning.relocate.enableRename true



Каталог для tools задается конфигурационным параметром

UserVars.ProductLockerLocation = /locker/packages/5.1.0

после перезагрузки автоматически создается симлинк /productLocker на него:

 ln -s /locker/packages/5.1.0 /productLocker




Надеюсь этот глюк когда-нибудь запатчат. Но пока...

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"



Default SSO Admin Account: admin@System-Domain   VMw@re11

Настройка через Web-client:
  Administration -- Configuration -- Identify Sources -- + добавление источника




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




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



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.



1. Виртуальный BIOS не умеет загружаться с USB.

Хак 2. Add -- Hard Disk -- RDM -- в качестве физдиска выбираем USB-флешку.
Затем в настройках BIOS назначаем этот "диск" загрузочным.

Хак 3. http://www.plop.at/en/bootmanagerdl.html
Plop Boot Manager - загрузочный iso, умеет редиректить загрузку на USB



Подробности: 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



ovftool  vi://root@esx1/ # смотрим имеющиеся VM, -ds = Destination Storage
ovftool -ds=esx2-Local-storage -dm=thin vi://root@esx1/VMname vi://root@esx2







После  удаления  и замены на новый виртуального ethernet старый конфиг может
заклинить и не даст назначить прежний IP новому адаптеру.

 Запускаем Device Manager с показом nonpresent_devices

set devmgr_show_nonpresent_devices=1
devmgmt.msc
                        View > Show Hidden Devices.

И удаляем zombi-ethernet



vmnic _обязан_ иметь FC-offload

Выяснить, под каким VLAN зарегистрирован FC в коммутаторе и сделать vmk-порт
на требуемом vmnic (обеспечить  ему  моно-тиминг)  с  этим  VLAN.  IP  можно
назначить любой - он не используется.

Затем - Storage Adapters -- Add -- Software FCoE



Начиная с версии 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-архив вскрывается и создается архиватором 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/






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 размещает свой корень в рамдиске. Конфиг-файлы, подлежащие сохранению
имеют 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
В 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




/etc/vmware/vmware.lic
/etc/vmware/license.cfg
 при их удалении лицензия сбрасывается



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




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.action = [ keep | autoRevert | autoCommit | prompt ]
workingDir =
snapshot.redoNotWithParent = "TRUE"
suspend.Directory =
snapshot.numSnapshots =
snapshot.minFreeSpace =



Агент  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/


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


Вариант: 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"
 и пробрасывает туда свой компорт



Появился в v4.1. Поставляется в виде (платного?) апплианса
ACS v6000 Virtual Advanced Console Server
В апплиансе управление 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/




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'



При подключении более 20 жмдк и/или больше 4 Т vmdk суммарно
виртуальной машине не хватает heap size.

VMFS3.MaxHeapSizeMB = увеличить



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 редактировать не требуется



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



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



Берем обычную VM-1 с обычным виртуальным диском. Делаем ей снапшот.

Делаем VM-2, с "Disk - Use existing".  Через "Browse" находим диск VM-1 - их
там два - исходник, и delta - цепляемся к исходному. Не включая VM-2, делаем
ей  снапшот.  Теперь  VM-1 и VM-2 можно безболезненно запускать, в т.ч. и на
разных хостах.




На  двух аплинках beacon probing failure не в состоянии определить, какой из
аплинков "погас" (ведь бродкасты не проходят по обоим  направлениям).  Тогда
дополнительно  проверяется  Link  Status.  Если  оба  аплинка  "up", vSwitch
переключается в "shortgun mode"(двустволка) - весь трафик дублируется в  оба
аплинка.  Это может быть (а может не быть) чревато шквалом RARP бродкастов -
используемых при "Notify switches".

Beacon probing нельзя применять при Ether Channel (balancing by IP hash)



smbiosDump



vihostupdate в V5 отменена. Вместо нее esxcli

esxcli -server=x.x.x.x -username=root software vib update -depot=/vmfs/volumes/datastore/ESXi500-201109001.zip


Книжки:

  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)
  Dunkan Epping "vSphere HA deepdive 6.x"
  Frank Denneman, Niels Hagoort "Host Resources Deep Dive"

  Mostafa Khalil "Storage Implementation in vSphere 5.0"
  Perf_Best_Practices_vSphere
  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.virtuallyghetto.com
http://vmind.ru
http://blog.vadmin.ru
http://vmpress.blogspot.com

http://www.yellow-bricks.com/
http://CormacHogan.com
http://chansblog.com/vmware-nsx/
http://v-front.de
http://www.hoonkar.com/main/
http://communities.vmware.com/community/vmtn/vmug/forums/emea/russia?view=discussions
VMware Vsphere Blog

VMware Free Learning Videos
VMware Technical Journal


VAPD FAQ
VADP описание API http://www.vmware.com/support/developer/vddk/vadp_vsphere_backup111.pdf
VADP сам по себе (загрузка?)



    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



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



Configuration -- Software -- "Advanced Settings"
UserVars > UserVars.SupressShellWarning = 1



VMware Distributed Resource Management: Design, Implementation and Lessons Learned

das.ignoreinsufficienthbdatastore = true
das.heartbeatdsperhost = value
http://www.virtuallyghetto.com/2011/07/new-vsphere-5-ha-drs-and-sdrs.html



Штатная частота прерываний таймера во многих Linux - 1000 Hz.
Понизить ее до 100 Hz можно ключом начальной загрузки:

divider=10

Кернельный параметр divider=10 сокращает дефолтную частоту обработчика
раз, что сокращает CPU overhead для idle VM.



snapshot.redoNotWithParent = "TRUE"
workingDir = "..."
snapshot.maxSnapshots = "n"



Подробнее тут
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



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



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



Проверить, что _все_ VM-ки поддаются vmotion в оба конца.
Зачистить COM-порты у VM-ок, полученных с помощью Convertor'а,
как минимум выставить им: NOT connected, и NOT connected at poweron


Чтоб 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



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




Вообще-то  без  VC VDS конфигурировать невозможно, но если у портовой группы
port binding = ephemeral, то подключить виртуалку к VDS можно будет и  через
host, без доступа к VC




cpuid.coresPerSocket = 2



1. Партицию на уменьшаемом диске надо подрезать _заранее_

2. В файле .vmdk уменьшаем явно заданный (в блоках по 512b) размер диска,
RW 25165824 VMFS "Win2003se-flat.vmdk"
затем - делаем диску migrate, или "storage vmotion" или VM clone.

3. Официально vmware этот трюк не поддерживает.


esxcli network neighbor list

а еще можно - vimsh - по свойствам vSwitch



В ESX - загрузиться single user mode

В ESXi содержимое /etc/passwd при каждой загрузке замещается с конфиг-архива.
Поэтому править нужно в нем.

setup.tgz лежит на VFAT-партиции No 2(? 3?4?) содержит local.tar -
вскрыть их, исправить файл, затем свернуть обратно и положить на место.




Команда "Delete Datastore" удаляет из partition table партицию типа "fb", но
сама мета-информация VMFS - остается целой.

Для оживления удаленного VMFS надо просто воссоздать партицию ручным fdisk с
тем же размером, что был у оригинала.

Тип партиции: "fb"

Командой "e" (Expert mode) - "x 128"(отступ) сместить начало партиции на 128
блок (т.е. 64Kb от начала)

Затем "Rescan strorages" - и VMFS будет обнаружен.



Вставляем в .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"




Встать в 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 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 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




Если в DRS-кластере активировать EVC, DRS начнет обслуживать и FT-машины



Десктопы Win7 без лицензии (evaluation) QuickPrep'овскую кастомизацию
до конца не отрабатывают, создание  пула linked-clonов дает ошибку.

Лечение: regedit'ом отредактировать реестровую переменную (примерно)

Local Machine/System/Current Control Set/Services/
      VmwareViewComposer-ga/SkipLicenseActivation = 1




 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



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
####################################################


Origin: http://www.vm-help.com/esx40i/SATA_RDMs.php

При создании RDM через клиента ESXi локальные SATA-ные диски выбрать не дает.
Поэтому RDM-конфиг для него придется делать руками, командой vmkfstools

# находим VML-идентификатор требуемого диска
ls -l /dev/disks/

... vml.01000000002020202020202020202020203951473358423630535433353030 ->
t10.ATA_____ST3500630AS_________________________________________9QG3CC60

# Создаем папку для RDM-дисков и переходим в нее
mkdir /vmfs/volumes/datastore1/rdm
cd    /vmfs/volumes/datastore1/rdm

# создание виртуального RDM (-r с поддержкой снапшотов)
vmkfstools -r /vmfs/devices/disks/vml...30535433353030 rdm1.vmdk -a lsilogic

# создание физического RDM (-z без снапшотов)
vmkfstools -z /vmfs/devices/disks/vml.01....5433353030 rdm1.vmdk -a lsilogic

В виртуальную машину такой RDM цепляем как "Use existing disk"



# Список nfs-монтирований на хосте:
# esxcli storage nfs list

# Список установленных vib-пакетов:
# esxcli software vib list

# Информация о памяти на хосте ESXi, включая объем RAM:
# esxcli hardware memory get

# Информация о количестве процессоров на хосте ESXi:
# esxcli hardware cpu list

# Список iSCSI-адаптеров и их имена:
# esxli iscsi adapter list

# Список сетевых адаптеров:
# esxcli network nic list

# Информация об IP-интерфейсах хоста:
# esxcli network ip interface list

# Информация о настройках DNS:
# esxcli network ip dns search list
# esxcli network ip dns server list

# Состояние активных соединений (аналог netstat):
# esxcli network ip connection list

# Вывод ARP-таблицы:
# esxcli network neighbors list

# Состояние фаервола ESXi и активные разрешения для портов и сервисов:
# esxcli network firewall get
# esxcli network firewall ruleset list

# Информация о томах VMFS, подключенных к хосту:
# esxcli storage vmfs extent list

# Мапинг VMFS-томов к устройствам:
# esxcli storage filesystem list

# Текущая версия ESXi:
# esxcli system version list

# Вывод информации о путях и устройствах FC:
# esxcli storage core path list
# esxcli storage core device list

# Список плагинов NMP, загруженных в систему:
# esxcli storage core plugin list

# Рескан HBA-адаптеров:
# esxcli storage core adapter rescan

# Получить список ВМ с их World ID и убить их по этому ID
# esxcli vm process list # получаем ID
# esxcli vm process kill --type=[soft,hard,force] --world-id=WorldID

# Узнать и изменить приветственное сообщение ESXi:
# esxcli system welcomemsg get
# esxcli system welcomemsg set

# Поискать что-нибудь в Advanced Settings хоста:
# esxcli system settings advanced list

# Текущее аппаратное время хоста:
# esxcli hardware clock get

# Порядок загрузки с устройств:
# esxcli hardware bootdevice list

# Список PCI-устройств:
# esxcli hardware pci list

# Рескан iSCSI-адаптеров (выполняем две команды последовательно):
# esxcli iscsi adapter discovery rediscover -A {adapter_name}
# esxcli storage core adapter rescan [-A {adapter_name} | -all]

# Список виртуальных коммутаторов и портгрупп:
# esxcli network vswitch standard list





Ethernet Broadcom 5708,5709(1Gb) и 57711(10Gb) имеет iSCSI offload engine на
борту. Дравера к ним появились начиная с 4.1 Update 1.

1)  создать  выделенные  vmk  (для  каждого адаптера) и в свойствах портовой
группы vmk в "NIC Teaming" -- "Failover  Order"  в  Active  оставить  только
broadcom-овские аплинки

2) Привязать VMK к соответствующим iscsi-vmhba:

esxcli swiscsi nic add -n vmk2 -d vmhba32

esxcli swiscsi nic add -n vmk3 -d vmhba33

3)   Настройка   target-discavering   "Broadcom   iSCSI  Adapter"  идентична
настройкам для Software iSCSI



1. Создать несколько vmk-адресов (желательно, привязав их на разные аплинки)
2. биндим vmk1 и vmk2 в Siftware iSCSI vmhba31 (или какой у него номер)

esxcli swiscsi nic add -n vmk2 -d vmhba31

esxcli swiscsi nic add -n vmk3 -d vmhba31

esxcli swiscsi nic list -d vmhba33

Пути ведущие к iSCSI-лунам с vmk1 и vmk2 будут выглядеть соотвественно
vmhba33:C1:T*:L* и vmhba33:C2:T*:L*

Выбирая путь к LUN'у с C1 или C2 - мы определяем IP-адрес и интерфейс,
с которого будет вестись работа с этим путем к LUN'у



Для маскировки LUN'у вместо штатного плугина PSA назначается "тупой"
плугин MASK_PATH

# найти LUN_ID нужного LUN
esxcfg-scsidevs -l
# все пути для этого LUN. Например vmhba2:C0:T2:L13
esxcfg-mpath -L | grep {LUN_ID}

# Добавить правило в конфиг-файл под незанятым номером (в диапазоне 101-200)
esxcli corestorage claimrule add --rule 113 -t location -A vmhba2 -C 0 -T 2 -L 13 -P MASK_PATH

# Загрузить созданное правило в список активных
esxcli corestorage claimrule load

# Убедиться, что имеются два правила с выбранным номером (file и runtime)
esxcli corestorage claimrule list

# Переопределить текущие правила для маршрутов к LUN'у на только что созданные.
esxcli corestorage claiming reclaim -d {LUN_ID}

esxcfg-scsidevs -m

Origin: http://vgeek.noteit.ru/3097.html
Origin: http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1009449

 # Отмена маскрировки LUN'a
esxcli corestorage claimrule list
esxcli corestorage claimrule delete --rule 113
esxcli corestorage claimrule load
esxcfg-rescan
esxcfg-rescan # один раз может не помочь
esxcfg-mpath -l -P vmhba1:C0:T0:L0
esxcli corestorage claiming reclaim -d {NAA.ID}


# Куда слать трапы (напр. с комьюнити public)
vicfg-snmp --server hostname -t host.snmp.receiver/public

# Задать порт SNMP-агента (для get/set)
vicfg-snmp --server hostname -p 161
# Задать комьюнити для агента (например public)
vicfg-snmp --server hostname -c public

# Включаем агента SNMP
vicfg-snmp --server hostname -enable

Настройки сохраняются в /etc/vmware/snmp.xml

# Описания MIB и трапов - тут
http://communities.vmware.com/community/developer/managementapi



http://communities.vmware.com/blogs/vmwareinsmb/2010/07/13/esxi-41-scripted-installation-via-pxe-and-kickstart


Origin: Vallard Benincosa http://benincosa.org/blog/?p=171
Doinfo: http://habrahabr.ru/blogs/sysadm/109204/#habracut
Dopinfo scripts: http://www.vm-help.com/forum/viewtopic.php?f=14&t=4

# монтируем ESXi iso
mount -o loop /VM/VMware-VMvisor-Installer-4.1.0-260247.x86_64.iso /media/ESXi

На флешке: 1 primary partition, size >= 310M, active, type "b" W95 FAT32

# Отформатировать партицию под vfat
mkfs.vfat -n BOOT -F 32 /dev/sdc1

# прописать mbr на саму флешку, скопировать загрузчик syslinux на партицию
syslinux -s /dev/sdc1
dd if=/usr/share/syslinux/mbr.bin of=/dev/sdc

# Скопировать содержимое ESXi-cdorm на флешку
mount /dev/sdc1 /media/USB
cp -a /media/ESXi /media/USB

# Удалить с флешки "родной" iso-загрузчик
rm /media/USB/isolinux.bin
# подсунуть "родное" стартовое меню загрузчику syslinux
mv /media/USB/isolinux.cfg /media/USB/syslinux.cfg

########################################################
# инсталлятор будет искать install на CDROM, поэтому без КС-файла не обойтись
# в файле меню добавить вызов ks-файла для unattended инсталляции: ks=usb
########################################################
default menu.c32
menu title VMware VMvisor Boot Menu
timeout 80

label ESXi Installer
menu label ^ESXi Installer
kernel mboot.c32
append vmkboot.gz ks=usb --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.vgz --- install.vgz
# ks=file:///etc/vmware/weasel/ks.cfg

label ^Boot from local disk
menu label ^Boot from local disk
localboot 0x80
########################################################
# simple kickstart file (ks.cfg) just looks like this:
########################################################
vmaccepteula
rootpw cluster
######## расскомментировать, если полностью в себе уверен:
# автоформат 1-го диска # autopart --firstdisk --overwritevmfs
install usb
# install url example.com/vm - распакованый образ инсталляшки
network --bootproto=static --ip=192.168.70.76 --gateway=192.168.70.1 --hostname=esxi-76 --device=vmnic0 --nameserver=192.168.70.1 --netmask=255.255.255.0
reboot
########################################################



Mac-адрес  виртуалки генерится исходя из VC Unique ID - если центры залиты с
одного темплейта, то дубляж mac-ов практически гарантирован.

Лечение:  в настройках VM - меняем адаптеру automatic на ручной, затем снова
automatic

Лечение правильное (Reference VMware KB 1024025):

Administration > vCenter Server Settings > Runtime Settings
Меняем vCenter Server Unique ID (в диапазоне 1-63) - всем разный




4.1 - последняя версия ESX. Далее будет только ESXi
Поддержка scripted-инсталляции (исползуется стандартный ks-file)

vSphere-клиент с ESX не ставится. Только с www или с vCentre installation
ESXi - может грузиться с SAN. В т.ч. с software iSCSI.
Storage hardware assistance array integration (VAAI) - операции с vmdk по
возможности отдаются RAID-массиву
Продвинутая storage performance статистика
Ресурсные пулы для storage-операций.
Dependend iSCSI (hardware offload) для Broadcom 57**
 http://vmware.com/support/vsphere4/doc/vsp_41_new_feat.html



cpuid.coresPerSocket =  2   # или 4 или 8




В ESX 3.5 и 4 это невозможно. В ESXi5 это и так работает

Ниже описана технология для ESX 2 (и workstation)
http://communities.vmware.com/thread/172548

ethernet0.present = "true"
ethernet0.checkMACAddress = "FALSE"
ethernet0.wakeOnPcktRcv = "false"
ethernet0.networkName = "Virtual Machine Network VLAN1"
ethernet0.addressType = "static"
ethernet0.address = "01:23:43:5a:e0:9f"



vmware-cmd -l  # список VM-ок и их каталогов.

проверяем, заблокирован ли файл:
touch file-flat.vmdk
 . . . device or resource busy

To report the MAC address of the lock holder, run the command:

vmkfstools -D /vmfs/volumes/UUID/VM/lockedfile-flat.vmdk

Lock [type 10c00001 offset 168282112 v 116, hb offset 4145152
gen 1, mode 2, owner 00000000-00000000-0000-000000000000 mtime 69834
num 1 gblnum 0 gblgen 0 gblbrk 0]
RO Owner[0] HB Offset 3166208 56bd4103-63c01780-988c-00505601023e

tail /var/log/vmkernel #  в лог попадает MAC-адрес хоста блокиратора

Apr 5 09:45:26 Hostname vmkernel: gen 532, mode 1, owner 45feb537-9c52009b-e812-00137266e200  mtime
00137266e200 - mac-adress service-console IP.

# Еще можно воспользоваться скриптом-надстройкой над vmkfstool -D :

 vmfsfilelockinfo -p /vmfs/volumes/Shared/min05/min05-flat.vmdk
"min05-flat.vmdk" locked in Exclusive ... mac address ['00:50:56:01:f0:15']
Host owning the lock on file is 172.20.10.62, lockMode : Exclusive

Блокировки на NFS-стораджах выглядят как .lck.####

Какая VM так же использует мой VMDK?
egrep -i DISKNAME.vmdk /vmfs/volumes/*/*/*.vmx

  lsof -n | grep win01-flat.vmdk
310578      vmx                   FILE                       82   /vmfs/volumes/56e80110-ea5fb07e-8c6a-00505601023e/win01/win01-flat.vmdk
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=10051



При HA failover делается 5 попыток рестарта виртуальных машин:
R,2min,4min,8min,8min,8min # суммарно - 30 минут

8min таймаут задается в

/opt/vmware/aam/ha/vmwaremanager.pl line 37:

my $VM_RESTART_DELAY_MAX = 480; # 8min

затем

service mgmt-vmware restart
service vmware-vpxa restart



Host Failures Tolerated  (1..4)
Размер слота = (Mem x CPU reservation максимальной VM
Считаем сколько слотов помещается в кластере, за вычетом заданного HostTolerate
Получаем максимальное число VM-ок, которое разрешается запустить в кластере



   Дефолтный размер HA-слота для машин с нулевой резервацией
das.vmCpuMinMHz   = 256 MHz
das.vmMemoryMinMB = 256 Mb

   Ограничиваем максимальный размер HA-слота для машин
с очень большой резервацией:
das.slotCpuInMHz
das.slotMemInMB


das.usedefaultisolationaddress = false  (по умолчанию - default gw SC)
das.isolationaddressX        (X = 1..10) дополнительные Isolation-адреса

das.failuredetectiontime = 15000  (рекомендуется увеличить до 20000 ms)




esxcli corestorage claimrule add -r claimrule_ID -t type requiredoption -P MASK_PATH




Хост хранит настройки от DS в локальном кеше, синхронизирует их каждые 5 мин

/etc/vmware/dvsdata.db

net-dvs -f /etc/vmware/dvsdata.db   # дешифровка dvsdata кэша

таймаут на дисконфигурацию - 24 часа
C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\vpxd.cfg
<dvs><portReserveTimeout>mm</portReserveTimeout></dvs>

Оторванный DS можно удалить только когда от него отцеплены все VM



vm-support

Внешний log-host на ESX  в /etc/syslog.conf
*.* @IP.address.of.log.host

esxcfg-firewall -o 514,out,udp,syslog_traffic

Внешний log-host на ESXi
vicfg-syslog -s IP.address.of.log.host

Конфигур логинга и его ротации:
/etc/vmware/viconfig/vilogdefaults.xml


Прием логов снаружи на лог-хосте:

/etc/sysconfig/syslog
SYSLOGD_OPTIONS="- -m 0"

service syslog restart
iptables -I INPUT -i eth0 -p udp --dport 514 -j ACCEPT
и добавить его же в /etc/rc.local, или в /etc/sysconfig/iptables

Активация центрального логгинга  на vMA

vilogger --server  ESX_or_ESXi enable
vilogger enable
vilogger list




 vsish --help # работа с конфигурационными данными ESX

cd       - change working directory
ls       - list nodes
pwd      - print working directory
get      - perform GET operation
cat      - synonym for GET
set      - perform SET operation
typeget  - get type information
typels   - list type-level nodes
loglevel         - set debugging log level
exit,quit,q  - quit shell




vicfg-*
esxcli
vmkfstools
vifs
svmotion
resxtop
vmware-cmd
vihostupdate

"vSphere Command-Line Interface Installation and Reference Guide"
http://www.vmware.com/support/pubs

vicfg-nics --server ESXa --username root   --password vmware  -l
vicfg-nics --server vC1  --username vcadmin --password vmware -vihost ESXa -l



root - отключен, используем vi-admin

все команды начинаются с префикса vicfg-
esxcfg- - сохранен для backwardcompatibility

1. Активируем vi-fastpass (неинтерактивная авторизация)

 sudo vifp addserver vCenter.Server.system

 vifp listservers

 vifpinit vCenter.Server.system # при новом логине команду повторить

 vicfg-nics -l --vihost ESX.host

2. Альтернатива - сохранять временный session file

/usr/share/doc/vmware-vcli/samples/session/save_session.pl

save_session.pl --savesessionfile /tmp/vimsession --server server.name.or.address --username user_name --password password

vicfg-nics --sessionfile /tmp/vimsession -l



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



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

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

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

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

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

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

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

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



KB: 2042141

# synchronize the configuration changed with persistent storage
vim-cmd    hostsvc/firmware/sync_config

# backup the configuration data for an ESXi host
# command outputс URL of backup  /scratch/downloads/configBundle-HostFQDN.tgz
vim-cmd hostsvc/firmware/backup_config



# Бэкап
vicfg-cfgbackup.pl --server esxN --username root --password pass -s c:\esxN.cfg

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

# reset to factory setting
vicfg-cfgbackup.pl --server esxN --username root --password pass -r



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

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

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



В vSphere 5.0 появился поддерживаемый тип гостевой: vSphere 4 и vSphere 5
При создании новой VM его невозможно выбрать, поэтому создаем VM под
Linux RedHat 5/64, а затем меняем на vSphere 5.

HW CPU и MMU для VM по умолчанию срезается. Чтобы хост пробрасывал в
свои VM аппаратную поддержку виртуализации процессора, добавить в файл

/etc/vmware/config

vhv.allow = "TRUE"

Прочие настройки почти без изменений по сравнению с V4:

VM Virtual Hardware Version 8
GuestOS: vSphere 5
VCPU: 2, RAM: 2Gb++
NIC: 2* e1000
SCSI: LSI Logic Parallel

PortGroup security: Promiscous mode=Accept

Чтобы во вложенном ESXi 5.0 работал FT:

    replay.supported = "true"
    replay.allowFT = "true"
    replay.allowBTOnly = "true"

    esxcli system settings advanced set -o /Migrate/VMotionStreamDisable -i 0
    esxcfg-advcfg -s 0 /Migrate/VMotionStreamDisable



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

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

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

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

Сделать группу vmwareusers - ее члены смогут делать promiscous своим гостям

chgrp vmwareusers /dev/vmnet0
chmod g+rw /dev/vmnet0

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

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



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

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

Настройки VM:

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

PortGroup security: Promiscous mode=Accept

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

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

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

monitor_control.restrict_backdoor = TRUE

А чтобы во вложенном ESX работал FT - добавляем (неподдерживаемый) параметр

replay.logReadData = checksum




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

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

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

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

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

SNIP-config:

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

??
IPAPPEND 1



sudo chsh -s /bin/bash root



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



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



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

Добавить в .vmx

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

Кажется, этот фокус возможен только на RDM, ибо на VMDK висит
исключительная блокировка Primary-ESX

replay.allowBTOnly = TRUE setting



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

    Intel Xeon based on 45nm Core 2 Microarchitecture Category:

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

    Intel Xeon based on Core i7 Microarchitecture Category:

          o 5500 Series

    AMD 3rd Generation Opteron Category:

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

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

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

    FT FAQ



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

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

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

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



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

esxcfg-vswitch -V the-port-id -Q vmnicN DVSvSwitchname

esxcfg-vswitch -L vmnic# vSwitch#


Это настройка для древних ESX. В ESXi 6.7 временная зона не конфигурится!

ls -al /usr/share/zoneinfo/*   # файлы описания зон
ls -l  /etc/localtime          # действующая зона
/etc/sysconfig/clock           # установка в пользовательском environment







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

 Вообще-то unsupported доступен по умолчанию, но на всякий случай:

 Клиентом: ESXi-host -- Configuration -- Software -- Advanced Setting
 VMkernel.Boot.techSupportMode = Enable

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

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

  /sbin/services.sh restart

  kill -HUP `cat /var/run/inetd.pid`

 Reboot'ить при этом ESXi не надо - ибо содержимое /etc/inetd.conf
после перезагрузки ресетится к дефолтному состоянию.

 Но и описанная технология, гидная для ESXi 3.5 - в 4-ке как-то
не заработала



Upgrading VMware deployments

Distributed virtual switches to simplify datacenter-wide network management

VMDirectPath - assign a PCI adapter directly to a virtual machine

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

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

VMware's new Pluggable Storage Architecture

VMware Fault Tolerance - application availability

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

Use the new Host Profiles feature to keep hosts uniformly configured

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

Save disk space with thin provisioning

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



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

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


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

vmauthd.server.alwaysProxy = "TRUE"

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



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

keyboard.typematicMinDelay = 20000000



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

vmware-cmd -l

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

vmware-cmd {cfg} getstate

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

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

vmware-cmd {cfg} stop

4. Verify the state again with:

vmware-cmd {cfg} getstate



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

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

svmotion --interactive



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

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

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




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




There is a different valve for limiting by domain name.

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

Сторадж создается только на SCSI-дисках (к которым относятся SCSI, SAS, FC, iSCSI) В отдельной партиции, ID партиции - "fb", начало партиции желательно выравнять на 128 блок (64Kb) esxcfg-vmhbadevs # выводит список лунов и соответствующих им /dev/sd* в SC vmhba1:0:13 /dev/sda vmhba1:0:14 /dev/sdb vmhba1:0:21 /dev/sdc fdisk /dev/sda # создаем primary партицию с ID "fb" n p 1 t 1 fb w fdisk /dev/sda # выставляем начало 1 партиции на 128-й блок (64-й килобайт) x b 1 128 w . . . fdisk -l /dev/sda Device Boot Start End Blocks Id System /dev/sda1 1 11 88326 fb Vmware VMFS esxcfg-info -s При создании стораджа указываем партицию, которую хотим отформатировать под VMFS3 vmkfstools -C vmfs3 -S StorageName vmhba1:0:13:1 Добавление экстенда к стораджу: vmkfstools -Z vmhba1:0:14:1 vmhba1:0:13:1 # -Z добавка голова vmkfstools -K name.vmdk #? не проверено - сплющить нулевые блоки в тонком диске

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

ls -l /vmfs/volumes vdf vmkfstools -P StorageName vmkfstools -P -h StorageName # -h - выводить разнеры в Mb/Gb # переименование Стораджа (старый симлинк удалять и переименовывать НЕ НАДО) ln -sf /vmfs/volumes/storage-uuid /vmfs/volumes/NewStorageName

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

VM.vmx Конфиг-файл VM VM.vmdk Диск VM (конфиг файл диска) VM-flat.vmdk Цельный диск VM (preallocated - собственно данные) VM-f0001.vmdk Splitted диск VM (2Гб кусок splited preallocated диска) VM-s0001.vmdk Splitted growable диск VM (2Гб кусок расрастущего диска) VM.vmsd Словарь снапшота и заснапшоченых дисков VM.vmem VM memory mapped то file VM.nvram NVRAM Award-BIOS'а VM VM.vmx.lock Lock, создается при старте VM VM-delta.vmdk Снапшотная дельта VM-Snapshot8.vmsn Конфигурация снапшота No 8

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

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

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

ESX монтирует все корректные (с его точки зрения) стораджи с VMFS3 В заголовке VMFS3 указан UUID и номер LUN'а, на котором он создан. Если в заголовке VMFS3 указан не тот LUN, под которым мы его видим - значит это не оригинал, а RAID-овый снапшот, полученный в результате CA или BC Категорически недопустимо монтировать два стораджа, имеющих одинаковый UUID Автоматический монтаж управляется двумя Advanced Config-переменными LVM.DisallowSnapshotLUN, LVM.EnableResignature LVM.EnableResignature = 1 (default) если видим снапшотный LUN - прописываем ему в заголовок новый UUID и LUN, после этого он безболезненно монтируется LVM.DisallowSnapshotLUN = 1 либо просто запрещаем монтировать такой LUN LVM.DisallowSnapshotLUN = 0 (default 0) снапшотный LUN - таки монтируется LVM.EnableResignature = 0 если видим снапшотный LUN - заголовок не меняем Самый цирк случается, если хитровымученный RAID-массив один и тот же LUN двум разным хостам показывает под разным lun-номером. Тогда один из них всегда будет воспринимать этот LUN как заснапшоченый - и стремиться произвести с ним ресигнатуру - скорректировать заголовок, следом - второй хост захочет того-же - и так в вечном цикле. Именно для таких случаев выставляют LVM.EnableResignature = 0, LVM.DisallowSnapshotLUN = 0 Управление переменными: cat /proc/vmware/config/LVM/EnableResignature # посмотреть esxcfg-advcfg -g /LVM/EnableResignature # посмотреть esxcfg-advcfg -s 1 /LVM/EnableResignature # выставить в 1 esxcfg-rescan vmhba1 Либо (стремно) vi /etc/vmware/esx.conf /adv/LVM/EnableResignature = "1" /adv/Disk/MaskLUNs = "vmhba2:0:34-38;vmhba3:0:1,5,7-9" /adv/Disk/MaxLUN = "256" /adv/Disk/DiskSupportSparseLUN /adv/Disk/ShedNumReqOutstanding shutdown -r 0

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

esxcfg-module -q # посмотреть статус и список модулей VMKERNEL cat /proc/scsi/qla2300/1 # посмотреть настройки 1-го контроллера типа qla2300 /proc/scsi/[draver]/[instance] esxcfg-boot -q vmkmod # boot-options vmkernel'a # сконфигурить длину очереди для QLogig FC esxcfg-module -s ql2maxqdepth=64 qla2300_707_vmw vi /etc/vmware/esx.conf /vmkernel/module/qla2300_707_vmw.o/options = ql2maxqdepth=64 vmkload_mod -s qla2300_707_vmw # детальные текущие настройки дравера Сразу несколько настроек для разных instansow драверa в одной команде: esxcfg-module -s "lpfc0_lun_queue_depth=16 lpfc0_lun_queue_depth=16" lpfcdd_7xx после любых настроек модулей выполнить команду esxcfg-boot -b esxcfg-boot -b # пересобирает init-ram-disk и его настройки Для гостевых Windows - удлинить таймаут по опознанию сбойнувшего диска Старт -- Рун -- регедит HKEY_LOCAL_MACHINE > System > CurrentControlSet > Services > Disk TimeOutValue = 60

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

esxcfg-nics -l # статус физических ethernet'ов esxcfg-nics -s 1000 -d full vmnic2 32 nics per host 32 nics per vSwitch 128 vSwitchs 512 PortGroups 1016 Ports per vSwitch 4096 Ports in all PortGroups (точнее 4096 - 128 - numvswith*8) esxcfg-vswitch -a vSwith2:32 # создать 24-портовый (32-8) v-свитч esxcfg-vswitch -D Production vSwith2 # оторвать портгруппу esxcfg-vswitch -A Production vSwith2 # создать в vSwith2 портгруппу Production esxcfg-vswitch -A Production -v 105 vSwith2 # создать в vSwith2 портгруппу Production с VLAN 105 esxcfg-vswitch -v 105 -p "Service Console" vSwitch0 # Назначить порт-группе Service Console VLAN 105 esxcfg-vswitch -L vmnic2 vSwith2 # подключить физический ethernet в vSwith2 esxcfg-vswitch -U vmnic2 vSwith2 # оторвать физический ethernet esxcfg-vswitch -l # просмотреть конфиг всех vSwitch esxcfg-vswitch -m 9000 vSwith1 # enable Jumbo frames в vSwitch1 esxcfg-vswitch -B listen vSwith1 # включить CiscoDiscoveryProtocol esxcfg-vswitch -B down vSwith1 # выключить CDP esxcfg-vswitch -b vSwith1 # проверить статус CDP esxcfg-vswif -l # Посмотреть IP-настройки Service Console # Назначить IP-адрес для Service Console esxcfg-vswif -a -i 192.168.31.36 -n 255.255.255.0 -m 1500 -p "Service Console" vswif0 esxcfg-vmknic -l # посмотреть статус VMkernel'ных IP esxcfg-vmknic -a -i IP -n NETMASK -m MTU -p PortGroupName # назначить IP для vmkernel # TSO включается по умолчанию, чтобы не включался - добавить -t esxcfg-route [gateway-IP] # default gateway для VMkernel esxcfg-route -l # посмотреть таблицу маршрутизации vmkernel cat /proc/vmware/net/tcpip/ifconfig vmping # ping с vmkernel'ного адреса

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

VC SQL database table : VPX_ACCESS Then add another row : ID: 1 Principal : Administrators Role_ID : -1 ENTITY_ID : 1 FLAG : 3 Afterwards you need to restart the Virtual Center Services.

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

1. Update the following files with the correct server name /etc/hosts /etc/sysconfig/network /etc/vmware/esx.conf 2. Update the hostname as follows # hostname mateo0x.hp.local 3. Restart the network # service network restart 4. Restart the hostd daemon so that the VI client will get the updated hostname # service mgmt-vmware restart

    Scripted installation KS file for ESXi4.1

Origin: http://www.kendrickcoleman.com/index.php?/Tech-Blog/esxi-41-kickstart-install-wip.html ########### cut here ################### rootpw changeme install url http://192.168.187.66/ESXi autopart --firstdisk --overwritevmfs reboot #Network install type network --bootproto=static --addvmportgroup=false --device=vmnic0 --ip=192.168.50.13 --netmask=255.255.255.0 --gateway=192.168.50.1 --nameserver=192.168.3.2 --hostname=ESXi3.FQDN accepteula %firstboot --unsupported --interpreter=busybox #Assign VLAN to Management PortGroup esxcfg-vswitch -v 50 -p 'Management Network' vSwitch0 #Add vMotion Portgroup to vSwitch0 esxcfg-vswitch -A vMotion vSwitch0 #Add pNIC vmnic6 to vSwitch0 esxcfg-vswitch -L vmnic6 vSwitch0 #Assign ip address to vMotion vmk1 esxcfg-vmknic -a -i 192.168.51.12 -n 255.255.255.0 -p vMotion #Assign VLAN to vMotion PortGroup esxcfg-vswitch -v 51 -p vMotion vSwitch0 sleep 10 #set vMotion to vmk vim-cmd hostsvc/vmotion/vnic_set vmk1 #Set NIC order policy for port groups vim-cmd hostsvc/net/portgroup_set --nicorderpolicy-active=vmnic0 --nicorderpolicy-standby=vmnic6 vSwitch0 'Management Network' vim-cmd hostsvc/net/portgroup_set --nicorderpolicy-active=vmnic6 --nicorderpolicy-standby=vmnic0 vSwitch0 vMotion #Add new vSwitch for IP Storage esxcfg-vswitch -a vSwitch_IP-SAN #Set MTU to 9000 for jumbo frames on vSwitch esxcfg-vswitch -m 9000 vSwitch_IP-SAN #Add Portgroup to vSwitch_IP-SAN esxcfg-vswitch -A NetApp_FAS2020a vSwitch_IP-SAN #Assign IP address to vmknic esxcfg-vmknic -a -i 192.168.52.12 -n 255.255.255.0 -m 9000 NetApp_FAS2020a #Add NICs to new vSwitch esxcfg-vswitch -L vmnic2 vSwitch_IP-SAN #Add NICs to new vSwitch esxcfg-vswitch -L vmnic7 vSwitch_IP-SAN vim-cmd hostsvc/net/refresh sleep 10 #Change LoadBalance for Etherchannel - WORKS WHEN TYPED IN CLI BUT NOT WORKING IN SCRIPT FOR SOME REASON vim-cmd hostsvc/net/vswitch_setpolicy --nicteaming-policy=loadbalance_ip vSwitch_IP-SAN #Add NFS datastores esxcfg-nas -a -o 192.168.52.101 -s /FAS2020a_Node1_NFS_A FAS2020a_Node1_NFS_A esxcfg-nas -a -o 192.168.52.101 -s /FAS2020a_Node1_NFS_B FAS2020a_Node1_NFS_B esxcfg-nas -a -o 192.168.52.102 -s /FAS2020a_Node2_NFS_A FAS2020a_Node2_NFS_A #Adding the FT Network esxcfg-vswitch -a vSwitch_FT esxcfg-vswitch -A Fault_Tolerance vSwitch_FT esxcfg-vswitch -L vmnic4 vSwitch_FT esxcfg-vswitch -L vmnic9 vSwitch_FT esxcfg-vmknic -a -i 192.168.55.12 -n 255.255.255.0 -p Fault_Tolerance vim-cmd hostsvc/net/portgroup_set --nicorderpolicy-active=vmnic4 --nicorderpolicy-standby=vmnic9 vSwitch_FT Fault_Tolerance vim-cmd hostsvc/advopt/update FT.Vmknic string vmk3 vim-cmd hostsvc/net/refresh #Set DNS vim-cmd hostsvc/net/dns_set --ip-addresses=192.168.3.23,192.168.3.2 # Set NFS advanced Configuration Settings esxcfg-advcfg -s 30 /Net/TcpipHeapSize esxcfg-advcfg -s 120 /Net/TcpipHeapMax esxcfg-advcfg -s 10 /NFS/HeartbeatMaxFailures esxcfg-advcfg -s 12 /NFS/HeartbeatFrequency esxcfg-advcfg -s 5 /NFS/HeartbeatTimeout esxcfg-advcfg -s 64 /NFS/MaxVolumes # NTP time config - NOT WORKING!! echo "Configuring NTP" echo restrict default kod nomodify notrap noquerynopeer > /etc/ntp.conf echo restrict 127.0.0.1 >> /etc/ntp.conf echo server 0.vmware.pool.ntp.org >> /etc/ntp.conf echo server 2.vmware.pool.net.org >> /etc/ntp.conf echo driftfile /var/lib/ntp/drift >> /etc/ntp.conf /sbin/chkconfig --level 345 ntpd on /etc/init.d/ntpd stop /etc/init.d/ntpd start #enable SSH TechSupportMode - shouldn't use this, was just a test vim-cmd hostsvc/enable_remote_tsm vim-cmd hostsvc/start_remote_tsm vim-cmd hostsvc/net/refresh #grep ^admins: /etc/group > /dev/null || groupadd admins #useradd -g admins -c LocalESXAccount LocalESX #echo mypassword | passwd --stdin LocalESX ########### cut here ###################

Популярность: 44, Last-modified: Thu, 07 Mar 2024 07:28:33 GmT