Linux Term Sever

Linux in the classroom

Bio


Schools spend tremendous amounts of money on computer hardware and
software as well as the electricity, training, infrastructure and
tech support to keep it running. This includes hidden costs such as
maintaining accurate software inventories in the event of an audit by
the software association. In my opinion it is overkill to have a
full blown computer with an individual operating system sitting on
every desk when there is an inexpensive, reliable and free
alternative available.


The Linux Term Server Project (LTSP) has been in existence for
years and is available in many forms, including as part of the
Ubuntu:Edubuntu and Novell:Suse distributions and is successfully
used by schools and businesses all over the world. It is easy to set
up, reliable, secure and easy for users to learn.


Novell's website claims that this technology is capable of
”Cutting hardware costs by 75 percent , software by 95 percent and
electricity costs by 25 percent”. Based on my 5 years of
experience, I think this is in the ballpark. (We do not save that
much electricity because we use old computers for clients rather than
diskless thin clients. Those are available for less than $150 and
can consume as little as 10 watts).


But we have saved our district's taxpayers as much as $100,000
over the course of 5 years as compared to upgrading hardware and
purchasing or upgrading software. It has worked so well that we have
traded the 5 new computers purchased for our lab in the past few
years for more of the oldest machines in the district because the new
ones did not work any better than the old ones..


LTSP is a fantastic way for cash strapped schools to cut computer
costs drastically without any loss of capability. I hope that this
article will encourage more schools to explore this technology..


Open Source Apps we use.


Excellent Open Source software is
available for almost any high school computing task. Open Office
handles writing and spreadsheets in the engineering class. Firefox
gets students on our Moodle site and the rest of the web.





Beyond that, we use Quanta and Gftp for
teaching web design, Ktechlab in Electronics, Gimp and Image Magic in
Digital Photography. The server is able to juggle 20 simultaneous
Gimp sessions. Qcad is adequate for drafting. We have also used it
for some 3d work with Blender.





Web design is the only class where I
spend any time actually teaching Linux. Those students need to be
familiar with file systems and some simple Bash commands. Most
students, even the more technically inclined ones have never worked
on the command line.





The server also runs an Apache web
server with PHP and Mysql to give web design students experience
working on a server . Any files saved in ~/public_html are seen by
the web server and are on our class web site. The web server runs a
Perl script that builds links to all the students who have a
public_html folder, which makes it easy for me to see their work.





Joey has set up a Ubuntu based CAM
(Computer Assisted Manufacturing)system that runs our CNC router.





[The Perl script might be interesting
to teachers running Apache?]






Bringing Linux into the classroom without a
committee.


A.K.A: “It's easier to get
forgiveness than permission”





Most school districts have strict
policies preventing teachers and students from modifying computer
systems, and with good reason. I was in a unique position having
worked for 6 years as the school network/workstation person. So
when I went back full time into the class, I continued to run my lab.
It gave me freedom to try things and there were 20 fewer computers
that the new techs had to worry about.


I also made it a point to keep the
district's network administer in the loop. But not until after I had
something to show. I don't remember asking permission, exactly. : )
I just told my principal we had something cool running we would like
to show him.


That thing was a working LTSP system
built from a half broken, 6 year old 800 mhz box with 256k ram and a
20 gb hard drive computer for a server, an old 4 port hub and a
second box borrowed from our lab for a client. Robert Litz, our
principal was impressed enough to help us get our first server.


The district's network admin was
concerned about there being a maverick DHCP server connected to the
school network, but once we peeled him off the wall, he was willing
to come out and see it for himself. Needless to say, we are very,
very careful not to mix up the 2 Ethernet cables and DHCP back to the
school!


Joey and I did all the work ourselves
including setting up our new server, wiring, and Bios upgrades on
a few recalcitrant computers. We soon had the whole lab on line.
It was very exciting to see the system work the first time.





I started using it the Spring semester
in Web design. At the end of the year we did a presentation for
our administrators and the school's technology committee. It went
over well and the superintendent was impressed by the potential cost
savings and the ability to use machines that were too old to run as
standalone machines. I was hoping that my lab could be used as a
model and that the system could be tried out elsewhere in the
district. It seemed a natural fit in any school library, business
lab or general computer lab would be easy to manage, save a lot of
money, and be virus and kid resistant to boot.





