无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: ljycslg
打印 上一主题 下一主题

[原创] 在PXE服务器上部署ipxe的HTTP、FTP启动,体验极速传输(更新FTP)

    [复制链接]
91#
发表于 2013-8-2 08:49:38 | 只看该作者
楼主你好,我这里的测试结果是HTTP明显比FTP还要快,我这里用的是2k3中的IIS的FTP,http用的是楼主提供的绿色WEB,这会是什么原因,理论上说FTP应该比HTTP要快!!!!!
回复

使用道具 举报

92#
发表于 2013-8-2 15:42:57 | 只看该作者
85楼的thttht朋友提供的HOME FTP服务端,经过测试,全千兆的环境下,客户机下载的速度有5~7MB/s,百兆环境未测试。IIS自带的FTP还没条件测试。

全千兆环境下的HTTP速度测试,一直在20~30MB/s之间,稳定状态的传输速度是23MB/s;

FTP速度测试,基本上和HTTP的差不多,但稳定状态的传输速度在24MB/s,比HTTP稍微快一点点。


测试用的FTP服务端用的是Easy FTP Server 3.2,国内著名汉化人吕达嵘的作品,单文件绿色版,很小巧也很好用,只要配置好下载文件的路径就可以直接使用。




EasyFTP.rar (313.05 KB, 下载次数: 99)
回复

使用道具 举报

93#
 楼主| 发表于 2013-8-2 16:05:18 | 只看该作者
本帖最后由 ljycslg 于 2013-8-2 16:13 编辑

编译了一个ipxe专用测速文件
testipxe.rar (346.62 KB, 下载次数: 114)
在网启软件中直接作为启动文件,避免grldr调用干扰
在网启根目录放一个100m整大小的文件测试,文件名称:100m(可用winhex生成,随机填充)

第一行开始测速,第二行切换ftp和http
如果获取不到会提示输入服务器ip


一个sis老网卡测试结果
服务软件:win7自带FTP


服务软件:easywebsvr

点评

按照你的要求,全千兆测试结果: HTTP: 3.8s 4.6s 4.6s FTP: 4.0s 4.3s 4.2s  详情 回复 发表于 2013-8-2 16:16
回复

使用道具 举报

94#
发表于 2013-8-2 16:16:02 | 只看该作者
本帖最后由 北斗 于 2013-8-2 16:23 编辑
ljycslg 发表于 2013-8-2 16:05
编译了一个ipxe专用测速文件

在网启软件中直接作为启动文件,避免grldr调用干扰


按照你的要求

全千兆测试结果:

HTTP服务端:楼主提供的EasyWebServer
3.8s
4.6s
4.6s

FTP服务端:吕达嵘汉化的EasyFTP 3.2
4.0s
4.3s
4.2s
------------------------------
全百兆测试结果:

HTTP服务端:楼主提供的EasyWebServer
9.2s
9.2s
9.2s

FTP服务端:吕达嵘汉化的EasyFTP 3.2
9.4s
9.5s
9.5s

回复

使用道具 举报

95#
发表于 2013-8-2 16:56:36 | 只看该作者
楼上的是以100MB的文件为基础进行的测试,以下以300MB的文件为基础进行测试,毕竟常用的7/8PE的体积都在300MB左右。

300MB+全千兆测试结果:

HTTP服务端:楼主提供的EasyWebServer
12.8s
13.9s
13.8s

300MB+ FTP服务端:吕达嵘汉化的EasyFTP 3.2
12.60s
12.7s
13.2s
------------------------------
全百兆测试结果:

300MB+HTTP服务端:楼主提供的EasyWebServer
27.6s
27.6s
27.7s

300MB+ FTP服务端:吕达嵘汉化的EasyFTP 3.2
28.5s
28.5s
28.5s
回复

使用道具 举报

96#
 楼主| 发表于 2013-8-2 17:12:31 | 只看该作者
