|
|
|

We are reprinting this article from the January
2003 Benchmarks Online to get you ready for Part II, coming next
month. - Ed.
In preparation for a conference in April, I have started to
accumulate information on inexpensive ways to manage resources, in
particular, visual resources. As
most of you know, the Texas State Legislature is about to convene
again, and the economic outlook for state-funded institutions is
looking bleak for the next fiscal year.
As we see the private sector scale down, and the lay-offs
continue, it can make even the safe haven of a state job a bit unsure.
Even if our jobs may not be in jeopardy, our budgets definitely
are... At the University
of North Texas, we have been feeling the economic crunch this year,
and expect to feel even more next year.
With this in mind, I am always on the lookout for ways to
maintain cutting edge technology, while not spending the dwindling
budget that other people in my university desperately need. This leads me to the subject of this article,
reviving out-of-date machines through the use of open source
operating systems.
The
scenario...
My wife and I enjoy going to have Chinese food at many of the
wonderful restaurants in the Garland/Richardson area, and during one
of our adventures, we noticed an out of the way store that sold
software and computers. On a whim, and because I am a computer geek, we stopped by,
and my eyes popped out when we saw old desktop computers for $15...
Sure, they were old Compaq Desktoppros, but I knew that they
could be used for some wild scheme...
Hmm... Pentium
133's, 32 megs of RAM and 1 gig hard-drives...
What could they be used for?
Aha!!
What could these machines be used for?!
Let me tell you. P133's
could work great as a router, web servers, desktop machines, proxy
servers, and can even be clustered, in large enough numbers, to be a
rather competent super-computer.
How is this possible, you might ask?
This is possible through the use of open source operating
systems, Linux and FreeBSD, (and it's siblings, NetBSD, and OpenBSD.)
Many do not realize that these operating systems are optimized
to work on old hardware, and can take that hardware, and make it seem
young again :)
My
Scheme
Through my work, and interest in computers, I have long desired to
learn more about routing, load-balancing, and clustering, (as in
process-sharing among multiple machines), for quite some time.
The problem has always been the lack of hardware to do it.
Most desktop computers, even used computers, are so overpriced,
IMHO, that I would rather buy new machines for $100 - $200 more.
Therefore, when I saw the old Compaq computers for $15, I saw
my chance. We backed up
my truck to the store, and drove away with five computers, a 24-port
hub, and various cables, wires and keyboards.
The time was now. My “scheme” was to build an a load-balanced web cluster
from these machines. One
machine as the load-balancing router, two machines as the
load-balanced web servers, one machine as the database server, and one
machine as a storage device, to hold the web content.
Now that I had the hardware, I needed to test a variety of
operating systems to see which would meet my needs most appropriately
for this “scheme”.
Enter
the Operating Systems...
The first operating system, or OS, that would come to many people's
minds is a version of a Microsoft server OS, such as, Windows NT, or
2000. But, Windows hardware requirements are too great for a
machine with a P133, 32 megs of RAM and a 1 gig hard-drive. (For instance, Win2k Server needs 1 gig of storage for the OS
by itself, not to mention a minimum of 128 megs of RAM.) Besides, the cost of licensing the OS would obviate the
savings on hardware, and the operating system does not give me the
power and flexibility that I desire in my test environment. Therefore, I began to look at open source OS's that would
work well in this environment and give me the power and flexibility
needed to create a test environment.
Red
Hat Linux
Long a favorite of Linux users in the United States, Red Hat is a
fairly mature Linux distribution.
(You will understand what I mean by fairly mature later.)
It is the standard distribution for many institutions, and it
has a good working relationship with many large commercial
corporations, such as Oracle, Sun, and Macromedia.
These relationships, as well as, the popularity of this
distribution make it very easy to find software, commercial and open
source, that are configured to work with the directory structure, the
package manager, and the libraries that are shipped with Red Hat.
As of the writing of this article, Red Hat has released version
8.0, which incorporates a nice desktop scheme, installer, and a fairly
up-to-date kernel (2.4.18). (The
latest stable is 2.4.20). The
gui installer finds most of your hardware, and configures the X
Windows system, (the system that is used to run a gui desktop on most
Linux systems), rather painlessly, (unusual for most Linux
distributions). You log
in and go... Very user
friendly!
Reason I didn't choose Red
Hat Linux: Red Hat
has an minimal install size of over 400 megs, (without C compiler and
gui desktop). Also, I
have never had much luck with the RedHat Package Manager, or RPM, and
would like a better package management system, if possible.
SuSE
Linux
My favorite distribution for the last two years.
This distribution is very popular in Europe, and, as everything
German, is very well engineered.
It uses the RPM system, and has a very nice gui installer that
also finds all of a computers hardware fairly accurately.
(I did an FTP install on my Toshiba Satellite laptop, and
didn't need to configure any additional hardware after the
installation :) ) The company stays very up-to-date with packages, and includes
KDE 3.X as it's main desktop environment.
(In my opinion, the most powerful and easy-to-use desktop
environment.) SuSE also
ships with the SuSE Firewall, and SuSE Firewall 2, which make it easy
to create rules governing Virtual Private Networks and De-Militarized
Zones, and the packets that route through the SuSE box.
Reason I didn't choose SuSE
Linux: For all of my
grand-standing on the SuSE distribution, there is a glaring flaw...
They do not have ISO images available on any FTP sites.
This means that you either need to buy the CD version from a
store, (yuck!!), download the distribution from an available FTP site
for every machine, or create a mirror of the FTP site on your
servers... Because I only
have a 56k connection at home, I prefer to work from CD, instead of
waiting for 20+ hours for the files to be downloaded remotely.
Peanut
and Vector Linux
In my search for a small distribution of Linux, I began to search
through many of the interesting “minimalist” distributions that
can be found in the lists of Linux Online.
(You may not know this, but there are many Linux distributions
that fit on a single floppy disk!) Of these choices, two distributions
seemed to really catch my attention: Peanut Linux, and Vector Linux.
Peanut Linux is a 210 meg download, and is designed to be a
simple desktop system with an easy setup.
This distribution seemed to be very popular, but it lacked one
important element... A C
compiler. This was
definitely not a server distribution.
After discovering this fact, I looked to an alternative that
came up in the same articles, Vector Linux.
Vector Linux is a slackware-based mini-distribution.
(Meaning that Slackware was used as a starting point, and then
modified to become a completely separate distribution.)
The installer is text-based, and easy to understand. I installed the distribution, without a gui desktop, in a
whopping 260 megs of storage. This
including a C compiler, SSH, (a more secure replacement for Telnet),
and most of the tools that I would need to run a group of
load-balanced web servers. I
was impressed! (According to the reviews, the gui desktop was very easy to
configure, meaning that this would be a great desktop distribution
too.)
Reason I didn't choose
either Peanut or Vector Linux: Peanut's
lack of a C compiler killed it immediately.
It seems that the software that would be available for this
distribution would be precompiled software.
This is not appropriate for a server environment.
Vector Linux was a great distribution that would have met most
of my needs... Except, it
did not have the ability to do a network install.
(The Compaqs only have a floppy, so I was planning to boot from
a floppy disk, and then automate the installation, much like the
JumpStart, (Sun Microsystems), or KickStart, (Red Hat) tools.)
Slackware
Linux
Since we talked about a Slackware-based distribution in the
previous section, I thought that I should take a leap into the dreaded
world of Slackware Linux, the oldest and “most difficult”
distribution with which to work.
(This was the information that I had gleaned from countless
reviews and Google Groups messages...)
Was I surprised to find that I was wrong!
The install was very easy.
I chose the standard install for newbies, and was prompted for
all of the information that was needed by the installation program.
Very nice! It even
prompted me for all of the optional packages during installation, so
that I was able to fine-tune the installation to my needs.
Very nice! (The
final install was about 350 megs.
Well within my target range.)
I also had the option for a network install, so that I could
boot the machines from a floppy, and then install from another network
server.
Reason I didn't choose
Slackware Linux: The
reason that I didn't choose Slackware, was that I didn't know how
popular the distribution still is...
(After the major distributions, such as Red Hat, SuSE and
Debian, have passed Slackware in popularity, I didn't know what the
future might be. Would Slackware be around in five years? Ten?)
Also, I had difficulties with the installation of Lilo on the
Master Boot Record, and ended up using a boot floppy instead.
(This also happened with Vector Linux.)
Finally, I was looking for a better package manager than I had
been using, (RPM)... Slackware
has a package manager, but limited dependency checking...
Sorry, Slackware!!
FreeBSD
Next, we are going to step outside of our Linux distributions, and
take a look at one of the open source versions of Unix.
The difference between Linux and Unix can be simplified to the
kernel of the operating system. (As
a matter of fact, that is the main difference.)
The Linux kernel was created by Linus Torvalds at the Computer
Science department at the University of Helsinki, Finland, and was
originally based on the academic-unix-based kernel, Minix.
Therefore, any distribution that uses this kernel for their
distribution is called Linux. The
Unix kernel can be based on any variant of the original Bell Labs
Unix. These can be
commercial distributions, such as, Sun Solaris, SCO, or academic
versions, such as, BSD, from the University of California at Berkeley.
That is where FreeBSD comes into the picture.
Originally, the Berkeley Software Distribution, or BSD, was
designed for large mainframes and “super computers”.
But, as prices began to plummet on Intel x86 platforms in the
late 1980's, and early 1990's, there became a growing need for a
version of BSD that supported these platforms.
To meet this demand, a man named Bill Jolitz ported a version
for the intel architecture, based on the open-sourced BSD code.
This was known as 386/BSD, and in 1993 two groups began to
enhance and modify the existing port into one of the most stable open
source operating systems available. One of these groups became known as FreeBSD.
FreeBSD is a popular version of Unix, that is designed to run on
inexpensive hardware. This,
obviously, caught my eye. The
minimum requirements for the system:
i386 or greater, 4 megs of RAM, and 100 megs of storage.
Wow!!! The
installation is text-based, but fairly straight-forward.
(NOTE: version 4.5
had a hard time finding the PS/2 mouse when using a Belkin OmniView SE
4-port. When searching on
the newsgroups, I found that this is a problem with lower-end KVM's
and FreeBSD.) The minimal
install, around 200 megs, (including C compiler, and various other
necessities), was very nice. Also,
the maturity of the product is reflected in the manner that the
project is managed. The
FreeBSD team views FreeBSD as a whole, and not as a kernel with
third-party applications added, as does Linux, and the team is made up
of multiple groups who must test every aspect of an enhancement to the
operating system before adding it into the RELEASE, or stable,
code-base. These groups
act as auditors, and the stability of the end product is a testament
to their dedication. Security
fixes are also dealt with in the same manner.
The security team is presented with a fix for a known security
hole, they test it for several days to make sure that the new code
won't break the old, and then they place it in the development tree
for a time before incorporating it into the stable source tree.
Though I have been a die-hard user of Linux for the past 3-4
years, I find this style of project management a plus.
Also, I like the fact that it is possible to use a version of
FreeBSD into perpetuity. (ie.
It is still possible to install FreeBSD 2.2 – RELEASE on an old
machine, and find current packages that work with it.
(FreeBSD 2.2 – RELEASE was released in March 1997.))
Reason I didn't choose
FreeBSD: Though I
wanted to use FreeBSD on my old machines, I found that Macromedia
ColdFusion Server did not support, and had no plans to support, a
version for FreeBSD, though there is a version for Mac OS X which is
based on the FreeBSD kernel. :( (I
want to work with these old machines to test various dynamic content
servers, ColdFusion being one of them.)
Debian
Linux
Or more appropriately Debian GNU/Linux, is one of the true open
source Linux distributions. The
development community, made up of over 900 developers, has created a
“Social Contract” with the open source community to keep Debian
100% free, and will not add any component to the operating system that
is not 100% free and open source.
(All software that is useful to end-users, but does not open
source its source code, can be used, but will not be officially added
to a release of Debian.) They
have also striven to have a stable, error-free linux distribution.
To this end, the Debian Community does not contain all of the
newest and best versions of third-party applications, or the kernel
for that matter, but relies on versions that have been tried and
tested.
The newest stable version, is 3.0 release 1, and the installation
of the distribution can take a little trial and error to get correct.
(ie. The
partitioning and initialization of partitions took a while to
understand.) Otherwise,
the installation was fairly easy, and the minimal install was about
182 megs. (This included
everything that I needed, except the web servers and the openssl
library. After installing
these, the total install was 190 megs.
Not bad!!) The
package management tool that I enjoy using is the “apt” tool. This tool is configured during installation, and can find
application packages from multiple medias.
(I've tested the CD-ROM and internet downloads, and have been
very pleased with the results.) If
you can't find a package on the main source sites listed in the
/etc/apt/sources.list, you can search the main web site for the
location, and add it to the sources.list file.
Run apt-get update, and then apt-get install package, and the
apt tool will find, download, and install the package and it's
dependencies with no work for the user.
(It's a great package manager!!
I don't have much experience with the “ports” tools on
FreeBSD, but I imagine, it must be very similar.)
Debian also has an auto-install tool called Progeny.
This tool will help me to reinstall the appropriate image to
any new machines that I would like to add to the “web farm”.
Also, with a growing development team, I can be assured that
Debian will be around for quite some time, and that my support needs
can be met on the internet.
Reason I chose Debian Linux:
I chose Debian GNU/Linux as my open source operating system, because
it fit into my hardware needs. With
a minimal installation of under 200 megs, Debian will allow my old
Compaq machines to come to life, (with room for log files, and mail
queues! :) ) The package
management tools will allow for easy upgrades, and make security fixes
a breeze. Also, because
it is a Linux distribution, I will be able to run Macromedia
ColdFusion MX on these machines...
And
there you have it!
In this article, I attempted to look at various distributions of
open source operating systems. These
included distributions of Linux, and FreeBSD, a popular open source
version of Unix. Though
it would have been unwieldy to explore each of these operating systems
in depth, I made the attempt to qualify the evaluation process by
creating a particular environment, and problem, that I was trying to
solve with an open source operating system.
By doing so, I was able choose 4-5 criteria for which I was
evaluating, and able to hit these points in the descriptions.
Though this may be a hypothetical situation, as used in this
article, the situation is not at all unusual in the “real” world.
I feel that it is important for any institution, commercial or
state, to evaluate the economic ramifications of discarding “old”,
out-of-date systems, in order to maintain the technological edge for
end-users. I am
attempting to show that those systems do not need to go away, and that
they can actually be brought back to life
with thoughtful consideration to the operating system and
applications that run on it. I
hope you will continue with me next month, when we look at the
installation and configuration of other open source projects, Apache,
OpenSSL, PHP, on our Compaq Deskpro 4000 computers.
See you then!!
Links
|