When installing, configuring, or managing VMware virtual infrastructure, one of the steps which should be performed before releasing a host (back) to production is to perform operational readiness tests. One test which is quite critical is that of testing virtual infrastructure networking. After all, what good is a running VM if it has no connectivity to the rest of the network? Each ESX or ESXi host pNIC should be individually tested for internal and upstream connectivity, VLAN tagging functionality if in use (quite often it is), in addition to proper failover and fail back, and jumbo frames at the guest level if used.
There are several types of VMs or appliances which can be used to generate basic network traffic for operational readiness testing. One that I’ve been using recently (introduced to me by a colleague) is Tiny Core Linux. To summarize:
Tiny Core Linux is a very small (10 MB) minimal Linux GUI Desktop. It is based on Linux 2.6 kernel, Busybox, Tiny X, and Fltk. The core runs entirely in ram and boots very quickly. Also offered is Micro Core a 6 MB image that is the console based engine of Tiny Core. CLI versions of Tiny Core’s program allows the same functionality of Tiny Core’s extensions only starting with a console based system.
TCL carries with it a few of benefits, some of which are tied to its small stature:
- The minimalist approach makes deployment simple.
- At just 10MB, it’s extremely portable and boots fast.
- As a Linux OS, it’s freely distributable without the complexities of licensing or activation.
- It’s compatible with VMware hardware 7 and the Flexible or E1000 vNIC making it a good network test candidate.
- No installation is required. It runs straight from an .ISO file or can boot from a USB drive.
- Point and click GUI interface provides ease of use and configuration for any user.
- When deployed with internet connectivity, it has the ability to download and install useful applications from an online repository such as Filezilla or Firefox. There are tons of free applications in the repository.
As I mentioned before, deployment of TCL is pretty easy. Create a VM shell with the following properties:
- Other Linux (32-bit)
- 1 vCPU
- 256MB RAM
- Flexible or E1000 vNIC
- Point the virtual CD/DVD ROM drive to the bootable .ISO
- No HDD or SCSI storage controller required
First boot splash screen. Nothing real exciting here other than optional boot options which aren’t required for the purposes of this article. Press Enter to continue the boot process:
After pressing Enter, the boot process is briefly displayed:
Once booted, the first step would be to configure the network via the Panel applet at the bottom of the Mac like menu:
If DHCP is enabled on the subnet, an address will be automatically acquired by this point. Otherwise, give eth0 a static TCP/IP configuration. Name Servers are optional and not required for basic network connectivity unless you would like to test name resolution in your virtual infrastructure:
Once TCP/IP has been configured, a Terminal can be opened up and a basic ping test can be started. Change the IP address and vNIC portgroup to test different VLANs but my suggestion would be to spawn multiple TCL instances, one per each VLAN to test because you’ll need to vMotion the TCL VMs to each host being tested. You don’t want to continuously be modifying the TCP/IP configuration:
What else of interest is in the Panel applet besides Network configuration? Some ubiquitous items such as date/time configuration, disk and terminal services tools, and wallpaper configuration:
The online application repository is packed with what seems like thousands of apps:
After installing FileZilla, it’s available as an applet:
FileZilla is fully functional:
So I’ve only been using Tiny Core Linux as a network testing appliance, but clearly it has some other uses when paired with extensible applications. A few other things that I’ll point out is:
- TCL can be Suspended in order to move it to other clusters (with compatible CPUs) so that both a host and a storage migration can be performed in a single step. Once TCL reaches its destination cluster, Unsuspend.
- During my tests, TCL will continue to run without issue after being severed from its boot .ISO. This is possible because it is booted into RAM where it continues to run from that point on.
I’ve been watching Tiny Core Linux for several months and the development efforts appear fairly aggressive and backed by an individual or group with a lot of talent and energy which is good to see. As of this writing, version 3.5 is available. Give Tiny Core Linux a try.