While there is no doubt LTSP would
work well in any school lab and save money, there are some valid
concerns.



  1. There is a learning curve. It
    is very short for the students, teachers typically take longer to
    adjust to computer changes of any kind (Sorry, teachers) The
    district's computer support staff would need the most training,
    especially is they do not have Linux experience.


  2. The school has been running a
    Novell network. Getting Ubuntu clients on a Novell system is tricky
    at best, SUSE linux has a novell client and would be easier to set
    up in a Novell shop.


  3. Each lab would have a separate
    server which would require duplicate user accounts. Or OpenLDAP
    could be set up for the school, but that would duplicate the Novell
    accounts.



[Note: The Novell problem may solve
itself as there is Novell now is a Linux system, and the district may
start using Suse for workstations. In a Windows server environment,
Samba can be used.]


How LTSP works.


Now might be a good time to briefly explain how LTSP works. You
need a server with 2 NICS, a decent amount of memory, an Ethernet
switch, and clients. All the computing is done on the sever. The
clients do not need hard drives, just a minimal amount of memory and
a Ethernet card that can boot through the network via PXE.


[SIDEBAR PXE PXE stands for Preboot
eXecution Environment. It allows computers to get an IP address and
an operating system from a remote server. Almost all modern Ethernet
cards support PXE. You might have to hit a key (F12 commonly) or
change a setting in Bios to enable it,]


[SIDEBAR Other client boot methods.
An alternative way to set up the clients is to download a boot image
from http://www.rom-o-matic.net/
You can download a boot image for a pretty much any bootable device.
I don't know about you, but my floppy drives are all full of chewing
gum and floppies are troublesome even when they do work.]


One side of the server is connected to the outside network and the
other to the clients via a standard Ethernet switch.


The server runs a modified DHCP program which gives each client an
IP address. A second DHCP call points the client to the Linux kernel
located on the server. The client box loads the kernel using TFTP
and proceeds to boot. SSH is used for logging onto workstations.


Server Hardware


The most critical thing on this type of system is to have enough
memory. Once you start swapping to disk, the whole lab slows to a
crawl.


Our current server is a System 76 quad core Xeon with 8 gigs of
RAM. We added a Dlink 3526 switch so we could feed the lab at 1
gigahertz. The clients each have a 100 megahertz connection.


Windows and LTSP


Cad software is one of the few weak areas in Linux. Joey uses
Sketchup for architecture so we keep our Windows (2000) systems
running. We started with an A/B switch so we could run one system or
the other, but as we learned more we were able to run our Windows
machines through our server. This required us to assign a school
network address to our server on the client side and reconfigure DHCP
to serve addresses in the range the rest of the school uses.


[Network Diagrams go here]


We use Clonezilla to clone the Windows systems. This allowed us
to very quickly repair a broken Windows system or make changes to
the whole lab, never a pleasant task if you do it one machine at a
time.


Managing the system.


Administration


LTSP is remarkably easy to administer. It is reliable, has no
problems with virus, and software and upgrades all come from one
place. I once installed a program in the 4 minutes between periods.
There is only one system to configure and maintain. Because we are
using Open Source software, there are no CD's to lose, records to
keep, dongles (a nasty little thingie that is easily lost, costs $200
to replace) or long impossible to type CD keys.


Another advantage is that students do not have individual hard
drives they can bork. (That does not stop them from pulling keys off
the keyboards). Students have control only over their /home folder.


Backups


We back the system stuff up using PartImage to a USB Drive. (We
can restore a system image in under 15 minutes) We have a separate
/home and / partition on our server which keeps the system files
separate from the student's work. This also makes it much easier to
upgrade.


LTSP commands


There are a few LTSP commands you should be aware of.


- ltsp-update-image or ltsp-update-image32 are used to keep the
clients up to date, particularly after you do a system upgrade. You
can also add a new kernal for the clients with ltsp-update-kernals.
I like to have a backup ready before I run these.


