WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
  • VKS
  • Homelab
    • Resources
    • Nested Virtualization
  • VMware Nostalgia
  • Apple

VM serial logging to the rescue for capturing Nested ESXi PSOD

03.21.2016 by William Lam // Leave a Comment

I frequently deploy pre-releases of our software to help test and provide early feedback to our Engineering teams. One piece of software that I deploy some what frequently is our ESXi Hypervisor and the best way to deploy it, is of course inside of a Virtual Machine or commonly referred to as Nested ESXi.

Most recently while testing a new ESXi build in my lab (screenshot below is for demo purposes, not the actual PSOD image), I encountered an ESXi purple screen of death (PSOD) during the bootup of the ESXi Installer itself. Since ESXi had not been installed, there was no place for ESXi to actually store the core dumps which made it challenging when filing a bug with Engineering as screenshots may not always contain all the necessary details.

Screen Shot 2016-03-21 at 9.26.08 AM
Luckily, because we are running in a VM, a really neat feature that VMware has supported for quite some time now is configuring a virtual serial port for logging purposes. In fact, one of the neatest feature from a troubleshooting standpoint was the introduction of the Virtual Serial Port Concentrator (vSPC) feature in vSphere 5.0 which allowed a VM to log directly to a serial console server just like you would for physical servers. You of course had few other options of either logging directly to the serial port of the physical ESXi, named pipe or simply to a file that lived on a vSphere Datastore.

Given this was a home lab setup, the easiest method was to simply output to a file. To add a virtual serial port, you can either use the vSphere Web/C# Client or the vSphere APIs. Since this is not something I need to do often, I just used the UI. Below is a screenshot using the vSphere Web Client and once you have added the virtual serial port, you need to specify the filename and where to the store the output file by clicking on the "Browse" button.

vm-serial-logging
If the GuestOS which includes ESXi has been configured to output to a serial port, the next time there is an issue and you can easily captured the output to a file instead of just relying on a screenshot. One additional tip which might be useful is by default, vSphere will prompt whether you want to replace or append to the configured output file. If you wish to always replace, you can add the following VM Advanced Setting and you will not get prompted in the UI.

answer.msg.serial.file.open = "Replace"

Virtual serial ports are supported on both vSphere (vCenter Server + ESXi) as well as our hosted products VMware Fusion and Workstation.

Categories // ESXi, Fusion, Nested Virtualization, Workstation Tags // ESXi, fusion, nested, nested virtualization, psod, serial logging, vSphere, workstation

Building minimal vSphere demo lab using VMware Fusion/Workstation with only 8GB memory?

10.16.2015 by William Lam // 7 Comments

After tweeting this update last week, I received quite a few questions on how I was able to squeeze a vCenter Server Appliance (VCSA) & ESXi 6.0 Update 1 along with a VMware Photon VM, all running on my Mac Book Air with only 8GB of memory. Although, I was not able to make use of my demo which was for my vSphere Content Library session at VMworld Europe this week; I thought I would still share the details on how I built this vSphere lab environment which could come in handy for others.

I was able to squeeze VCSA 6.0 & ESXi 6.0 Update 1 & Photon VM on Mac Book Air w/only 8GB of memory. Chrome & terminal ran fine as well!

— William Lam (@lamw.bsky.social | @*protected email*) (@lamw) October 7, 2015

I wanted to run everything on my Mac Book Air primarily for the convenience factor so I did not have to bring my Mac Mini which may not be ideal for traveling aboard. The performance and responsiveness of the environment was actually pretty good and I was able to also access the vSphere Web Client using Google Chrome as well as OS X terminal for CLI operations without any problems. It definitely helps if you place all VMs on SSDs, which is especially useful if swapping occurs since we are overcommitting the physical memory.

minimal-vsphere-demo-lab-on-fusion-or-workstation-with-only-8GB-of-memory-3
Below are the instructions for building this environment and here is a quick summary of the expected memory configuration for the three VMs.

Virtual Machine Memory
Embedded vCenter Server Appliance VM 5GB
ESXi VM 3GB
Photon VM 384 MB

Step 1 - Download the VCSA & ESXi 6.0 Update 1 ISO (or any other version you wish to run). You will need to extract the contents of VCSA ISO and the OVA is located in /vcsa/vmware-vcsa and you will need to add the .ova extension.

  • Source: Ultimate automation guide to deploying VCSA 6.0 Part 1: Embedded Node

Step 2 - We will need to configure memory overcommitment for VMware Fusion/Workstation to allow for the majority of the memory to be swapped to be able to run our minimal vSphere environment. You will need to set the value of prefvmx.minVmMemPct to 25 by adding the following line to the respective configuration file shown in the table below.