本帖最后由 ljycslg 于 2013-8-2 17:40 编辑
北斗 发表于 2013-8-2 16:16
按照你的要求

全千兆测试结果:


看看我的千兆
双机直连测试,服务端realtek8168,客户端broadcom网卡 和realtek8168结果基本相同

百兆http只有15s,ftp还是9s整
怪了,一样的服务端软件,为毛你的http能9s


回复

使用道具 举报

97#
发表于 2013-8-2 17:28:45 | 只看该作者
本帖最后由 thttht 于 2013-8-2 17:38 编辑

以100MB的文件为基础进行的测试
全百兆测试结果:
HTTP服务端:楼主提供的EasyWebServer
8.6s
10.1s
9.6s
FTP服务端:吕达嵘汉化的EasyFTP 3.2
11.1s
10.3s
12.5s
FTP服务端:Home FTP Server V1.4.5.89汉化版.rar
25.5s
23.0s
30.2s
这个软件还是不要用了,这速度差的太离谱了!!!FTP服务端软件对速度的确也有影响啊!

不过我这里测试多次每次的结果也不一样,估计还和局域网络内的负载情况有关吧!






回复

使用道具 举报

98#
 楼主| 发表于 2013-8-2 17:32:51 | 只看该作者
thttht 发表于 2013-8-2 17:28
以100MB的文件为基础进行的测试
全百兆测试结果:
HTTP服务端:楼主提供的EasyWebServer

看来我的百兆http有问题啊,死活只有14-15s
回复

使用道具 举报

99#
发表于 2013-8-2 17:51:02 | 只看该作者
兄弟的双机直联有些类似理想的网络环境,企业局域网都还是要经过1级或者多级交换机的转发的,这对速度是有损耗的。另外不同的网卡,不同的操作系统,搭配不同的网卡驱动,不同的硬件之间的兼容性,都对网络传输的速度有不小的影响,这个我在前面提到过。

不知道兄弟有没有测试过无盘系统,比如网众、锐起之类的,单单就客户机或服务器的网卡驱动来说,就足以影响客户机启动速度,当然其它影响速度的因素也还有很多。

我前面测试的千兆和百兆时,服务器的网卡都是瑞昱的8111F,我把服务器网卡换成BCM 5721,结果就大不同了:

全千兆,100MB大小文件,服务端软件还是前面的一样
HTTP:
1.5s
2.2s
1.5s

FTP:
2.3s
2.9s
2.3s

服务器只换了个网卡,结果就大不同了。



另外我的百兆网卡只有9s,也许是因为服务器的网卡和客户机的网卡之间都相互很恩爱,不会在传送的过程中吵架或者有一方结巴(兼容性),呵呵。兄弟再换个服务器的网卡,再做百兆测试看看会不会好些?
回复

使用道具 举报

100#
发表于 2013-8-2 20:14:45 | 只看该作者
一个奇怪的问题哈:
用ipxe.0当启动文件的时候,调用楼主的menu.ipxe基本上都会卡住,但是如果不用菜单,只用:
#!ipxe
   isset ${ip} || dhcp
   isset ${next-server} || set next-server 192.168.1.3
  kernel http://${next-server}/wimboot                                #来源http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
  initrd http://${next-server}/ISO/winre/bootmgr     bootmgr
  initrd http://${next-server}/ISO/winre/BCD         BCD
  initrd http://${next-server}/ISO/winre/boot.sdi    boot.sdi
  initrd http://${next-server}/ISO/winre/winre.wim   boot.wim
  boot

却可以启动……
回复

使用道具 举报

101#
 楼主| 发表于 2013-8-2 20:40:30 | 只看该作者
本帖最后由 ljycslg 于 2013-8-2 20:42 编辑
fukystone 发表于 2013-8-2 20:14
一个奇怪的问题哈:
用ipxe.0当启动文件的时候,调用楼主的menu.ipxe基本上都会卡住,但是如果不用菜单,只 ...


