====== ESXi ======
====== ESXi manuell updaten ======
Nicht immer kann man ESXi über VUM/vLCM updaten. Eine schnbelle und einfache Variante ist über ein Depot File.
Diese Offline Bundles haben teilweise mehrere Installationsmöglichkeiten.
Gerade bei OEM Depots sind diese Namen sehr "kreativ" :-)
Im Folgenden Codeblock wird gezeigt, wie dieser Name ermittelt werden kann und wie dann das eigentliche update/upgrade gestartet wird.
Das Ausrollen der neuen VIBs geht recht fix und am Ende muss der Host nur manuell neu gestartet werden.
[root@esxxxx:~] esxcli software sources profile list -d /vmfs/volumes/vsanDatastore/ISO/VMware-ESXi-7.0.3.update03-19193900-Fujitsu-v530-1-offline_bundle.zip
Name Vendor Acceptance Level Creation Time Modification Time
---------------------------------------------- ------- ---------------- ------------------- -------------------
FJT-Addon-for-FujitsuCustomImage_7.0.3-530.1.0 Fujitsu PartnerSupported 2022-02-08T02:10:04 2022-02-08T02:10:04
[root@esxxxx:~] esxcli software profile update -d /vmfs/volumes/vsanDatastore_Schule23/ISO/VMware-ESXi-7.0.3.update03-19193900-Fujitsu-v530-1
-offline_bundle.zip -p FJT-Addon-for-FujitsuCustomImage_7.0.3-530.1.0
====== High pNic error rate detected. Check the host's vSAN performance view for details ======
Es kann, muss aber nicht, am RX Buffer liegen....
# Einstellungen testen und Max. Werte abfragen
esxcli network nic ring preset get -n vmnic0
esxcli network nic ring current get -n vmnic0
# Buffer auf 4080 stellen
esxcli network nic ring current set -n vmnic0 -r 4080
Generelle Tests mit iperf:
Sender:
[root@senderhost:/usr/lib/vmware/vsan/bin] ./iperf3.copy -c ZIEL_IP -t 10 -V
iperf 3.1.6
VMkernel xxxxxxxxxxxxxxxxxx 7.0.3 #1 SMP Release build-22348816 Aug 30 2023 04:36:58 x86_64
Control connection MSS 8948
Time: Thu, 11 Jan 2024 09:03:11 GMT
Connecting to host ZIEL_IP, port 5201
Cookie: xxxxxxxxxxxxxxxxxx.17049637
TCP MSS: 8948 (default)
[ 4] local 10.30.98.22 port 56526 connected to 10.30.98.23 port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
iperf3: getsockopt - Function not implemented
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 1.11 GBytes 9.52 Gbits/sec 8638800 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 1.00-2.00 sec 1.13 GBytes 9.73 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 2.00-3.00 sec 1.13 GBytes 9.71 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 3.00-4.00 sec 1.14 GBytes 9.76 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 4.00-5.00 sec 1.14 GBytes 9.77 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 5.00-6.00 sec 1.12 GBytes 9.64 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 6.00-7.00 sec 1.12 GBytes 9.61 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 7.00-8.00 sec 1.13 GBytes 9.73 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 8.00-9.00 sec 1.14 GBytes 9.78 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 9.00-10.00 sec 1.13 GBytes 9.74 Gbits/sec 4286328496 0.00 Bytes
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 11.3 GBytes 9.70 Gbits/sec 0 sender
[ 4] 0.00-10.00 sec 11.3 GBytes 9.70 Gbits/sec receiver
CPU Utilization: local/sender 64.6% (64.7%u/0.0%s), remote/receiver 5.1% (5.1%u/0.0%s)
snd_tcp_congestion newreno
rcv_tcp_congestion newreno
iperf Done.
Empfänger:
[root@empfaenger:/usr/lib/vmware/vsan/bin] ./iperf3.copy -s -B LISTEN_IP
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from SENDER_IP, port 11289
[ 5] local LISTEN_IP port 5201 connected to SENDER_IP port 56526
iperf3: getsockopt - Function not implemented
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 1017 MBytes 8.53 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 1.00-2.00 sec 1.13 GBytes 9.73 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 2.00-3.00 sec 1.13 GBytes 9.72 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 3.00-4.00 sec 1.14 GBytes 9.76 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 4.00-5.00 sec 1.14 GBytes 9.77 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 5.00-6.00 sec 1.13 GBytes 9.69 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 6.00-7.00 sec 1.12 GBytes 9.58 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 7.00-8.00 sec 1.13 GBytes 9.71 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 8.00-9.00 sec 1.14 GBytes 9.77 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 9.00-10.00 sec 1.14 GBytes 9.76 Gbits/sec
iperf3: getsockopt - Function not implemented
[ 5] 10.00-10.10 sec 117 MBytes 9.63 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.10 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.10 sec 11.3 GBytes 9.60 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
====== Acceptance Level & VIB mit PowerShell ======
#List Acceptance Level
Foreach ($VMHost in Get-VMHost ) { $ESXCli = Get-EsxCli -VMHost $VMHost; $VMHost | Select Name, @{N="AcceptanceLevel";E={$ESXCli.software.acceptance.get()}}}
# list CommunitySupported VIBs
Foreach ($VMHost in Get-VMHost ) { $ESXCli = Get-EsxCli -VMHost $VMHost; $ESXCli.software.vib.list() | Where { ($_.AcceptanceLevel -ne "VMwareCertified") -and ($_.AcceptanceLevel -ne "VMwareAccepted") -and ($_.AcceptanceLevel -ne "PartnerSupported") }}
#remove CommunitySupported VIB
Foreach ($VMHost in Get-VMHost ) { $ESXCli = Get-EsxCli -VMHost $VMHost; $ESXCli.software.vib.remove.invoke($null, $true, $false, $true,"vmware-esx-sas3flash") }
# set PartnerSupported
Foreach ($VMHost in Get-VMHost ) { $ESXCli = Get-EsxCli -VMHost $VMHost; $ESXCli.software.acceptance.Set("PartnerSupported") }
====== bootbank Problem und wenn das Kind in den Brunnen gefallen ist.... ======
Problem: https://kb.vmware.com/s/article/83376
Wenn ein Host disconnected ist, und man nicht einfach mit den VMs ausschalten will, folgendes Vorgehen.
* auf dem Host mit ''services.sh restart'' die Services neustarten -> der Host disconnects vom vCenter
* die entsprechenden VMs im OS herunterfahren
* auf einem anderen ESXi Host per ssh oder console draufgehen
* dort die entsprechenden VMs, die als "Disconnected" gekennzeichnet sind, neu registrieren
* dazu nutzt man ''vim-cmd solo/registervm /vmfs/volumes/.../YourVM/YourVM.vmx''
* kurz darauf verschwindet das "disconnected" bei der VM und man kann diese neu starten
====== esxtop und Statistiken ======
https://www.libe.net/esxtop-io-statistik
====== VMFS on SD ======
http://www.virten.net/2016/11/usb-devices-as-vmfs-datastore-in-vsphere-esxi-6-5/#more-18738
http://www.virten.net/2015/10/usb-devices-as-vmfs-datastore-in-vsphere-esxi-6-0/
====== ESXi Kickstart Installation ======
Zum Kickstart:
* Kickstart Script erstellen
* Auf ein NFS Laufwerk legen
* Installations ISO über iDRAC/iLO/iRMC/Serviceprozessor mounten
* Beim Boot mit Shift-O die Bootoptionen ändern
z.B. in netdevice=vmnic0 bootproto=dhcp ks=nfs:\\192.168.1.10\nfs\esxi\kickstart-esxi.cfg
* Man kann mit dem ISOBuilder die ISO auch so anpassen, dass dies Default ist (habe ich aber noch nicht gemacht 😊
Aber mal ein Beispiel:
#Accept the VMware End User License Agreement
vmaccepteula
# clear partitions and install
clearpart --firstdisk=local –overwritevmfs
install --firstdisk –overwritevmfs
#set the root password
rootpw VMware1!
#Host Network Settings
network --bootproto=static --addvmportgroup=1 --ip=192.168.1.20 --netmask=255.255.255.0 --gateway=192.168.1.1 --nameserver=192.168.1.1 --hostname=esx-prz-01
reboot
#Firstboot section 1
%firstboot --interpreter=busybox
sleep 30
#Enter Maintenance mode
vim-cmd hostsvc/maintenance_mode_enter
#suppress Shell Warning
esxcli system settings advanced set -o /UserVars/SuppressShellWarning -i 1
esxcli system settings advanced set -o /UserVars/ESXiShellTimeOut -i 1
#Add DNS Nameservers to /etc/resolv.conf
cat > /etc/resolv.conf << \DNS
nameserver 192.168.1.1
nameserver 8.8.8.8
DNS
#VSwitch Configurations
esxcli network vswitch standard add --vswitch-name=vSwitch0 --ports=24
esxcli network vswitch standard uplink add --uplink-name=vmnic0 --vswitch-name=vSwitch0
esxcli network vswitch standard uplink add --uplink-name=vmnic1 --vswitch-name=vSwitch0
esxcli network vswitch standard uplink add --uplink-name=vmnic2 --vswitch-name=vSwitch0
esxcli network vswitch standard uplink add --uplink-name=vmnic3 --vswitch-name=vSwitch0
esxcli network vswitch standard policy failover set --active-uplinks=vmnic0,vmnic1,vmnic2,vmnic3 --vswitch-name=vSwitch0
esxcli network vswitch standard portgroup policy failover set --portgroup-name="MGMT" --active-uplinks=vmnic0,vmnic1,vmnic2,vmnic3
esxcli network vswitch standard portgroup add --portgroup-name=“VM“ --vswitch-name=vSwitch0
esxcli network vswitch standard portgroup remove --portgroup-name="VM Network" --vswitch-name=vSwitch0
#Firstboot Section 2
%firstboot --interpreter=busybox
#Disable IPv6
esxcli network ip set --ipv6-enabled=false
#Reboot
sleep 30
reboot
Hier noch ein Link, wie man es mit PXE boot macht…
https://rudimartinsen.com/2018/06/09/customizing-esxi-installation-with-kickstart-files-and-pxe-boot/
nützlich auch:
https://www.virtuallyghetto.com/2018/06/using-esxi-kickstart-firstboot-with-secure-boot.html
es ist auch möglich die ks.cfg mit auf ein USB-Drive/in das Image zu integrieren, damit entfällt die NFS-Ablage.
Man kann so entweder per USB oder per virtual ISO voll elektrisch installieren:
https://www.virtuallyghetto.com/2019/07/automated-esxi-installation-to-usb-using-kickstart.html
===== ESXi Passwort reset =====
http://blog.clearpathsg.com/blog/bid/301156/Lost-Your-ESXi-Root-Password-Reset-It-with-Host-Profiles
===== SUN 41xx/42xx mit ESXi 5.5 =====
Die älteren SUN Systeme sind nicht mehr offiziell für vSphere 5.5 und folgende Versionen zertifiziert.
Bei normaler Installation gibt's auch einen Fehler.
Abhilfe sorgt der Boot Parameter ''IgnoreHeadless="TRUE"''. Die muss bei Start des Bootloaders mittels Schift-O angehangen werden.
Sowohl beim Start des Install Images, als auch beim ersten Boot nach der vollständigen Installation.
Persistent macht man dies anschließend auf der Konsole mittels
esxcfg-advcfg --set-kernel "TRUE" ignoreHeadless
====== VxRail ======
* MGMT vLANs setzen
* /etc/init.d/loudmouth restart
* vim-cmd vmsvc/getallvms um Manager zu finden
* vim-cmd vmsvc/power.getstate 1
* esxcli network firewall ruleset list --ruleset-id sshClient
* vim-cmd vmsvc/get.guest 1 | grep -m 1 fe80
* ssh -6 mystic@fe80::....%vmk0
* /usr/lib/vmware-loudmouth/bin/loudmouthc query
*