prefvmx.minVmMemPct = 25

Hypervisor Configuration File
VMware Workstation C:\ProgramData\VMware\VMware Workstation\config.ini
VMware Fusion /Library/Preferences/VMware\ Fusion/config
  • Source: Quick Tip – How to enable memory overcommitment in VMware Fusion?

Step 3 - Deploy the VCSA OVA to either your VMware Fusion or Workstation deployment and ensure you do not power on the VM. We will need to make the following edits to the VCSA's VMX file to ensure it is properly configured when it is powered on. Below is an example of the VMX parameters you will need to add before powering on the VM.

guestinfo.cis.deployment.node.type = "embedded"
guestinfo.cis.vmdir.domain-name = "vghetto.local"
guestinfo.cis.vmdir.site-name = "vghetto"
guestinfo.cis.vmdir.password = "VMware1!"
guestinfo.cis.appliance.net.addr.family = "ipv4"
guestinfo.cis.appliance.net.addr = "192.168.1.54"
guestinfo.cis.appliance.net.pnid = "192.168.1.54"
guestinfo.cis.appliance.net.prefix = "24"
guestinfo.cis.appliance.net.mode = "static"
guestinfo.cis.appliance.net.dns.servers = "192.168.1.1"
guestinfo.cis.appliance.net.gateway = "192.168.1.1"
guestinfo.cis.appliance.root.passwd = "VMware1!"
guestinfo.cis.appliance.ssh.enabled = "true"

  • Source: Quick Tip – How to enable memory overcommitment in VMware Fusion?

Step 5 - Once the VCSA has successfully been configured and you can connect to it using the vSphere Web Client, you can then power it off and reduce the memory from 8GB to 5GB.

Step 4 - Create a new VM using the ESXi 6.x GuestOS type for running your Nested ESXi VM and stick with the defaults of 4GB of memory to be able to install ESXi. Once the VM has been created, go ahead and install ESXi using the ISO as you normally would.

Step 5 - Once the ESXi VM has successfully been installed and booted up, you can then power it off and reduce the memory from 4GB to 3GB.

Step 6  (Optional) - If you wish to play with VMware Photon, you can also install Photon using the ISO which can be downloaded from here or deploy using the OVA which can be downloaded from here.

For folks who have more memory in their system, you could add an additional two Nested ESXi VMs to then run a full VSAN setup and then you will have a pretty powerful, with minimal resource footprint that you can bring with you anywhere to run demos or for development and testing purposes. I also highly recommend making use of the "Suspend" operation when you need to quickly get access to memory or run other applications and this also allows you to quickly resume the entire environment in just a few seconds without having to power down the entire setup which will take much longer.

Categories // Apple, Fusion, vSphere 6.0 Tags // apple, ESXi, fusion, Photon, vcenter server appliance, VCSA, vcva, workstation

Ultimate automation guide to deploying VCSA 6.0 Part 4: vCenter Server Management Node

03.10.2015 by William Lam // 11 Comments

In this last and final article, I will share alternative methods of deploying vCenter Server management node using the VCSA 6.0 appliance. Take a look at the various deployment methods below and their respective instructions for more details. If you are deploying using one of the scripts below, you will need to extract the contents of the VCSA ISO. If you are deploying to Workstation/Fusion, you will need to extract the VCSA ISO and add the .ova extension to the following file VMware-VCSA-all-6.0.0-2562643->vcsa->vmware-vcsa before deploying.
vcsa-mgm-node
Disclaimer: Though these alternative deployment options work, they are however not officially supported by VMware. Please use at your own risk.

Deploying to an existing vCenter Server using ovftool (shell script)

I have created a shell script called deploy_vcsa6_mgmt_to_vc.sh which requires using ovftool 4.1 (included in the VCSA ISO) to specify the appropriate OVF "guestinfo" properties for a vCenter Server Management Node deployment. You will need to edit the script and modify several variables based on your environment.

Here is an example of executing the script:

vcsa-6.0-vcenter-server-management-deployment

Deploying to an ESXi host using ovftool (shell script)

I have created a shell script called deploy_vcsa6_mgmt_to_esxi.sh which requires using ovftool 4.0 or greater to specify the appropriate OVF "guestinfo" properties for a vCenter Server Management Node deployment. You will need to edit the script and modify several variables based on your environment. The behavior of this script is similar to the one above, except you are deploying directly to an ESXi host.

Deploying to an existing vCenter Server using ovftool (PowerCLI)