If you have made changes to your system's DHCP or IP setup you may
not be log onto a workstation until you run the ltsp-update-sshkeys
command.


Problems


There are only 2 things that cause computer problems. The
computer, or the user. Most times it's the users. Most of the rest
are connection problems. In a high school computer lab most
connection problems are caused by some kid yanking wires out of the
back of the machine..


Most server problems I have had were my fault. (Never experiment
with a server when you need it to work the same day) Or at least
have a reliable backup. Enough said.


Each version of Ubuntu LTSP seems to have a glitch or 2. This
often get resolved automatically as upgrades appear.


We had to install a 32 bit image on our 64 bit server for our
clients to work. This is done with the ltsp-update-image32 command.
The default installation has a 64 bit image. Not a problem if you
are running a 32 bit server.


In a default installation, students have read access to every
folder in /home so they can see (and copy) each other's work.
Otherwise known as an invitation to cheat. I fixed that by editing
/etc/addusers.conf and changing DIR_MODE=0755 to DIR_MODE=0750 to
take away read access for new accounts. For existing accounts, a
quick chmod did the trick.


Our workstations are more than 10 years old and sometimes
experience odd NIC issues.


Firefox can be a memory and bandwidth and attention hog. Students
seamlessly drift away from schoolwork to the web for games and to
watch video. This can slow down the whole lab. I learned enough
IPTABLES to write a script that I can use in a class to keep
students off most of the web in classes where this is a problem.
(Like the one where I had a student watching ESPN videos every day,
net video games, etc.) Top and Htop are very useful to see quickly
where the problem is.


[I'm addressing a problem I think is common to most classes where
students have access to media that is more interesting than the
subject. It's not an LTSP problem, more of a classroom management
problem. Also I have the IPTABLES scripts if they are of interest]


Cost Savings


Deploying a thin client system can be an order of magnitude less
expensive than running conventional commercial systems. This shows
the estimated costs to do a complete hardware upgrade in my lab of 20
computers.













































Windows



Linux/LTSP



Workstations



$15,000 -$25,000



$0.00 - $5,000



Server



$0.00



$2,000.00



Software



$5,000.00 - $60,000



$0.00



Setup time



$3,000.00



$3,000.00



Total Costs



$23,000.00 - $88,000



$5,000 - $10,000







Calculating commercial software costs are a tricky thing. The
chart just shows first costs of purchasing software. In my
experience, that is the easy part. The problem I have run into many
times in my career is what do you do a few years down the road when
you are running out of date software that may no longer be supported
by the company.


For example, I used to teach Autodesk's Autocad but I eventually
gave that up because I was faced with the choice of running the
program with old legal, or newer illegal copies of software or
getting $5000 to upgrade the software and $20,000 to upgrade the
hardware every few years. This has even been an issue with grant
software. Free, but not to upgrade. Holy vendor lock in, Batman!


Keeping current with FOSS software is a non-issue.


Because of the subjects we teach, software costs should be
compared at the higher end. Labs full of Autodesk:Autocad, 3d Studio,
Adobe:Photoshop, Macromedia:DreamWeaver, Adobe:Illistrator,MasterCam
and the rest can cost much more than the hardware.


The lower software numbers would be more accurate for a typical
library or more general lab with Internet, word processing, etc.
Thin clients typically use less electricity and generate less heat
than full blown computers.


Conclusions


In my shop classes, learning a particular machine or tool is never
an end in itself. I feel the same way about software and computers.
Software is a tool, not a thing to be studied as much as a thing to
be used to some greater end. Most students don't need to study “Word
processors”, they need to learn to write. I see no advantage to
using commercial software when good OSS software is available to the
schools as well as the parents and students.


For the past 5 years, The Linux Term Server has proved to be a
cost effective, secure, easy to maintain, and reliable. It has
allowed Joey and I to run the most complex software used in my
district on the oldest computers for very little cost. Beat that.




LTSP Resources


Edubuntu http://edubuntu.org/


LTSP http://www.ltsp.org/


LTSP success stories.
http://sourceforge.net/apps/mediawiki/ltsp/index.php?title=Ltsp_SuccessS...


