Tiny Core Linux and Operational Readiness

February 28th, 2011 by jason Leave a reply »

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:

SnagIt Capture

After pressing Enter, the boot process is briefly displayed:

SnagIt Capture

Once booted, the first step would be to configure the network via the Panel applet at the bottom of the Mac like menu:

SnagIt Capture

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:

SnagIt Capture

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:

SnagIt Capture

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:

SnagIt Capture

The online application repository is packed with what seems like thousands of apps:

SnagIt Capture

After installing FileZilla, it’s available as an applet:

SnagIt Capture

FileZilla is fully functional:

SnagIt Capture

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:

  1. 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.
  2. 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.


No comments

  1. Good post Jason!! I think I might just give this a try. I got a VM of DSL(damn small linux) running which is similar in nature.

  2. Vladan says:

    I haven’t even tested yet, but soon will be. I can clearly can see the possibilities here. Excellent write Jason.

    Going for a try.

  3. mwpreston says:

    Very cool! May need to give this a shot during esxi migration…

  4. james says:

    What if a network fails though on a host and the VM is isolated just from the network? Host Console is otherwise connected and lets say it could VMotion from one host to another to solve the issue. Having said that VMware needs to put in some soft of isolation address per PG that it can ping to know that that specific PG is ok to put VM’s on or move VM’s to ! which then would make this test obsolete I think but that’s just me.

  5. jason says:

    @james: That sounds like a good feature request. Please submit it to VMware!

  6. Jared Evans says:

    You may want to check out Unity Linux, which is a bit more full-featured minimalist Linux-based OS. It takes up just a slightly more resources but is well worth it, IMHO. It uses RPM5 packaging so you have many more optional packages available for the system and there’s no need to deal with limitations of tcz packages.

    I was able to get an unity system with only 3GB vdisk, fully to date, VMTools installed, chromium-browser/flash10.2 with 400MB left over. I also install an arsenal of command-line network tools which eats up very little disk space.

    This is my go-to OS for network troubleshooting, either on a USB stick or as a virtual machine.

  7. Eric Gray says:

    Just used this for a quick network test. Very handy!

  8. richard says:

    hey guys!!!!

    i’m just new in using TCL, and i don’t know what you guys are saying up there. I just need to do this as a research assignment and i picked TCL coz it’s small, but i don’t have a clue what i’m looking at. help me.

    PS. normal english is appreciated…

  9. richard says:

    oh yeah.. i couldn’t get the network to work…..

  10. Bob says:

    Great post, used it today for testing networking. Saved a lot of time building a real VM. Thanks

  11. Nice blog & interesting post!

  12. Maciej says:

    Hi Jason,

    Great post, especially that I was looking for a lightweight VM for my homelab environment. Eventually a made one myself (based on TinyCore, with 48MB RAM, 19MB HDD thin-provisioned, open-vm-tools, nginx and openssh on board). Feel free to visit my website to download an OVA: https://cloudarchitectblog.wordpress.com/2015/11/11/yvm-download-page/