这问题前面说过了啊
我在详细说下
DHCP协议里有这个next-server参数,标准的dhcp服务中可以设置,客户端获取ip的同时也会获得这个地址
然后从这个地址启动,但是一般路由器中不支持设置这个参数,这个参数是空值
路由器比电脑反应快,ipxe的dhcp会率先从路由器获得ip,这样得不到服务地址就卡住了
如果脚本中指定next-server为固定ip就没这个问题

点评

不是的。 都使用了dhcp,都使用了next-server参数。 区别在于,如果用你首页那个菜单,就会死掉 如果把那个menu.ipxe中其他的选项全部删掉,只保留我100楼那个内容,就可以启动…… 而且仅限于wimboot,我测试调  详情 回复 发表于 2013-8-2 20:45
回复

使用道具 举报

102#
发表于 2013-8-2 20:45:34 | 只看该作者
ljycslg 发表于 2013-8-2 20:40
这问题前面说过了啊
我在详细说下
DHCP协议里有这个next-server参数,标准的dhcp服务中可以设置,客户 ...

不是的。
都使用了dhcp,都使用了next-server参数。
区别在于,如果用你首页那个菜单,就会死掉
如果把那个menu.ipxe中其他的选项全部删掉,只保留我100楼那个内容,就可以启动……
而且仅限于wimboot,我测试调用iso文件是没问题的
回复

使用道具 举报

103#
 楼主| 发表于 2013-8-2 21:05:00 | 只看该作者
fukystone 发表于 2013-8-2 20:45
不是的。
都使用了dhcp,都使用了next-server参数。
区别在于,如果用你首页那个菜单,就会死掉

卡在哪里?IPXE.KRN会不会卡?

点评

直接卡在wimboot那句,找不到文件 ipxe.krn正常的,包括ipxe.ftp也正常。 其实调用iso也正常的,就是wimboot不行,很奇怪的,哈哈。 你用那个菜单可以正常调用win8pe的wim吗?  详情 回复 发表于 2013-8-2 21:10
回复

使用道具 举报

104#
发表于 2013-8-2 21:10:16 | 只看该作者
ljycslg 发表于 2013-8-2 21:05
卡在哪里?IPXE.KRN会不会卡?

直接卡在wimboot那句,找不到文件
ipxe.krn正常的,包括ipxe.ftp也正常。
其实调用iso也正常的,就是wimboot不行,很奇怪的,哈哈。
你用那个菜单可以正常调用win8pe的wim吗?
回复

使用道具 举报

105#
 楼主| 发表于 2013-8-2 21:25:36 | 只看该作者
fukystone 发表于 2013-8-2 21:10
直接卡在wimboot那句,找不到文件
ipxe.krn正常的,包括ipxe.ftp也正常。
其实调用iso也正常的,就是wi ...

虚拟机上测试了下没有问题
回复

使用道具 举报

106#
发表于 2013-8-3 15:57:36 | 只看该作者
北斗 发表于 2013-8-1 17:18
这个有iSCSI,但做无盘网吧还是考虑网众、锐起什么的吧,毕竟他们是专业的无盘。

哦,谢谢指定。。
回复

使用道具 举报

107#
 楼主| 发表于 2013-8-3 19:25:34 | 只看该作者
ipxe还能驱动无线网卡然后启动,不过支持的网卡不多
atheos支持程度较好,大部分能识别,还有Realtek 818x的几个型号
我正好有块ar5008,经测试可以从无线启动
几个无线命令:
iwstat    列出识别到的无线网卡
iwlist    扫描搜索无线信号并列出
set net1/ssid    设置无线SSID
set net1/key XXX   设置无线密码
dhcp net1    尝试连接并获得ip
autoboot net1  无线PXE启动

点评

标记下,暂时没有条件实验  详情 回复 发表于 2013-8-4 01:48
一直以来都希望客户机的无线网卡能够PXE启动,那样就省了很多事了。 Atheros的网卡一直以来都很少用到,5008内置了PXE启动代码吗?一般的无线网卡研发的时候根本就没有PXE启动的概念。  详情 回复 发表于 2013-8-3 20:22
回复