Rom-o-matic http://www.rom-o-matic.net/






Other Software


Clonezilla http://clonezilla.org/


Quanta http://quanta.sourceforge.net


Ktechlab http://sourceforge.net/projects/ktechlab/Abstract:


Keeping a high school computer lab reasonably up to date and
running smoothly is a never ending job. Hardware improves, new
software is released and very quickly you find your shiny new
computers have turned into wrinkled old boxes you can't give away.


Replacing 20 computers is expensive, a lot of work, and upgrading
software in a Windows environment is also expensive and time
consuming. That is if you can get the district to invest the money.


My colleague, Joe Fedor and I used the Linux Term Sever as a way
to step off that treadmill. We teach all of our courses wholly or
partially in a Linux environment on ten year old hardware. The only
Windows software still being used is Sketchup which does not work on
our system.


We have saved our district's taxpayers roughly $100,000 over the
course of 5 years as compared to upgrading hardware and purchasing or
upgrading the (expensive) software used for our classes.


My Linux background





The first time I saw a computer in a
school was 1982. I seem to remember the whole staff looking at the
thing thinking simultaneously, this is cool and wondering (WTF) is
this thing good for?





My first experience with Linux was
setting up Slackware in my basement. Several years later I built the
server for my school district's first website. Three books, Red
Hat Linux, part of one summer vacation, a junk computer, and it was
up and running. I started keeping a Linux partition on my home
computer. Ubuntu came around and became my primary operating
system.


What we do with Linux





Excellent Open Source software is
available for almost any high school computing task. Open Office
handles writing and spreadsheets in the engineering class. Firefox
gets students on our Moodle site and the rest of the web.





Beyond that, we use Quanta and Gftp for
teaching web design, Ktechlab in Electronics, Gimp and Image Magic in
Digital Photography. The server is able to juggle 20 simultaneous
Gimp sessions. Qcad is adequate for drafting. We have also used it
for some 3d work with Blender.





Web design is the only class where I
spend any time actually teaching Linux. Those students need to be
familiar with file systems and some simple Bash commands. Most
students, even the more technically inclined ones have never worked
on the command line.





The server also runs an Apache web
server with PHP and Mysql to give web design students experience
working on a server . Any files saved in ~/public_html are seen by
the web server and are on our class web site. The web server runs a
Perl script that builds links to all the students who have a
public_html folder, which makes it easy for me to see their work.





Joey has set up a Ubuntu based CAM
(Computer Assisted Manufacturing)system that runs our CNC router.





[The Perl script might be interesting
to teachers running Apache?]






Bringing Linux into the classroom without a
committee.


A.K.A: “It's easier to get
forgiveness than permission”





Most school districts have strict
policies preventing teachers and students from modifying computer
systems, and with good reason. I was in a unique position having
worked for 6 years as the school network/workstation person. So
when I went back full time into the class, I continued to run my lab.
It gave me freedom to try things and there were 20 fewer computers
that the new techs had to worry about.


I also made it a point to keep the
district's network administer in the loop. But not until after I had
something to show. I don't remember asking permission, exactly. : )
I just told my principal we had something cool running we would like
to show him.


That thing was a working LTSP system
built from a half broken, 6 year old 800 mhz box with 256k ram and a
20 gb hard drive computer for a server, an old 4 port hub and a
second box borrowed from our lab for a client. Robert Litz, our
principal was impressed enough to help us get our first server.


The district's network admin was
concerned about there being a maverick DHCP server connected to the
school network, but once we peeled him off the wall, he was willing
to come out and see it for himself. Needless to say, we are very,
very careful not to mix up the 2 Ethernet cables and DHCP back to the
school!


Joey and I did all the work ourselves
including setting up our new server, wiring, and Bios upgrades on
a few recalcitrant computers. We soon had the whole lab on line.
It was very exciting to see the system work the first time.





I started using it the Spring semester
in Web design. At the end of the year we did a live presentation to
our district administrators and some of the school's technology
committee. It went over well and the superintendent was impressed by
the potential cost savings and the ability to use machines that were
too old to run as standalone machines. I was hoping that my lab
could be used as a model and that the system could be tried out
elsewhere in the district. It seemed a natural fit in any school
library, business lab or general computer lab would be easy to
manage, save a lot of money, and be virus and kid resistant to boot.





