|
nbsp; 在我国,无论是中学还是大学,绝大部分计算机实验室使用的操作系统都是微软的Windows。这导致了一系列的问题。首先,有些实验室使用的软件没有购买相应的软件许可。其次,随着微软不断升级自己的操作系统,实验室也不得不升级系统,甚至更换硬件。对于预算本来就有限的学校实验室来说,这是一个非常沉重的负担。此外,社会上的用人单位经常抱怨,相当一部分在学校里接受过计算机教育的学生除了点击鼠标,进行一些简单的操作以外,对计算机几乎一无所知。
如何解决上述问题,加拿大Sisler中学的做法也许可以为我们提供一些有益的经验。Sisler中学采用了Linux终端服务器(Linux Terminal Server)来搭建计算机实验室,进行相关教学。
Sisler是加拿大Manitoba省最大的中学,该校约有1600名学生,120名教职员工。学校为学生提供了很多不同层次的计算机课程,其中包括计算机程序设计、办公技巧及一些职高科目,比如个人计算机故障检测、网络和高级操作系统知识等。2002年,由于收到来自CAAST(加拿大反软件盗版联盟)的信件,学校不得不花费了5万美元,用于保证学校所使用的软件都具有必须的许可。
此后,学校决定重新设计计算机实验室。新实验室将不再使用微软的Windows系统,教授的所有内容也都使用开放源码软件来完成。刚开始,实验室使用了一个CPU为Athlon 1GHz、内存为1.5GB的机器作为终端服务器,24台IBM 300PL(CPU为奔腾200MHz)作为工作站,使用的软件是Linux Terminal Server Project 2.1,缺省的桌面管理器是Icewin。该实验室搭建完成后,工作一直非常正常,没有出现过什么问题。
使用了上述实验室一年之后,学校决定对Linux终端服务器进行升级,花费约4000美元新建了一台配置为两个Xeon CPU(2.4GHz)、4GB内存和两个Ultra 320 SCSI硬盘的服务器。
Sisler学校计算机实验室的负责人是C T Leung,他也是该实验室的创建者和维护人。他自从上世纪90年代中期就在大学和中学从事Linux教学工作。为了实现不同的目的,他架设过很多Linux服务器,包括Web服务器、Java/C++编程、路由器,以及HA(高可用性)集群和Beowulf集群。
为什么使用Linux终端服务器
C T Leung认为,虽然在桌面机上使用Windows有很多优点,但作为老师,至少应该让学生知道除了Windows以外,实际中还有其它的可用方案,并且这种方案赋予了用户自由选择的权力。事实上,就开放源码和Linux而言,最重要的一点就是可以自由地访问它们的源代码,自由地加入到社区中去改进它,自由地重新发行,并且由此开发出更好的软件。
公立中学经常面临的问题是资金不足,并且考虑到使用的是纳税人的钱,学校有责任有效地利用有限的资金。通过Linux终端服务器,使用那些老旧的瘦终端机完全可达到与使用微软Windows一样的教学效果。建设实验室节省下来的钱,学校可以将其用于其它方面的建设。
与微软的Windows网络不同,Linux终端服务器实际上是一个中央服务器系统,该系统执行所有来自工作站用户的进程。
所有工作站或瘦终端都没有硬盘,运行在其上的Linux和X系统都是从服务器上下载的。所有其它的应用程序,比如Netscape和OpenOffice.org则运行在中央服务器之上。安装或升级某一个软件只需在服务器上进行,一旦服务器完成这一过程,网络中所有用户都可以使用到最新的软件版本。比如,当向学生讲授Java编程时,需要安装Java开发工具包(JDK)。一旦在服务器上安装完成,每个人都可以在终端服务器网络中使用该工具进行开发。作为老师,则完全可以通过一个终端对所有学生的活动进行监督。通过运行一个简单的Shell脚本,系统管理员或老师就可以中止某个学生的活动,并使其立即退出登录。整个管理过程无需添加任何额外的硬件。
对于硬件服务和维护而言,工作站没有硬盘是非常大的优势。这样,在安装好整个Linux终端服务器后,老师不用担心任何一个硬盘会出现问题,而维护学生文件系统的工作也可在服务器上完成。使用一个简单的命令或Shell脚本,老师可以非常轻松地添加或删除文件中任何学生的账号。
对于那些想要对计算机进行深入学习的学生来说,在Linux/Unix环境中学习显然是一个非常不错的开始,这将为他们进一步的深造打下牢固的基础。
硬件的选择
两年前,该学校的Linux终端服务器使用的是一台配置为Athlon 1.2GHz CPU、1.5GB内存和一个IDE 40GB硬盘的服务器。终端使用的则是一些老的奔腾机,主频从133MHz至350MHz不等,内存一般为32MB以上。为了保证网络速度,使用了三个100Mb的24端口交换机。这个系统在有15台终端机同时运行时表现还可以,但当连接的终端数超过15台时,性能就会受到影响。由于学校中有些班级的人数达到30名,所以学校决定构建更加强大的服务器来运行Linux终端服务器网络。
在谈到CPU的选择时,Leung说:“2003年9月,AMD公司的Opteron 24x系列与Intel公司的Xeon价格相当。但由于Opteron是64位CPU,其价格与32位Xeon相当,如果考虑到向64位平台的升级,那么Opteron更具有吸引力。然而,现在使用的Linux发行版中,只有SuSE支持64位,并且大部分其它应用程序,比如OpenOffice.org,仍然运行于32位平台之上。在最后的测试中,发现Xeon在大多数32位测试中表现要比Opteron好,所以学校最终选择了Xeon。由于采用了超线程技术,让人感觉这个双Xeon CPU的系统的确物超所值。”
下面是新的Linux终端服务器采用的具体配置: ◆ Intel SE7501BR2 Dual Xeon主板(集成有Ultra 320 SCSI); ◆ 两个Xeon 2.4 GHz CPU; ◆ 4GB DDR内存; ◆ 两个36GB Seagate Ultra320硬盘。 上面的设置再加上一个特殊的电源和服务器机箱,共花费4500美元。
对于Linux终端项目实验室的建设,MCCS(Manitoba Chapter of Computers for Schools)给予了非常大的支持。实验室得到了36台MCCS免费赠送的IBM 300PL瘦终端机作为客户机,以及一台100Mb Intel 510P 24端口交换机。IBM 300PL内建了显卡、声卡和100Mb网卡。虽然这些旧机器无法运行微软的Windows操作系统,但作为实验室里使用的标准工作站,它们却非常完美。机器内建的网卡支持PXE启动,一些比较老的BIOS需要进行升级,但升级程序可以很方便地从IBM的站点上下载,每台机器的CPU都是固定在主板上的奔腾200MHz。
因为考虑到要为每个工作站分配100MB的内存,所以Leung为服务器安装了4GB的内存(这是32位处理器可以支持的最大内存数)。很显然,如果有人想创建一个工作站数量超过30的LTSP,就不应使用32位的处理器,而应该使用64位的处理器(比如Opteron)。
虽然SCSI相对来说比较贵(其价格大约是IDE硬盘的两倍),但是它提供的优越性能正是实验室所需要的。在新的服务器上,所有的工作站(目前是26个)都可以流畅地运行KDE、OpenOffice.org、Web浏览器和其它应用程序。
使用上述硬件架设起来的实验室,其最终的效果是,一台硬件配置为32MB内存、内建2MB S3显卡和声卡、没有硬盘的工作站,其性能相当于运行Windows的一台配置为2GHz CPU、256MB内存的PC机。
使用的软件
Linux终端服务器的软件有很多选择。最简单的办法就是从K-12 Linux项目站点http://www.k12ltsp.org/下载,该站点提供相应的ISO映像文件下载。下载完成后,使用md5sum来检查是否存在错误,然后将其刻录到光盘上。
如果用户已经有了自己的Linux发行版光盘,可以从Linux Terminal Server Project站点http://www.ltsp.org/只下载终端服务器组件。LTSP是一个通用的Linux终端服务器项目。考虑到各种因素,服务器端所使用的操作系统是Red Hat 8.0。
配置和定制
几年以前,Linux的安装还是一件比较困难的事情,最主要的困难就是设备驱动程序的安装、硬盘的分区和TCP/IP设置。现在,大部分Linux发行版,包括基于Red Hat的LTSP都非常容易安装。安装过程中,这些发行版都提供了GUI的图形界面,大部分初学者可以采用缺省选项、自动分区来成功安装Linux。
本例中交换分区的大小是3GB,/boot分区的大小是250MB,共使用了两个硬盘,其中一个作为镜像硬盘,以备在出现紧急情况时可以保证系统正常运行。通过一个简单的脚本,所有用户的数据每天都会被备份到镜像硬盘上。脚本文件的内容如下,保存位置是/etc/cron.daily:
#!/bin/sh
# to backup /home user data to the 2nd SCSI drive
date
echo Daily backup /home and /etc to 2nd SCSI ...
case `date +%a` in
Mon)
echo "No backup on Monday..."
;;
Tue)
cp -a -v /home /backup
cp -a -v /etc /backup
echo "Monday backup completed successfully..."
;;
Wed)
cp -a -v /home /backup
cp -a -v /etc /backup
echo "Tuesday backup completed successfully..."
;;
Thu)
cp -a -v /home /backup
cp -a -v /etc /backup
echo "Wednesday backup completed..."
;;
Fri)
cp -a -v /home /backup
cp -a -v /etc /backup
echo "Thursday backup completed..."
;;
Sat)
cp -a -v /home /backup
cp -a -v /etc /backup
echo "Friday backup completed..."
;;
Sun)
echo "No backup on Sunday..."
;;
esac
date
在dhcpd.conf文件的设置中,实验室使用的IP是192.168.1.253,那是因为192.168.1.254依然还在被老系统所使用。192.168.1.1到192.168.1.20被保留用于其它Linux服务器(如Web服务器、路由器和打印机),因此,动态IP地址的范围为192.168.1.21至192.168.1.252。
启动选项
工作站的启动选项由服务器上/etc/X11/xdm目录下的文件来控制。比如更改启动画面,将其改为学校自己的画面(替代K12 LTSP缺省的JPEG图像文件),并且在X系统启动时将欢迎信息换成学校的信息,都可以通过更改/etc/X11/xdm/kdmrc文件来实现。下面是更改后的内容:
# The image to show when LogoArea=Logo. Default is kdelogo.png
LogoPixmap=/opt/ltsp/templates/k12linux/sisler.jpg
#GreetString=K Desktop Environment (%n)
GreetString=Welcome to Sisler Linux/Xeon Terminal Server - Rm 91
当然更改后还应该将自己的JPEG文件放在服务器上。
此外,在/etc/X11/xdm/TakeConsole文件中包含了一些用户从工作站退出登录后的清理工作。为了做到这一点,将执行一个脚本/usr/bin/suicide,该脚本将会中止退出登录用户的进程。
[root@xeon2 xdm]# cat TakeConsole
#!/bin/sh
# Reassign ownership of the console to root, this should disallow
# assignment of console output to any random user's xterm
# $XConsortium: TakeConsole,v 1.2 93/09/28 14:30:29 gildea Exp $
chmod 622 /dev/console
chown root /dev/console
#/usr/X11R6/bin/sessreg -d -w "/var/log/wtmp" -u "/var/run/utmp" \
# -x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER
exec /usr/bin/suicide
$xmessage -timeout 10 -default okay -center "$0: sessreg failed."
exit 1
[root@xeon2 xdm]# cat /usr/bin/suicide
#!/bin/sh
# Suicide!
if [ $(whoami) != "root" ]
then
me=$(whoami)
for i in $(pgrep -u $me)
do
kill -9 $i
done
else
clear && echo no suicide for root!!!
fi
选择手工备份
事实上,使用Ultra 320 SCSI端口完全可以连接多达15个硬盘。但是,由于SCSI的价格比较昂贵,实验室的预算只能够购买两个硬盘。在实验室的设计中,第二个硬盘的用途是进行备份。
在进行备份的过程中,实验室并没有选择RAID1,而是选择了手工备份,这主要是基于性能的考虑。如果使用RAID1,那么每次对硬盘的写操作都会触发镜像硬盘的写操作,而花费更多的时间。因为系统是用于教学目的,系统的用户都是学生,虽然学生的数据也比较重要,但其重要程度毕竟不同于商业数据。所以,与RAID1中每写一次硬盘都要触发另外一次写操作的方法不同,实验室采用的方法是通过一个简单的脚本,将其放在/etc/cron.daily中,通过该脚本将所有用户的数据在上午1点备份到第二个硬盘中。
额外添加的两个Linux服务器
为了不使Linux终端服务器负载过重而出现故障,实验室设置了另外两个Linux服务器:一个运行Apache,另一个运行路由器和Squid。在MCCS的支持下,实验室以每个75美元的价格得到了两个非常旧的服务器,其中一个是配置有两个Pentium Pro CPU的戴尔服务器,另外一个是IBM的Netfinity服务器。得到这两个服务器后,实验室为路由服务器装上了512MB内存,通过几个iptables命令,把所有的Web访问都重新路由到Squid服务器上,而无需对学生的工作站进行任何更改。脚本内容如下:
[root@router root]# cat /sbin/transquid.sh
#!/bin/sh
# for basic NAT function + transparent proxy using squid
# add this line to block all ip packets to/from chaos
/sbin/route add -host chaos.wsd1.org reject
IPTABLES="/sbin/iptables" # iptables binary
INTIF="eth0" # internal interface
EXTIF="eth1" # external interface
# initialization of chains and rules
$IPTABLES -F
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F -t nat
$IPTABLES -X # delete any chains existing
# setting default rules for each flow (in this case, accept everything)
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
# adding masquerading function in [1] [2] 下一页
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-1-2 20:31:12 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|