使用道具 举报

108#
发表于 2013-8-3 20:22:35 | 只看该作者
ljycslg 发表于 2013-8-3 19:25
ipxe还能驱动无线网卡然后启动,不过支持的网卡不多
atheos支持程度较好,大部分能识别,还有Realtek 818x ...

一直以来都希望客户机的无线网卡能够PXE启动,那样就省了很多事了。
Atheros的网卡一直以来都很少用到,5008内置了PXE启动代码吗?一般的无线网卡研发的时候根本就没有PXE启动的概念。
回复

使用道具 举报

109#
 楼主| 发表于 2013-8-3 20:59:38 | 只看该作者
北斗 发表于 2013-8-3 20:22
一直以来都希望客户机的无线网卡能够PXE启动,那样就省了很多事了。
Atheros的网卡一直以来都很少用到, ...

准确的说无线网卡没有有线网卡那个UNDI通用标准(intel发明PXE时制定的标准API)
iPXE本身有PXE启动代码,只要能有驱动就行,估计这个要厂家的驱动要开源才能做
所以支持的不多
回复

使用道具 举报

110#
发表于 2013-8-4 01:48:53 | 只看该作者
ljycslg 发表于 2013-8-3 19:25
ipxe还能驱动无线网卡然后启动,不过支持的网卡不多
atheos支持程度较好,大部分能识别,还有Realtek 818x ...

标记下,暂时没有条件实验
回复

使用道具 举报

111#
发表于 2013-8-4 09:01:07 | 只看该作者
敢问楼主,IPXE编译平台是怎样的,有没有小巧的平台推荐下载
回复

使用道具 举报

112#
发表于 2013-8-5 08:49:56 | 只看该作者
本帖最后由 rroo 于 2013-8-5 08:57 编辑

为什么用txt修改脚本文件myscript.ipxe,就会出问题,难道要用其它工具来修改这个myscript.ipxe?

原myscript.ipxe内容:
#!ipxe
  #set menu-timeout 8000
   set menu-default 0pe
   isset ${ip} || dhcp
   isset ${next-server} || set next-server 192.168.1.3
:start
  menu iPXE Boot Menu
  item --gap --             --------------------------------- PE --------------------------------
  item winre                BOOT Win7 RE (wimboot)
  item 0pe                  BOOT Pseudo 0PE (iso)
  item TangoPE              BOOT Tango PE (iso)
  item --gap --             -------------------------------- TOOL --------------------------------
  item maxdos               Maxdos Tool
  item memtest              Memtest86
  item --gap --             ---------------------------- Advanced options -----------------------
  item --key c config       Configure settings                                   -- c
  item --key p pxelinux     Load PXELinux menu                                   -- p
  item shell                Drop to iPXE shell
  item reboot               Reboot computer
  item --key x exit         Exit iPXE and continue BIOS boot                     -- x
  choose --timeout ${menu-timeout} --default ${menu-default} selected
  goto ${selected}

:shell
  echo Type 'exit' to get the back to the menu
  shell
  goto start

:failed
  echo Booting failed, dropping to shell
  goto shell

:reboot
  reboot

:exit
  exit

:config
  config
  goto start

:pxelinux
  chain http://${next-server}/pxelinux.0 || goto failed
  goto start

:memtest
  chain http://${next-server}/MAXDOS/memtest.bin || goto failed  #来源http://boot.ipxe.org/memtest.bin
  goto start

:maxdos
  initrd http://${next-server}/MAXDOS/max9.3.ima
  chain http://${next-server}/memdisk || goto failed

:0pe
  initrd http://${next-server}/ISO/0PE.ISO
  chain  http://${next-server}/memdisk iso raw