While there is no doubt LTSP would
work well in any school lab and save large amounts of money, there
are some valid concerns.



  1. There is a learning curve. It
    is very short for the students, teachers typically take longer to
    adjust to computer changes of any kind (Sorry, teachers) The
    district's computer support staff would need the most training,
    especially is they do not have Linux experience.


  2. The school has been running a
    Novell network. Getting Ubuntu clients on a Novell system is tricky
    at best, SUSE linux has a novell client and would be easier to set
    up in a Novell shop.


  3. Each lab would have a separate
    server which would require duplicate user accounts. Or OpenLDAP
    could be set up for the school, but that would duplicate the Novell
    accounts.



[Note: The Novell problem may solve
itself as there is Novell now is a Linux system, and the district may
start using Suse for workstations. In a Windows server environment,
Samba can be used.]


How LTSP works.


Now might be a good time to briefly explain how LTSP works. You
need a server with 2 NICS, a decent amount of memory, an Ethernet
switch, and clients. All the computing is done on the sever. The
clients do not need hard drives, just a minimal amount of memory and
a Ethernet card that can boot through the network via PXE.


[SIDEBAR PXE PXE stands for Preboot
eXecution Environment. It allows computers to get an IP address and
an operating system from a remote server. Almost all modern Ethernet
cards support PXE. You might have to hit a key (F12 commonly) or
change a setting in Bios to enable it,]


[SIDEBAR Other client boot methods.
An alternative way to set up the clients is to download a boot image
from http://www.rom-o-matic.net/
You can download a boot image for a pretty much any bootable device.
I don't know about you, but my floppy drives are all full of chewing
gum and floppies are troublesome even when they do work.]


One side of the server is connected to the outside network and the
other to the clients via a standard Ethernet switch. (We have had
good results with a Dlink 3526)


The server runs a modified DHCP program which gives each client an
IP address. A second DHCP call points the client to the Linux kernel
located on the server. The client box loads the kernel using TFTP
and proceeds to boot. SSH is used for logging onto workstations.


Server Hardware


The most critical thing on this type of system is to have enough
memory. Once you start swapping to disk, the whole lab slows to a
crawl.


Our current server is a System 76 quad core Xeon with 8 gigs of
RAM. We added a Dlink switch so we could feed the lab at 1
gigahertz. The clients each have a 100 megahertz connection.


Windows and LTSP


Cad software is one of the few weak areas in Linux. Joey uses
Sketchup for architecture so we keep our Windows (2000) systems
running. We started with an A/B switch so we could run one system or
the other, but as we learned more we were able to run our Windows
machines through our server. This required us to assign a school
network address to our server on the client side and reconfigure DHCP
to serve addresses in the range the rest of the school uses.


[Network Diagrams go here]


We use Clonezilla to clone the Windows systems. This allowed us
to very quickly repair a broken Windows system or make changes to
the whole lab, never a pleasant task if you do it one machine at a
time.


Managing the system.


Administration


LTSP is remarkably easy to administer. It is reliable, has no
problems with virus, and software and upgrades all come from one
place. I once installed a program in the 4 minutes between periods.
There is only one system to configure and maintain. Because we are
using Open Source software, there are no CD's to lose, records to
keep, dongles (a nasty little thingie that is easily lost, costs $200
to replace) or long impossible to type CD keys.


Another advantage is that students do not have individual hard
drives they can bork. (That does not stop them from pulling keys off
the keyboards). Students have control only over their /home folder.


Backups


We back the system stuff up using PartImage to a USB Drive. (We
can restore a system image in under 15 minutes) We have a separate
/home and / partition on our server which keeps the system files
separate from the student's work. This also makes it much easier to
upgrade.


LTSP commands


There are a few LTSP commands you should be aware of.


- ltsp-update-image or ltsp-update-image32 are used to keep the
clients up to date, particularly after you do a system upgrade. You
can also add a new kernal for the clients with ltsp-update-kernals.
I like to have a backup ready before I run these.


