无盘系统

来源:互联网 发布:4g网络优化工程师招聘 编辑:程序博客网 时间:2024/04/30 01:08

最近在做无盘系统开发的一些预研工作,主要研究了一些技术标准和开源项目

无盘系统简单点说就是不通过本地磁盘启动操作系统,而是通过网络服务来实现操作系统的引导。

这里面要解决几个问题:

1、无盘情况下最初的引导文件如何获取?

其实这个已有标准,就是PXE。

PXE是网卡提供的一项服务,可以在操作系统引导之前通过网络获得引导文件。这个大概分为两个步骤:通过dhcp协议获得一个本机的Ip地址和tftp服务器的ip地址,通过tftp协议下载引导文件。

目前可以参考的PXE启动主要有pxelinux,gpxe,ipxe

pxelinux其实就是让网卡的pxe服务下载linux的内核和文件系统到本地内存,再将本地系统的引导权交给linux内核。

2、无盘情况下操作系统引导所需的各项文件如何获取,无盘情况下操作系统启动后如何实现文件访问

大致是这样:

将操作系统对磁盘的访问重新定向为网络访问

a通过iscsi协议或者aoe协议实现

由于iscsi协议和aoe协议是业界标准,所以通用性、可扩展性比较好,可维护性也比较好

b通过自行封装磁盘访问到自定义网络协议实现

自定义的协议提供了更多的灵活性,并且可以加入特有的一些功能,但是开发初期稳定性会比较差


无盘系统关键概念:

dhcp,tftp

目前国内无盘系统主要是通过iscsi接口实现,也有一些厂商自己将磁盘访问二次封装为udp协议,在服务端通过virtualdisk + ndis驱动实现

相关的开源项目有

gpxe        http://etherboot.org

ipxe         http://ipxe.org

sanbootconf

winaoe   http://winaoe.org/

linuxiscsi

openiscsi

iscsitarget

微软的iscsi    initiator

微软的winiscsitarget

国内的无盘软件:

遥志 ccboot ccdisk

深度

网维大师

国外的无盘软件:

starwind starport

目前国内厂商开发的无盘系统多数都依靠微软提供的iscsi initiator和开源软件提供的pxe,没有自己做标准协议的,因此依赖性比较强,一些厂商自己封装磁盘访问为网络协议,这种原创精神值得肯定,但是由于实力有限,产品稳定性、易用性都比较差。自己做不了标准协议,就只能跟着人家屁股后面跑,技术的发展也受到制约。。。