#chain http://${next-server}/ISO/grub.exe --config-file="map (rd)+1 (0xff);map --hook;chainloader (0xff)"

:TangoPE
  initrd http://${next-server}/ISO/TangoPE_NET.ISO
  chain http://${next-server}/memdisk iso raw

:winre
  kernel http://${next-server}/wimboot                                #来源http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
  initrd http://${next-server}/ISO/winre/bootmgr     bootmgr
  initrd http://${next-server}/ISO/winre/BCD         BCD
  initrd http://${next-server}/ISO/winre/boot.sdi    boot.sdi
  initrd http://${next-server}/ISO/winre/winre.wim   boot.wim
  boot || goto failed
  goto start





修改后的myscript.ipxe内容:

#!ipxe
  #set menu-timeout 8000
   set menu-default 0pe
   isset ${ip} || dhcp
   isset ${next-server} || set next-server 192.168.1.3
:start
  menu iPXE Boot Menu
  item --gap --             --------------------------------- PE --------------------------------
  item winre                BOOT Win7 RE (wimboot)
  item 0pe                  BOOT Pseudo 0PE (iso)
  item TangoPE              BOOT Tango PE (iso)
  item --gap --             -------------------------------- TOOL --------------------------------
  item maxdos               Maxdos Tool
  item memtest              Memtest86
  item --gap --             ---------------------------- Advanced options -----------------------
  item --key c config       Configure settings                                   -- c
  item --key p pxelinux     Load PXELinux menu                                   -- p
  item shell                Drop to iPXE shell
  item reboot               Reboot computer
  item --key x exit         Exit iPXE and continue BIOS boot                     -- x
  choose --timeout ${menu-timeout} --default ${menu-default} selected
  goto ${selected}

:shell
  echo Type 'exit' to get the back to the menu
  shell
  goto start

:failed
  echo Booting failed, dropping to shell
  goto shell

:reboot
  reboot

:exit
  exit

:config
  config
  goto start

:pxelinux
  chain http://${next-server}/pxelinux.0 || goto failed
  goto start

:memtest
  chain http://${next-server}/MAXDOS/memtest.bin || goto failed  #来源http://boot.ipxe.org/memtest.bin
  goto start

:maxdos
  initrd http://${next-server}/MAXDOS/max9.3.ima
  chain http://${next-server}/memdisk || goto failed

:0pe
  initrd http://${next-server}/ISO/0PE.ISO
  chain  http://${next-server}/memdisk iso raw
#chain http://${next-server}/ISO/grub.exe --config-file="map (rd)+1 (0xff);map --hook;chainloader (0xff)"

:TangoPE
  initrd http://${next-server}/ISO/TangoPE_NET.ISO
  chain http://${next-server}/memdisk iso raw

:winre
  kernel http://${next-server}/wimboot
  initrd http://${next-server}/bootmgr     bootmgr
  initrd http://${next-server}/boot/BCD         BCD
  initrd http://${next-server}/boot/boot.sdi    boot.sdi
  initrd http://${next-server}/sources/boot.wim   boot.wim
  boot || goto failed
  goto start
回复

使用道具 举报

113#
 楼主| 发表于 2013-8-5 08:58:33 | 只看该作者
rroo 发表于 2013-8-5 08:49
为什么用txt修改脚本文件myscript.ipxe,就会出问题,难道要用其它工具来修改这个myscript.ipxe?

改成ANSI编码,范例里的中文字复制下来变UTF8了,现改成纯英文再复制就可以了
回复

使用道具 举报

114#
发表于 2013-8-5 10:04:04 | 只看该作者
ljycslg 发表于 2013-8-5 08:58
改成ANSI编码,范例里的中文字复制下来变UTF8了,现改成纯英文再复制就可以了

谢谢ljycslg大元帅.问题解决了.
回复

使用道具 举报

115#
发表于 2013-8-7 09:20:54 | 只看该作者
ftp是不错的,求楼主经常更新编译支持ftp的版本!好像ipxe这个网站更新还是很频繁的!