If you have made changes to your system's DHCP or IP setup you may
not be log onto a workstation until you run the ltsp-update-sshkeys
command.


Problems


There are only 2 things that cause computer problems. The
computer, or the user. Most times it's the users. Most of the rest
are connection problems. In a high school computer lab most
connection problems are caused by some kid yanking wires out of the
back of the machine..


Most server problems I have had were my fault. (Never experiment
with a server when you need it to work the same day) Or at least
have a reliable backup. Enough said.


Each version of Ubuntu LTSP seems to have a glitch or 2. This
often get resolved automatically as upgrades appear.


We had to install a 32 bit image on our 64 bit server for our
clients to work. This is done with the ltsp-update-image32 command.
The default installation has a 64 bit image. Not a problem if you
are running a 32 bit server.


In a default installation, students have read access to every
folder in /home so they can see (and copy) each other's work.
Otherwise known as an invitation to cheat. I fixed that by editing
/etc/addusers.conf and changing DIR_MODE=0755 to DIR_MODE=0750 to
take away read access for new accounts. For existing accounts, a
quick chmod did the trick.


Our workstations are more than 10 years old and sometimes
experience odd NIC issues.


Firefox can be a memory and bandwidth and attention hog. Students
seamlessly drift away from schoolwork to the web for games and to
watch video. This can slow down the whole lab. I learned enough
IPTABLES to write a script that I can use in a class to keep
students off most of the web in classes where this is a problem.
(Like the one where I had a student watching ESPN videos every day,
net video games, etc.) Top and Htop are very useful to see quickly
where the problem is.


[I'm addressing a problem I think is common to most classes where
students have access to media that is more interesting than the
subject. It's not an LTSP problem, more of a classroom management
problem. Also I have the IPTABLES scripts if they are of interest]


Cost Savings


Deploying a thin client system can be an order of magnitude less
expensive than running conventional commercial systems. This shows
the estimated costs to do a complete hardware upgrade in my lab of 20
computers.













































Windows



Linux/LTSP



Workstations



$15,000 -$25,000



$0.00 - $5,000



Server



$0.00



$2,000.00



Software



$5,000.00 - $50,000



$0.00



Setup time



$3,000.00



$3,000.00



Total Costs



$23,000.00 - $78,000



$5,000 - $10,000







Calculating commercial software costs are a tricky thing. The
chart just shows first costs of purchasing software. In my
experience, that is the easy part. The problem I have run into many
times in my career is what do you do a few years down the road when
you are running out of date software that may no longer be supported
by the company.


For example, I used to teach Autocad but I eventually gave that up
because I was faced with the choice of running the program with old
legal, or newer illegal copies of software or getting $5000 to
upgrade the software and $20,000 to upgrade the hardware every few
years. This has even been an issue with grant software. Free, but
not to upgrade. Holy vendor lock in, Batman!


Keeping current with FOSS software is a non-issue.


Because of the subjects we teach, software costs should be
compared at the high end. The lower software numbers would be more
accurate for a typical library or more general lab with Internet,
word processing, etc. Thin clients typically use less electricity
and generate less heat than full blown computers.


Conclusions


In my shop classes, learning a particular machine or tool is never
an end in itself. I feel the same way about software and computers.
Software is a tool, not a thing to be studied as much as a thing to
be used to some greater end. Most students don't need to study “Word
processors”, they need to learn to write. I see no advantage to
using commercial software when good OSS software is available to the
schools as well as the parents and students.


For the past 5 years, The Linux Term Server has proved to be a
cost effective, secure, easy to maintain, and reliable. It has
allowed Joey and I to run the most complex software used in my
district on the oldest computers for very little cost. Beat that.




LTSP Resources


Edubuntu http://edubuntu.org/


LTSP http://www.ltsp.org/


LTSP success stories.
http://sourceforge.net/apps/mediawiki/ltsp/index.php?title=Ltsp_SuccessS...


Rom-o-matic http://www.rom-o-matic.net/






Gimp http://gimp.org


ImageMagic http://www.imagemagick.org/script/index.php


Qcad http://www.qcad.org/


Blender http://blender.org