The Tiny Internet Project, Part II

If you see "Quad CPU", or something similar, and "64-bit Operating System", you likely have a machine that (once wiped) will work. To be more certain, you can use Intel or AMD tools to identify further your CPU's ability to support virtualization (again, see the Resources at the end of the article).

Figure 2. SecurAble helps you learn more about your processor.

If you're planning to use an old Intel-based Apple Mac, there are many that support virtualization. Getting an older Mac to boot from USB can be a little tricky, and I won't cover those steps here. However, I have successfully installed Linux on several Intel Macs, and it runs well.

If you already have Linux installed on a desktop or server, you can use a few simple terminal commands to see if it supports virtualization. Open a terminal and enter this command:


$ cat /proc/cpuinfo | grep vmx

If it returns something that looks like the following text (repeated several times for each CPU), you're in business and can proceed to the next step (if you're still uncertain, check the Resources for more options):


[flags          : fpu vme de pse tsc msr pae mce cx8 apic sep
 ↪mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr
 ↪sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc
 ↪arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc
 ↪aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl
 ↪vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2
 ↪x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand
 ↪lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow
 ↪vnmi flexpriority ept vpid fsgsbase smep erms]

If the flags output includes vmx (possibly highlighted red in the output), you should be set. If not, check your system's BIOS. Virtualization often is possible on a system, but it's disabled by default. Look for virtualization settings in your system's BIOS, enable it and reboot.

Although the Tiny Internet Project is designed to provide everything you need without having to access the public internet, the fact is you'll need your Linux distribution mirror to connect to servers on the outside. You can do this by setting up a proxy server (which I will cover in Part III) or by installing two Ethernet cards on your Proxmox host. Wired connections are easier to set up than wireless ones, and I don't recommend using a Wi-Fi card or USB dongle as the host's second connection.

With two cards installed, your Proxmox host will be able to talk to both public and private networks, and so will the virtual machines running on top of it.

The Virtualization Software: Proxmox

Since you're obviously most interested in Linux and free software, let's use the custom KVM Proxmox.

You can install KVM during the server set-up process on many Linux distributions, particularly Debian-based flavors. These out-of-the-box KVMs work well, but I found them a little too complicated for the Tiny Internet Project. Installing KVM on an existing machine using apt or yum works, but it's not something a newcomer can do easily.

By itself, KVM doesn't come with a GUI interface either—a shortcoming that's fine for Linux experts, but not newbies. There will be plenty of command-line work to do later, so I wanted an easy-to-use interface for KVM management, preferably something browser-based. The tools I found, such as WebVirtMgr, were workable, but again, they were a little too complicated for a newbie to set up.

Proxmox works well because it includes the following:

  • A fairly standard, if lightweight, Debian kernel.

  • An easy-to-use web interface.

  • A ready-made .iso that can be burned onto a USB or DVD.

  • Nice tools for managing clusters and storage.

Proxmox supports clustering, which lets you set up multiple VM host machines. It also supports a variety of storage types, including local and network-based drives.

______________________

John S. Tonello is Director of IT for NYSERNet, Inc., in Syracuse, New York. He's been a Linux user and enthusiast since he installed his first Slackware system from diskette 20 years ago. You can follow him @johntonello.