感谢楼主了!
回复

使用道具 举报

116#
发表于 2013-8-7 20:52:08 | 只看该作者
本帖最后由 北斗 于 2013-8-7 20:57 编辑

用IPXE引导VHD的测试初步完成了,目前得出的结果是iPXE对大容量的VHD无法引导。

1、以下测试都是以HTTP方式传输VHD;
2、VHD1的容量为17MB,格式化为FAT,并写入DOS7启动文件和DOS版DiskGenius;
3、VHD2的容量为1300MB,格式化为FAT32,并写入DOS7启动文件,同时写入一个自己备份过的1200MB GHO和DOS版的GHOST.EXE。
4、G4D的版本:grub4dos-0.4.5c-2013-07-24
5、iPXE版本:楼主提供的HTTP版本(MD5:31E0AA171625D8375CDD2D277E1A880F),楼主提供的IPXE.0 (MD5: DDF607F9FEB29077C14E6EE3D9BEEA45)

测试1:
用hanewin+grldr+iPXE+Grub.exe加载并引导VHD1,一切正常,启动完成后为C:(VHD盘符),DG中可以正常显示本地硬盘。

测试2:
用hanewin+grldr+iPXE+Grub.exe加载并引导VHD2,传输过程正常,但无法启动,iPXE提示:Could not Boot :Error 0x2a818006。

测试3:
用hanewin+grldr加载并引导VHD2,一切正常,启动完成后为C:(VHD盘符),DOS下加载了himem.sys和smartdrv,用GHOST将GHO恢复至本地硬盘也正常,恢复时的速度平均为1000MB/min左右(从内存向硬盘写入,硬盘比较老,希捷7200.9)

测试4:
用hanewin+ipxe.0+menu.ipxe加载并引导VHD2,传输过程正常,但无法启动,iPXE依旧提示:Could not Boot :Error 0x2a818006。

从上述测试来看,iPXE引导大容量的VHD可能是有问题的,自己对iPXE也只是略知一二,也不敢妄下结论,大家也各抒己见,测试并反馈测试结果,也感谢楼主为我们带来iPXE这个好工具。

menu.ipxe中引导VHD的代码段
  1. :
  2. :VHDTEST
  3.   initrd http://${next-server}/VHDTEST.VHD
  4.   chain http://${next-server}/grub.exe  --config-file="map (rd)+1 (0x80);map (hd0) (hd1);map --hook;chainloader /io.sys"
复制代码
回复

使用道具 举报

117#
发表于 2013-8-8 09:22:20 | 只看该作者
北斗 发表于 2013-8-7 20:52
用IPXE引导VHD的测试初步完成了,目前得出的结果是iPXE对大容量的VHD无法引导。

1、以下测试都是以HTTP方 ...

不知道同样的用 memdisk加载引导会是什么情况?
回复

使用道具 举报

118#
发表于 2013-8-8 09:33:27 | 只看该作者
北斗 发表于 2013-8-7 20:52
用IPXE引导VHD的测试初步完成了,目前得出的结果是iPXE对大容量的VHD无法引导。

1、以下测试都是以HTTP方 ...

测试3客户机内存要求多大?好象是内存加载VHD2方式,内存需要超过VHD2大小吗?
回复

使用道具 举报

119#
发表于 2013-8-8 13:30:19 | 只看该作者
thttht 发表于 2013-8-8 09:22
不知道同样的用 memdisk加载引导会是什么情况?

memdisk不太懂,引导vhd时候,它在gurb或者ipxe的菜单中应该怎么写?
回复

使用道具 举报

120#
发表于 2013-8-8 13:31:25 | 只看该作者
2011mking 发表于 2013-8-8 09:33
测试3客户机内存要求多大?好象是内存加载VHD2方式,内存需要超过VHD2大小吗?

测试3中,客户机的内存是4GB,内存大小要大于VHD的体积的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 15:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表