VMware: The Dell ESXi 7.0 ISO is now available
vSphere 7 is finally out!
You can download the Dell Server ISO image by clicking the screenshot below:
Download: VMware
vSphere 7 is finally out!
You can download the Dell Server ISO image by clicking the screenshot below:
Download: VMware
Last week I had to change VMX files for 500 XenDesktop machines because the users where able to eject removable devices
To mass disable HotPlug capability by editing the .vmx
file via PowerCLI I used the following script:
$key = "devices.hotplug" $value = "false" get-cluster "CL02.XD" | get-VM -Name 000-CXD* | foreach { $vm = Get-View $_.Id $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec $vmConfigSpec.extraconfig += New-Object VMware.Vim.optionvalue $vmConfigSpec.extraconfig[0].Key=$key $vmConfigSpec.extraconfig[0].Value=$value $vm.ReconfigVM($vmConfigSpec) }
Optional (manual) options:
You can disable HotPlug capability using the vSphere Client or by editing the .vmx
file.
Note: You can disable HotPlug capability for PCI devices such as e1000 or vmxnet3 NICs.
To disable HotPlug capability using the vSphere Client:
devices.hotplug
and a value of false
.To disable HotPlug capability using the vSphere Web Client:
devices.hotplug
and a value of false
.To disable HotPlug capability by editing the .vmx
file:
.vmx
) in a text editor. The default location is:/vmfs/volumes/datastore_name/vm_name/vm_name.vmx
devices.hotplug = "false"
Some months ago I installed 15 new vSphere 6.0 hosts with local flash disks. After installation I configured the VMware Syslog Service at the vCenter appliance. Few weeks later the vSphere web-client shows some warnings about disk usage
Problem
Filesystem /dev/mapperlog_vg_log usage 100%, mounted on /storage/logs
Use this command to verify which disk is experiencing disk space issues:
Solution
As you can see the the /storage/logs mount point is located at VMDK5
Edit de vCenter appliance virtual hardware, select disk Hard disk 5 and increase the provisioned size, in my case from 10 to 20 GB
Once the virtual disk has been increased, return to the SSH session and execute this command to automatically expand any logical volumes for which the physical volumes are increased:
vpxd_servicecfg storage lvm autogrow
When the grow operation is successful, you see output similar to:
VC_CFG_RESULT=0
Run this command to confirm that the virtual disk has been successfully grown:
df -h
More information: VMware
Last week I deployed with Update Manager some patches at an existing vSphere 6.0 environment, during the remediate process I received this error message:
The operation is not supported on the selected inventory objects. Check the events
for the objects selected for the operation.
Solution
During the Remediate process you need to disable Admission Control, also when you have enough resources available in the cluster. You can do this for this specific host you selected for remediate or you can you this temporary at cluster level
Last week I upgraded my original Configure vSphere 4 PowerCLI script I created in 2011 . When you run the script with PowerShell ICE or PowerCLI you have two options: 1. Configure a new vSphere 6 host. 2. Add the new configured host to vCenter Server. I’m still not a PowerCLI Pro so.. please comment if you have any tips or suggestions.
Benefits:
— When you use this script, the script is your vSphere configuration documentation
— You don’t need a license for Host Profiles or revert temporary to Evaluation Mode
— Fresh (new) host configuration takes ~10 minutes
— vSphere Host configuration standardization
— Easy add variables during deployment
— Easy GUI menu
Function:
Menu option: 1 – Configure new vSphere host
— Connect to the target ESXi Host
— Enter Maintenance mode
— Set Hostname and Domain name
— Configure DNS settings
— Configure NTP settings
— Configuring Simple Network Management Protocol (SNMP)
— Delete the default VM Network
— Configure vSwitch0 – Management / vMotion
— Configure vSwitch1 – Production Network
— Configure vSwitch2 – iSCSI
— Configure vSwitch3 – iSCSI
— Install Software iSCSI Initiator
— Configure iSCSI target address
— Configure iSCSI initiator name
— Enable iSCSI Initiator
— Rescan on all HBAs and Rescan for VMFS volumes
— Exit Maintenance ModeMenu option: 2 – Configure new vSphere host to vCenter Server
— Connect vCenter server
— Add vSphere Host to vCenter server
— Re-balance ClusterMenu option: 0 – Quit
Script upgraded for hardware setup:
Host
— Type: Dell PowerEdge R630
— Network: 6x 10 GB
— Storage: flash (2×8 GB)
— Memory: 256 GB
— CPU: 2x E5-2660 v3Storage
— Dell Compellent SC4020 (iSCSI)
Network
— DellForce 10
Script:
#====================================================================# # SCRIPT: VMP_Configure_new_vSphere6_Host_with_Menu.ps1 # # FUNCTION: Configure fresh installed host # # CREATED: 05/07/2011 # # MODIFIED: 17/08/2015 # # OWNER: S.Daems / VMpros.nl # # VERSION: v.1.7 # #====================================================================# # CHANGELOG: # # # # v.1.7 # # # # - Script upgraded to vSphere 6.0 # # -- Updated obsolete commands (vSphere 6 proof) # # - Install and configure 10GB iSCSI storage network # # -- Configure iSCSI initiator # # -- Configure iSCSI initator IQN name # # - Updated and configure SMNP # # - Updated DNS settings # # - Updated Custom Definitions field # # - Updated Network Configuration parameters # # # # USAGE: # # # # - Edit script in Windows PowerShell ISE / Notepad ++ # # - Add static values in "Custom Definitions" section # # - Run script with Windows PowerShell ISE or PowerCLI 6.0 # # # - Answer dynamic values during script # # # - Enjoy! # # # # # # NOTE: # # # # - Run this script only on a empty vSphere 6 host # # - Check if the correct pNIC's are configured for NIC Teaming # # - This script is written with VMware vSphere PowerCLI 6.0 # # # # # #====================================================================# # MENU # #====================================================================# do { Write-Host "Please make your choice:" -foregroundcolor yellow Write-Host " 1. Configure new vSphere host" Write-Host " 2. Configure new vSphere host to vCenter Server" Write-Host " 0. Quit" Write-Host " " $response = Read-Host "Select 0-2" Write-Host " " switch ($response) { 1 { #====================================================================# # HOST = CUSTOM DEFINITIONS # #====================================================================# $ESX_host = read-host "Select ESXi host by DNS to connect" $New_hostname = read-host "Select hostname to configure" $New_domainname = "VMpros.lan" $Root_user = "root" $Root_password = "VMpros#2015!" $DNS01 = "10.32.17.5" $DNS02 = "10.32.17.6" $VMK01 = read-host "Select iSCSI VMkernel 01 IP-address to configure" $VMK02 = read-host "Select iSCSI VMkernel 02 IP-address to configure" $VLAN01_label = "VMP-VLAN200" $VLAN02_label = "VMP-VLAN300" $VLAN03_label = "VMP-VLAN400" $VLAN04_label = "VMP-VLAN500" $VLAN05_label = "VMP-VLAN600" $VLAN06_label = "VMP-VLAN700" $VLAN01_id = "200" $VLAN02_id = "300" $VLAN03_id = "400" $VLAN04_id = "500" $VLAN05_id = "600" $VLAN06_id = "700" $iSCSI_sub = "255.255.255.0" $iSCSI_target_A = "172.45.21.40" $iSCSI_target_B = "172.45.22.40" $vMotion_ip = read-host "Select vMotion VMkernel IP-address to configure" $vMotion_sub = "255.255.255.0" $NTP01 = "0.nl.pool.ntp.org" $NTP02 = "1.nl.pool.ntp.org" $MTU = "9000" # # # #====================================================================# # ***LOAD PLUGINS*** # #====================================================================# Add-PSSnapin vmware.vimautomation.core #====================================================================# # # # #====================================================================# Write-Host "-- vSphere Host-configuration starting..." -foregroundcolor yellow #====================================================================# Write-Host "-- Connect to the target ESXi Host" -foregroundcolor green #====================================================================# Set-PowerCLIConfiguration -invalidCertificateAction "ignore" -confirm:$false | out-null Connect-VIServer "$ESX_host" -User "$Root_user" -Password "$Root_password" | out-null Start-Sleep -Seconds 10 #--------------------------------------------------------------------# Write-Host "-- Enter Maintenance mode" -foregroundcolor green | out-null #--------------------------------------------------------------------# Get-VMHost | Set-VMHost -State maintenance | out-null #--------------------------------------------------------------------# # # # #====================================================================# # ***CONFIGURE HOST SETTINGS*** # #====================================================================# Write-Host "-- Set Hostname and Domain name" -foregroundcolor green #--------------------------------------------------------------------# Get-VMHostNetwork | Set-VMHostNetwork -DomainName $New_domainname -HostName $New_hostname | out-null Start-Sleep -Seconds 10 #--------------------------------------------------------------------# Write-Host "-- Configure DNS settings" -foregroundcolor green #--------------------------------------------------------------------# Get-VMHostNetwork | Set-VMHostNetwork -DnsAddress "$DNS01" , "$DNS02" -SearchDomain "$New_domainname" | out-null #--------------------------------------------------------------------# Write-Host "-- Configure NTP settings" -foregroundcolor green #--------------------------------------------------------------------# Get-VMHost | Add-VmHostNtpServer -NtpServer "$NTP01" , "$NTP02" | out-null Get-VMHost | Get-VMHostFirewallException | where {$_.Name -eq "NTP client"} | Set-VMHostFirewallException -Enabled:$true | out-null Get-VMHost | Get-VmHostService | Where-Object {$_.key -eq "ntpd"} | Start-VMHostService | out-null Get-VMhost | Get-VmHostService | Where-Object {$_.key -eq "ntpd"} | Set-VMHostService -policy "automatic" | out-null #--------------------------------------------------------------------# Write-Host "-- Configuring Simple Network Management Protocol (SNMP)" -foregroundcolor green #--------------------------------------------------------------------# Get-VMHostSNMP | Set-VMhostSnmp -ReadOnlyCommunity 'public' | out-null Get-VMHostSnmp | Set-VMHostSnmp -Enabled:$true | out-null #--------------------------------------------------------------------# # # # #====================================================================# # ***CONFIGURE NETWORK SWITCHES*** # #====================================================================# Write-Host "-- Delete the default VM Network" -foregroundcolor green #--------------------------------------------------------------------# Get-VirtualPortGroup -Name "VM Network" | Remove-VirtualPortGroup -Confirm:$false | out-null #--------------------------------------------------------------------# Write-Host "-- Configure vSwitch0 - Management / vMotion" -foregroundcolor green #--------------------------------------------------------------------# Get-VirtualSwitch -Name vSwitch0 | Set-VirtualSwitch -Nic vmnic0,vmnic7 -Confirm:$false | out-null New-VMHostNetworkAdapter -PortGroup vMotion -VirtualSwitch vSwitch0 -IP "$vMotion_ip" -SubnetMask "$vMotion_sub" -vMotionEnabled:$true -Confirm:$false | out-null Get-virtualportgroup -name vMotion | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicActive vmnic7 | out-null Get-virtualportgroup -name vMotion | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicStandby vmnic0 | out-null Get-virtualportgroup -name "Management Network" | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicStandby vmnic7 | out-null Get-virtualportgroup -name "Management Network" | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicActive vmnic0 | out-null #--------------------------------------------------------------------# Write-Host "-- Configure vSwitch1 - Production Network" -foregroundcolor green #--------------------------------------------------------------------# New-VirtualSwitch -Name vSwitch1 -Nic vmnic4,vmnic6 -Confirm:$false | out-null Get-VirtualSwitch -Name vSwitch1 | New-VirtualPortGroup -Name "$VLAN01_label" -VLANID "$VLAN01_id" | out-null Get-VirtualSwitch -Name vSwitch1 | New-VirtualPortGroup -Name "$VLAN02_label" -VLANID "$VLAN02_id" | out-null Get-VirtualSwitch -Name vSwitch1 | New-VirtualPortGroup -Name "$VLAN03_label" -VLANID "$VLAN03_id" | out-null Get-VirtualSwitch -Name vSwitch1 | New-VirtualPortGroup -Name "$VLAN04_label" -VLANID "$VLAN04_id" | out-null Get-VirtualSwitch -Name vSwitch1 | New-VirtualPortGroup -Name "$VLAN05_label" -VLANID "$VLAN05_id" | out-null Get-VirtualSwitch -Name vSwitch1 | New-VirtualPortGroup -Name "$VLAN06_label" -VLANID "$VLAN06_id" | out-null #--------------------------------------------------------------------# Write-Host "-- Configure vSwitch2 - iSCSI" -foregroundcolor green #--------------------------------------------------------------------# New-VirtualSwitch -Name vSwitch2 -Nic vmnic5 -MTU $MTU | out-null New-VMHostNetworkAdapter -PortGroup "iSCSI01" -VirtualSwitch vSwitch2 -IP $VMK01 -SubnetMask "$iSCSI_sub" -MTU "$MTU" | out-null #--------------------------------------------------------------------# Write-Host "-- Configure vSwitch3 - iSCSI" -foregroundcolor green #--------------------------------------------------------------------# New-VirtualSwitch -Name vSwitch3 -Nic vmnic1 -MTU $MTU | out-null New-VMHostNetworkAdapter -PortGroup "iSCSI02" -VirtualSwitch vSwitch3 -IP $VMK02 -SubnetMask "$iSCSI_sub" -MTU "$MTU" | out-null #------------------------------------------------------------------ # # # #=====================================================================# # ***CONFIGURE STORAGE*** # #=====================================================================# Write-Host "-- Install Software iSCSI Initiator" -foregroundcolor green #---------------------------------------------------------------------# Get-VMHostStorage $ESX_host | Set-VMHostStorage -SoftwareIScsiEnabled $false | out-null Start-Sleep -Seconds 15 #---------------------------------------------------------------------# Write-Host "-- Configure iSCSI target address" -foregroundcolor green #---------------------------------------------------------------------# $iSCSI_HBA = Get-VMHost | Get-VMHostHba | Where {$_.Type -eq "Iscsi"} | Where {$_.Model -eq "iSCSI Software Adapter"} Get-VMHostHba "$iSCSI_HBA" | New-IScsiHbaTarget -Address "$iSCSI_target_A" | out-null Get-VMHostHba "$iSCSI_HBA" | New-IScsiHbaTarget -Address "$iSCSI_target_B" | out-null #---------------------------------------------------------------------# Write-Host "-- Configure iSCSI initiator name" -foregroundcolor green #---------------------------------------------------------------------# Get-VMHost | Get-VMHostHba | Where {$_.Type -eq "Iscsi"} | Where {$_.Model -eq "iSCSI Software Adapter"} | Set-VMHostHba -IScsiName "iqn.1998-01.com.vmware$ESX_host" | out-null #---------------------------------------------------------------------# Write-Host "-- Enable iSCSI Initiator" -foregroundcolor green #---------------------------------------------------------------------# Get-VMHostStorage $ESX_host | Set-VMHostStorage -SoftwareIScsiEnabled $True | out-null #---------------------------------------------------------------------# Write-Host "-- Rescan on all HBAs and Rescan for VMFS volumes" -foregroundcolor green #---------------------------------------------------------------------# Get-VMHostStorage -VMHost $ESX_host -RescanAllHba | out-null Get-VMHostStorage -VMHost $ESX_host -RescanVmfs | out-null #---------------------------------------------------------------------# # # # #=====================================================================# # ***FINISHING CONFIGURATION*** # #=====================================================================# Write-Host "-- Exit Maintenance Mode" -foregroundcolor green #---------------------------------------------------------------------# Get-VMHost | Set-VMHost -State connected | out-null #---------------------------------------------------------------------# # # # Write-Host "vSphere Host-configuration has finished.." -foregroundcolor yellow break; } 2 { #====================================================================# # vCenter - CUSTOM DEFINITIONS # #====================================================================# $vCenter_server = read-host "Select vCenter server to connect" $vCenter_administrator = read-host "Select vCenter Administrator" $vCenter_password = read-host "Select vCenter Administrator password" $vCenter_cluster = read-host "Select Cluster to add host" Write-Host "vSphere Host will be added in vCenter server..." -foregroundcolor Green #====================================================================# Write-Host "Connect to the target vCenter server" -foregroundcolor green #====================================================================# Connect-VIServer "$vCenter_server" -User "$vCenter_administrator" -Password "$vCenter_password" #====================================================================# Add-VMHost $ESX_host -Force -Location (Get-Cluster "$vCenter_cluster") -User root -Password "$Root_password" | out-null #====================================================================# # # # #====================================================================# # ***FINISHING CONFIGURATION*** # #====================================================================# Write-Host "Re-balance VMs in cluster using DRS" -foregroundcolor green #====================================================================# Get-DrsRecommendation -Cluster (Get-Cluster "$vCenter_cluster") -Refresh | out-null #====================================================================# # # # Write-Host "Host is added to vCenter Server.." -foregroundcolor yellow break; } } } while ($response -ne "0")
Script output:
During upgrade VMware vCenter Server 5.5.0 (based on Windows 2012R2) to 6.0.0 I received a warning message:
Error: There is a problem authenticating into the legacy vCenter Server using the credentials provided by the user.
Resolution: Check if vCenter Server is up and running. Double check provided vCenter Server credentials
Some troubleshooting:
MSI (c) (40:88) [17:15:28:813]: Invoking remote custom action. DLL: C:\Users\ADMINI~1.VMP\AppData\Local\Temp\MSI7329.tmp, Entrypoint: LaunchUpgradeRunnerPreUpgradePhase
MSI (c) (40!C8) [08:23:44:055]: PROPERTY CHANGE: Modifying PreUpgradeComplete property. Its current value is ‘0’. Its new value: ‘1’.
MSI (c) (40:D0) [08:23:47:186]: PROPERTY CHANGE: Modifying SSO_PASSWORD property. Its current value is ‘**********’. Its new value: ‘**********’.
MSI (c) (40:D0) [08:23:47:267]: PROPERTY CHANGE: Modifying VC_5X_PASSWORD property. Its current value is ‘**********’. Its new value: ‘**********’.
MSI (c) (40:D0) [08:23:47:288]: PROPERTY CHANGE: Modifying PreUpgradeComplete property. Its current value is ‘1’. Its new value: ‘0’.
MSI (c) (40:D0) [08:23:47:305]: Doing action: VM_LaunchUpgradeRunnerPreUpgradePhaseAsync
Solution
Reboot the vCenter Server… I restarted the setup and the installation can continue.. weird!
Everyone knows the hanging keyboard console session issue, when you type your username or password the keyboard hangs. If you access a virtual machine console over a slow connection, you’ll encounter keyboard sync issues
If you open a remote console to a virtual machine from a slow network connection (such as a VPN) while tethered to a mobile phone providing Internet access, the experience is not optimal, as keyboard and mouse gestures aren’t timed exactly the same. This is especially problematic if you try to enter a password where the characters are masked.
Solution
There are two ways to add a extra line in the configuration file of the virtual machine,
Option 1. Edit VMX file directly
1. Power off the virtual machine.
2. Add a line, similar to this, at the end of your virtual machine’s configuration (.vmx) file
keyboard.typematicMinDelay = "2000000"
The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it.
3. Power on the virtual machine.
Option 2. Edit VMX via vSphere Client
1. Power off the virtual machine.
2. Edit settings > Options > General > Configuration Parameters, add new row with text:
keyboard.typematicMinDelay = "2000000"
The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it.
3. Power on the virtual machine.
Ps. You can edit the .VMX files directly, but a better practice is to configure this value within the vSphere Client for a virtual machine template. When you consider that most of the access to a virtual machine is provided by tools such as remote desktop, there is no harm in configuring this value globally for all virtual machines that originate from a template
Last week I had some issues with starting virtual machines on vSphere 5.5 hosts (enough capacity available), when I try to start up the VM I receive message:
Could not start VMX: msg.vmk.status.VMK_NO_MEMORY”
An error was received from the ESX host while powering on VM [name]
Head globalCartel-1 already at its maximum size of 7869288. Cannot expand
Could not start VMX: msg.vmk.status.VMK_NO_MEMORY
Cause
This issue is caused by a memory leak in the driver which fills the SWAP memory of the ESXi host, making it unable to response to any requests at all. This issue occurs with ESXi hosts running on HP hardware with these versions of AMS:
Solution
This is a known issue affecting ESXi 5.x. To resolve this issue, upgrade to AMS version 10.0.1.
For ESXi 5.0 and 5.1, see:
For ESXi 5.5, see:
Note: In some cases, commands running on the ESXi host fails with cant’t fork. In this case the virtual machines running on the ESXi host needs to be powered off and the ESXi host rebooted. To verify the installed versions of AMS, run this command:
esxcli software vib list | grep ams
To remove the package on all hosts running on these AMS versions:
Recent Comments