无盘系统
XP无盘系统
XP无盘系统就是采用这种PXE的芯片启动无盘系统的,下面我就给大家介绍一下PXE到底是什么东西。
PXE (Preboot Execution Environment )
以下我要重点说明PXE的步骤了,对于众多的网络公司来说,目前,这个技术足可以让他们眼睛一亮:这个方案是我等苦苦求索了多少年的东西,它的应用范围更广。
重要的不是它如何便宜,而是它的管理如何的方便,性能是如何的爽:较高的价格性能比。
可以断言:这是个巨大的商机!!
4.1环境安装说明
首先应遵循568A或568B标准架设好相应的网络环境,建议选用100MSWITCH及CAT5 非屏蔽双绞线。具体软硬件配置情况如下,也可根据实际情况加以调整。以下介绍以20台学生机、1台服务器、1台教师机为例;终端OS选用Windows98中文第一版,PXE PDK以Build078为例。
硬件配置
服务器要求:
CPU
Intel PentiumⅢ600MHZ
MEMORY
128M PC100 SRAM
HARD DRIVE
IDE or SCSI ,above 8G
CDROM
48X
ETHERNET
10/100M bit PCI Ethernet Adapter
客户机(或叫做终端机,工作站等等)要求:
CPU
Intel Celeron 366MHZ
MEMORY
64M PC100 SRAM
MAINBOARD
DTK PRM 13I E1 (Integrate VideoCard , Sound Card , RTL8139)
4.2电子教室软件需求
Windows NT Server 40中文版(英文版亦可,用户数由实际终端数量决定)
Service Pack 4 以上
Windows 98 中文版
PXE PDK或IntelECRB(ECRB安装方法请参考PDK安装)
Tweak UI for Windows98 (在Windows98安装盘中的Tool\Reskit\PowerToys 目录下)
OFFICE97 及其他应用软件(如AutoCAD、Photoshop、IE55、Office2000等等)
4.3服务器DHCP、PXE配置
1 服务器硬盘至少应含一个足够容量的NTFS分区,以20个学生为例,需有一个大于2080M=16G的NTFS分区,因每一学生需占用80M以上的硬盘空间。(以60个学生为例,则为6080M=48G)
2 NT安装完成后应增加IPX/SPX兼容协议和DHCP服务器,并应设定好TCP/IP的静态IP地址和子网掩码,例如IP地址为19216981,子网掩码为2552552550,主机名为RPLPXESERVER,域名为RPLPXEDOMAIN。
3 DHCP服务器配置方法:首先应增加新域,并马上启用,例如设定范围为192169810=> 192169840, 子网掩码为2552552550,然后增加一个DHCP选项,其ID号为60,名称为ClassID,类型为字符串(非数组类型),将其设为全域类型,数值设为PXEClient。(终端数目若不同,请作适当调整)
4 运行PXE20-PDKEXE,按缺省值安装后重新启动。(以下介绍以Build078为例,ECRB和其他版本同理)
5 若用户有ApiTest1和DosUndi1两文件,则只需将ApiTest1拷到C:\programFiles\Intel\Pxe \Pdk\system\Images\x86pc\undi\ApiTest目录下将Dosundi1拷到C:\programFiles\Intel\ Pxe\Pdk\system\Images\x86pc\undi\DosUndi目录下,并跳过下面的第6步。
6 准备两张DOS622可引导系统盘,其中一张拷入HimemSys,RamDrivesys,MoreCom和FCCom,标记为APITEST,运行NT主菜单中PXEPDK ApiTest Image Creator 将该盘内容产生APITEST1文件另外一张拷入MoreCom,运行NT主菜单中PXEPDK DosUndi Image Creator 将该盘内容产生DOSUNDI1文件系统安装时会提示插入NT安装盘,注意不要选\i386,只输入根目录即可。
7
运行NT主菜单中PXEPDK Configuration ,选择主菜单中的ConfigureproxyDHCP Server,在ClientOptions选项中,可调整BootServer的菜单提示时间,将其设为0,则无菜单提示点击toBootServer Discovery List,将APITEST (65535)和DOSUNDI(3)加入BootServer ,IP地址为服务器IP地址(例如19216981)
8
缺省Boot Server为LocalBoot,学生机用户可按F8选择BootServer,不按F8时,以菜单的第一项作为默认启动项。可依下图所示,先用鼠标右键点中BootServer,选择MoveEntry Up 或MoveEntry Down来改变菜单顺序,将APITEST或DOSUNDI移到第一项来让其启动。(MultiUser为自建Server,用户可不于理会)
4.4服务器用户配置
1 增加一新的全局组,例如为DTKSTUDENT,并为其增加用户LNGUEST(同学生机的安装用户一致),设定其密码同用户名相同(LNGUEST)(可利用提供的SETUSEREXE自动完成)
2 为该全局组增加用户,例如TT1,TT2… TT20,设定其密码与用户名相同使其密码永久有效,并使用户下次登录时不得修改密码(可利用提供的SETUSEREXE自动完成)
3 在NTFS分区上建立一新目录,例如为STUDENTROOT,将其设为共享,共享权限为DTKSTUDENT和管理员完全控制安全性权限为DTKSTUDENT完全控制和管理员完全控制
4.5学生机软件安装;
1 选择任一学生机电脑,接上硬盘,光驱,软驱。
2 选择LoadOptimized Defaults ,装入CMOS缺省值。
3 在IntegratedPeripherals栏中,设置OnBoard Lan Boot ROM 为Disable,将RealtekBootstrap 中断改为第一项,由本机启动。
4 在本机硬盘中安装Windows98简体中文版,并配好网卡,声卡,显卡等设备,注意网卡驱动程序为RealTekRTL8139(A/B/C/8130) PCI Fast Ethernet NIC (NDIS5/Win98 Driver),用户名设为LNGUEST(同服务器用户名一致),用户组设为服务器域名。例如RPLPXEDOMAIN,Windows密码同用户名相同(LNGUEST)。(英文Windows98安装方法相同)
5 在网络协议中增加IPX/SPX和NETBEUI协议,TCP/IP协议不要设为固定IP,而为自动获取增加网络用户,设定登录到相应的WindowsNT域
6 将提供的NETEXE替换原Windows目录下的NETEXE,重新启动电脑后用F8进入DOS状态,可键入NETSTART IPX,若工作正常,说明配置正确。(对于英文Windows98和其他版本可能不需替换,对于Windows98第二版,可参考LiteNet说明,替换第一版的NDISVXD文件)
7 安装Office97、TWeakUI、教学软件及其他应用软件,将Windows登录方式设为Windows网络用户登录,去掉TweakUI的MyComputer中的本地A盘,重新启动后登录上服务器。
8 运行REGEDIT,导出[HKEY_USERS\DEFAULT分支,存为LNGUESTREG文件,将该文件用文本编辑器打开,将其中所有的DEFAULT替换为{%CHN%},并另存到本机Windows目录下,改名为CHNREG。
9 运行LITENET的SETUP程序(或运行Lnecedtkexe),键入NetBIOSServer Name(服务器主机名)和NetBIOSShare Name(服务器共享目录名),例如分别为RPLPXESERVER和STUDENTROOT当出现需Windows98原盘提示时,请键入英文Windows98的路径,例如(\ewin98),重新启动后,插入一空白软盘,按提示将其格式化,注意应带系统,然后选择完全安装,则将本机Windows98环境和数据都传入服务器硬盘中
4.6服务器BootServer配置
1 将上面产生的LiteNet启动盘的ConfigSys中的DEVICE=EMM386EXE语句REMARK,即在其前加REM语句。
2 若用户想减轻网络负担,则请将RANDELAYEXE文件复制到A:\WINBOOT目录下,在A:\WINBOOT\STARTNETBAT中的QUALCNX命令前加入RANDELAY5 60。(随机延时5到60秒)
3 若用户想屏蔽原LiteNet启动信息,则请将DrawCapCom和DrawDotCom复制到A:\WINBOOT目录下,在SETVARSBAT中加入DrawCap语句,在STARTNETBAT中加入DrawDot信息,(参考提供的LiteNet软盘文件),若安装用户名不为LNGUEST,请对A:\WINBOOT目录下的STARTNETBAT中的QUALCNX命令参数作适当调整,全部修改后将该盘插入软驱中。
4 运行PXE目录(例如C:\programFiles\Intel\Pxe\Pdk\system)下的MkImageEXE文件,将产生该软盘的磁盘影象TestBin
5 选择DOSUNDI作为当前BootServer,并将C:\programFiles\Intel\Pxe\Pdk\system\Images\ x86pc\undi\DosUndi目录下的Dosundi1备份,例如改名为Dosundi2,将上面产生的TestBin改名为Dosundi1,复制到该目录
6 在共享目录的Windows子目录下(例如C:\STUDENTROOT\WINDOWS),将USERCMDBAT中的QVMEM的REM语句去掉,在QRestAll命令前增加以下几行(可参考提供的USERCMDBAT文件)
if exist %HOME%\PATCHEDREG gotonotchange
QPATCH C:\WINDOWS\CHNREG %HOME%\PATCHEDREG
regedit %HOME%\PATCHEDREG
:notchange
7 在该Windows目录下,创建NETNAMESDB文件,其为文本方式,格式如下所示:(可参考提供的NetNamesDB文件样本,其中的网卡号在学生机启动时可以得到)
用户名网卡号(MAC地址)
用户名网卡号(MAC地址)
… …
例如某NETNAMESDB文件内容为:
NetNamesDB sample
#NETPC04 00E04C390014
TT1 00E05C390299
TT2 00E05C39007F
TT3 00E05C39029C
TT4 00E04C39001F
TT5 00E05C39029D
8 将共享目录(例如为STUDENTROOT)的安全性权限设为DTKSTUDENT仅读和管理员完全控制,注意应将该目录下所有文件和子目录全部设定
9 在该共享目录下建立TT1,TT2…TT20子目录,并将每一子目录设为共享,共享名设为用户名,例如TT1的共享权限为TT1和管理员完全控制安全性权限为TT1和管理员完全控制,共享名为TT1(可利用提供的SETUSEREXE自动完成)
10 将共享目录的Windows\system子目录下(例如C:\STUDENTROOT\WINDOWS\SYSTEM)的TMMRREM文件作备份,修改该文件安全性属性为DTKSTUDENT和管理员完全控制
4.7PXE终端配置方法;
1 按Del进入学生机电脑的CMOS参数配置
2 选择LoadOptimized Defaults ,装入CMOS缺省值
3 在StandardCMOS栏中,将IDE所连四个设备的Auto选项改为None将A驱的144M选项改为None
4 在AdvancedBIOS栏中,修改FirstBoot Device为Lan,修改BootUp Floppy Seek为Disable
5 在IntegratedPeripherals栏中,设置OnBoard Lan Boot ROM 为Enable
6 保存参数后重新引导,出现按F10菜单时,选择第2项或第3项,利用Int18或Int19作为RealtekBootstrap 中断
7 重新启动后,学生机应提示DHCPMAC ADDR和DHCP的搜寻信息若网络配置正常,则会连上DHCP服务器,并得到分配的IP地址,显示CLIENTIP,MASK,DHCP IP信息,若PXE配置正常,则会DownLoad用户定义的BootServer(APITEST or DOSUNDI),并执行
8 原用来安装LiteNet的学生终端去掉硬盘、软驱、光驱后同上配置,同样可作为PXE终端引导。
此时学生终端就可开机运行了
4.8PXE终端软件增减方法;
1 配好原安装环境,并增加相应的应用软件。
2 将服务器中所有终端目录下所有文件删掉(主要删除USERDAT,SYSTEMDAT和PATCHEDREG文件,可利用提供的SETUSEREXE自动完成)
3 将服务器中的安装好的Windows目录下的DeskTop和StartMenu下所有文件删掉
4 以管理员身份(Administrator)登录上原Windows98系统,重新建立CHNREG,并对注册表作相应调整,可参考上面的详细叙述。
5 运行LiteNet的Qsynch文件,选取IncrementalCopy将新产生文件复制到服务器上。
6 对服务器中的安装好的Windows目录下的USERCMDBAT作相应调整即可。
如何让CentOS服务器磁盘io性能翻倍
这一期我们来看一下有哪些办法可以减少linux下的文件碎片。主要是针对磁盘长期满负荷运转的使用场景(例如http代理服务器);另外有一个小技巧,针对互联网服务器,可以将io性能提升数倍。如果为服务器订制一个专用文件系统,可以完全解决文件碎片的问题,将磁盘io的性能发挥至极限。对于我们的代理服务器,相当于把io性能提升到3-5倍。
在现有文件系统下进行优化linux内核和各个文件系统采用了几个优化方案来提升磁盘访问速度。但这些优化方案需要在我们的服务器设计中进行配合才能得到充分发挥。
文件系统缓存linux内核会将大部分空闲内存交给虚拟文件系统,来作为文件缓存,叫做page cache。在内存不足时,这部分内存会采用lru算法进行淘汰。通过free命令查看内存,显示为cached的部分就是文件缓存了。
如果能找到当前使用场景下,文件被访问的统计特征,针对性的写一个淘汰算法,可以大幅提升文件缓存的命中率。对于http正向代理来说,一个好的淘汰算法可以用1GB内存达到lru算法100GB内存的缓存效果。如果不打算写一个新的淘汰算法,一般不需要在应用层再搭一个文件cache程序来做缓存。
您好,很高兴为您解答。
在现有文件系统下进行优化:
linux内核和各个文件系统采用了几个优化方案来提升磁盘访问速度。但这些优化方案需要在我们的服务器设计中进行配合才能得到充分发挥。
文件系统缓存
linux内核会将大部分空闲内存交给虚拟文件系统,来作为文件缓存,叫做page cache。在内存不足时,这部分内存会采用lru算法进行淘汰。通过free命令查看内存,显示为cached的部分就是文件缓存了。
如何针对性优化:
lru并不是一个优秀淘汰算法,lru最大的优势是普适性好,在各种使用场景下都能起到一定的效果。如果能找到当前使用场景下,文件被访问的统计特征,针 对性的写一个淘汰算法,可以大幅提升文件缓存的命中率。对于http正向代理来说,一个好的淘汰算法可以用1GB内存达到lru算法100GB内存的缓存 效果。如果不打算写一个新的淘汰算法,一般不需要在应用层再搭一个文件cache程序来做缓存。
最小分配:
当文件扩大,需要分配磁盘空间时,大部分文件系统不会仅仅只分配当前需要的磁盘空间,而是会多分配一些磁盘空间。这样下次文件扩大时就可以使用已经分配好的空间,而不会频繁的去分配新空间。
例如ext3下,每次分配磁盘空间时,最小是分配8KB。
最小分配的副作用是会浪费一些磁盘空间(分配了但是又没有使用)
如何针对性优化:
我们在reiserfs下将最小分配空间从8KB改大到128K后提升了30%的磁盘io性能。如果当前使用场景下小文件很多,把预分配改大就会浪费很多 磁盘空间,所以这个数值要根据当前使用场景来设定。似乎要直接改源代码才能生效,不太记得了,09年的时候改的,有兴趣的同学自己google吧。
io访问调度:
在同时有多个io访问时,linux内核可以对这些io访问按LBA进行合并和排序,这样磁头在移动时,可以“顺便”读出移动过程中的数据。
SATA等磁盘甚至在磁盘中内置了io排序来进一步提升性能,一般需要在主板中进行配置才能启动磁盘内置io排序。linux的io排序是根据LBA进行的,但LBA是一个一维线性地址,无法完全反应出二维的圆形磁盘,所以磁盘的内置io排序能达到更好的效果。
如何针对性优化:
io访问调度能大幅提升io性能,前提是应用层同时发起了足够的io访问供linux去调度。
怎样才能从应用层同时向内核发起多个io访问呢?
方案一是用aio_read异步发起多个文件读写请求。
方案二是使用磁盘线程池同时发起多个文件读写请求。
对我们的http正向代理来说,采用16个线程读写磁盘可以将性能提升到25倍左右。具体开多少个线程/进程,可以根据具体使用场景来决定。
小提示:
将文件句柄设置为非阻塞时,进程还是会睡眠等待磁盘io,非阻塞对于文件读写是不生效的。在正常情况下,读文件只会引入十几毫秒睡眠,所以不太明显;而在磁盘io极大时,读文件会引起十秒以上的进程睡眠。
预读取:
linux内核可以预测我们“将来的读请求”并提前将数据读取出来。通过预读取可以减少读io的次数,并且减小读请求的延时。
如何针对性优化:
预读取的预测准确率是有限的,与其依赖预读取,不如我们直接开一个较大的缓冲区,一次性将文件读出来再慢慢处理;尽量不要开一个较小的缓冲区,循环读文件/处理文件。
虽然说“预读取”和“延迟分配”能起到类似的作用,但是我们自己扩大读写缓冲区效果要更好。
延迟分配:
当文件扩大,需要分配磁盘空间时,可以不立即进行分配,而是暂存在内存中,将多次分配磁盘空间的请求聚合在一起后,再进行一次性分配。
延迟分配的目的也是减少分配次数,从而减少文件不连续。
延迟分配的副作用有几个:
1、如果应用程序每次写数据后都通过fsync等接口进行强制刷新,延迟分配将不起作用
2、延迟分配有可能间歇性引入一个较大的磁盘IO延时(因为要一次性向磁盘写入较多数据)
只有少数新文件系统支持这个特性
如何针对性优化:
如果不是对安全性(是否允许丢失)要求极高的数据,可以直接在应用程序里缓存起来,积累到一定大小再写入,效果比文件系统的延迟分配更好。如果对安全性要求极高,建议经常用fsync强制刷新。
在线磁盘碎片整理:
Ext4提供了一款碎片整理工具,叫e4defrag,主要包含三个功能:
1、让每个文件连续存储
2、尽量让每个目录下的文件连续存储
3、通过整理空闲磁盘空间,让接下来的分配更不容易产生碎片
如何针对性优化:
“让每个目录下的文件连续存储”是一个极有价值的功能。
传统的做法是通过拼接来将这10张合并到一张大图中,再由前端将大图切成10张小图。
有了e4defrag后,可以将需连续访问的文件放在同一个文件夹下,再定期使用e4defrag进行磁盘整理。
实现自己的文件系统:
在大部分服务器上,不需要支持“修改文件”这个功能。一旦文件创建好,就不能再做修改操作,只支持读取和删除。在这个前提下,我们可以消灭所有文件碎片,把磁盘io效率提升到理论极限。
有一个公式可以衡量磁盘io的效率:
磁盘利用率 = 传输时间/(平均寻道时间+传输时间)
如若满意,请点击回答右侧采纳答案,如若还有问题,请点击追问
~ O(∩_∩)O~
0条评论