I have created a PowerCLI script called Deployment-VCSA-Mgmt.ps1 which uses ovftool and specifies the appropriate OVF "guestinfo" properties for a vCenter Server Management Node deployment. You will need to edit the script and modify several variables based on your environment.

Deploying to VMware Fusion & Workstation

To properly deploy the new VCSA 6.0, the proper OVF properties MUST be set prior to the booting of the VM. Since VMware Fusion and Workstation do not support OVF properties, you will need to manually deploy the VCSA, but not power it on. Once the deployment has finished, you will need to add the following entries to the VCSA's VMX file and replace it with your environment settings. Once you have saved your changes, you can then power on the VM and the configurations will then be read into the VM for initial setup.

guestinfo.cis.deployment.node.type = "management"
guestinfo.cis.system.vm0.hostname = "192.168.1.50"
guestinfo.cis.vmdir.domain-name = "vghetto.local"
guestinfo.cis.vmdir.site-name = "vghetto"
guestinfo.cis.vmdir.password = "VMware1!"
guestinfo.cis.appliance.net.addr.family = "ipv4"
guestinfo.cis.appliance.net.addr = "192.168.1.64"
guestinfo.cis.appliance.net.pnid = "192.168.1.64"
guestinfo.cis.appliance.net.prefix = "24"
guestinfo.cis.appliance.net.mode = "static"
guestinfo.cis.appliance.net.dns.servers = "192.168.1.1"
guestinfo.cis.appliance.net.gateway = "192.168.1.1"
guestinfo.cis.appliance.root.passwd = "VMware1!"
guestinfo.cis.appliance.ssh.enabled = "true"
guestinfo.cis.appliance.ntp.servers = "0.pool.ntp.org"

For more information, you can take a look at this article here.

Deploying using new supported scripted install (bonus)

As mentioned earlier, there is also a new scripted installer included inside of the VMware-VCSA ISO under /vcsa-cli-installer which supports Windows, Mac OS X and Linux, but must be connected directly to an ESXi host. There are several templates that are also included within the /vcsa-cli-installer/templates. I thought as a bonus I would also share the template I have been using to deploy replicated PSC instances using a static IP Address which some of you may find useful.

{
    "__comments":
    [
        "William Lam - www.virtuallyghetto.com",
        "Example VCSA 6.0 vCenter Server Management Node Deployment w/Static IP Address"
    ],

    "deployment":
    {
        "esx.hostname":"192.168.1.200",
        "esx.datastore":"mini-local-datastore-1",
        "esx.username":"root",
        "esx.password":"vmware123",
        "deployment.option":"tiny",
        "deployment.network":"VM Network",
        "deployment.option":"management-tiny",
        "appliance.name":"vcsa-mgmt-node",
        "appliance.thin.disk.mode":true
    },

    "vcsa":
    {
        "system":
        {
            "root.password":"VMware1!",
            "ssh.enable":true,
            "ntp.servers":"0.pool.ntp.org",
            "platform.service.controller":"192.168.1.50"
        },

        "sso":
        {
            "password":"VMware1!",
            "domain-name":"vghetto.local",
            "site-name":"virtuallyGhetto"
        },

        "networking":
        {
            "ip.family":"ipv4",
            "mode":"static",
            "ip":"192.168.1.52",
            "prefix":"24",
            "gateway":"192.168.1.1",
            "dns.servers":"192.168.1.1",
            "system.name":"192.168.1.52"
        }
    }
}

The use the scripted installer, you just need to change into the appropriate OS platform directory (win32,mac or lin64) and there should be a binary called vcsa-deploy. To use this template, you just need to save the JSON to a file and then specify that as the first argument to vcsa-deploy utility.

Here is an example of deploying a PSC using the vcsa-deploy scripted installer.

vcsa-6.0-vcenter-server-management-node-scripted-install

  • Part 0: Introduction
  • Part 1: Embedded Node
  • Part 2: Platform Services Controller Node
  • Part 3: Replicated Platform Services Controller Node
  • Part 4: vCenter Server Management Node

Categories // Automation, Fusion, OVFTool, VCSA, vSphere 6.0, Workstation Tags // fusion, ovftool, vCenter Server, vcenter server appliance, VCSA, vcva, vSphere 6.0, workstation

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • …
  • 8
  • Next Page »

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • Programmatically accessing the Broadcom Compatibility Guide (BCG) 05/06/2025
  • Quick Tip - Validating Broadcom Download Token  05/01/2025
  • Supported chipsets for the USB Network Native Driver for ESXi Fling 04/23/2025
  • vCenter Identity Federation with Authelia 04/16/2025
  • vCenter Server Identity Federation with Kanidm 04/10/2025

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2025

 

Loading Comments...