固件外设设备树定制化生成技术

(整期优先)网络出版时间:2021-12-21
/ 2

固件外设设备树定制化生成技术

张莉丽

(湖南体育职业学院)


【摘要】以服务器为核心的计算机网络学生机房,服务器的好坏、运算速度快慢,直接影响了学生机器的使用。服务器升级的成本就成为了制约学生机房的瓶颈。本文提出的固件外设设备树定制化生成技术能够在单一硬件上运行多个操作系统实例,可以充分利用宝贵的服务器资源,提高服务器的资源利用率,使其更加灵活可配置。从而有效解决现有学生机房的高投入低产出的发展瓶颈。

【关键词】服务器 外设 设备树



服务器是指网络中能对其它机器提供服务的计算机系统,用来存储数据、共享资源、搭建网页服务等等。学生机房的组成就是以服务器为核心的计算机网络系统,服务器的好坏、运算速度快慢,直接影响了学生机器的使用。目前,学生机房建设中,服务器的投入占成本的绝大多数比重,但是受摩尔定律影响,当初高价采购的服务器的性能很快就无法满足发展需要,服务器升级的成本就成为了制约学生机房良好发展的瓶颈。本文提出的固件外设设备树定制化生成技术能够在单一硬件上运行多个操作系统实例,可以充分利用宝贵的服务器资源,提高服务器的资源利用率,使其更加灵活可配置。从而有效解决现有学生机房的高投入低产出的发展瓶颈。

1 设备树定制

设备通过一组有层次的相互连接的总线而联结到一个主机上。Openboot描述了相互连接的总线和代表树节点的设备。这样形成的树叫做设备树。主机的主要物理地址总线节点表示树的根结点。设备树是Openboot的重要组成部分,它模拟体系结构中的多层总线布局的I/O框架。


1.1 设备树的定制

设备的定制通过MD对设备树中的设备进行匹配实现。基本思想如图1所示:

61c197f8a2b46_html_2771b3b4ffd4c9b3.gif

图1 设备树定制流程

对于不匹配的设备,系统会进行裁剪。裁剪的设备节点分为两类:

(1) 设备叶节点,对当前设备进行了裁剪

(2) 桥设备节点,对桥设备及桥下的所有设备进行了裁剪

对于类型2,当删除根节点时,连接到它的子节点设备均不工作,不必再对子设备节点进行裁剪。因此,对于以上两种裁剪方式,均可通过删除当前设备达到对设备树裁剪的目的。

具体对哪些设备进行裁剪则是通过设备树与MD进行匹配实现的。大致流程如下:

(1) 从根节点开始

(2) 根据pci规范,从reg属性中得到当前节点的设备号和功能号

(3) 从MD节点中得到节点的设备号和功能号

(4) 寻找是否存在匹配设备号和功能号的MD节点

(5) 不存在则删除此设备节点,存在则保留设备

(6) 对当前节点的每个子节点,跳转到第二步

1.1.1 从reg属性中得到当前节点的设备号和功能号

通过调用方法dev-get-property可以得到设备节点的cfg数据结构,里面包含设备的设备号和功能号。

1.1.2 从MD节点中得到节点的设备号和功能号

在MD数据结构中,方法md-find-prop可以得到设备的相关属性。其基本思想是通过对设备中的每个属性名与当前输入的属性名进行比较,如果相同,输出此属性;不同,则输出0。

1.1.3 删除不匹配的设备节点

对于当前虚拟域,当查询到不匹配的设备节点之后,将会在设备树中对相应设备节点进行删除,节点在设备树中的组织形式是以phandle作为节点句柄来索引的,并以链式的数据结构进行存储。因此,要删除相应的设备,需要得到此节点的前一个节点句柄和后一个节点句柄,并将这两个句柄链接起来。删除设备用到的方法delete-device.

1.1.4 树匹配算法

在设备树的定制中,为了实现对个设备树中的每个节点进行匹配,需要设计相应的算法。根据系统的特点,选择了递归的匹配算法。这种算法具有以下特点:

(1) 设备遍历流程和设备树的读取均使用了递归算法,用递归方式进行设备的匹配会简化程序的设计。

(2) Forth语言虚拟机的架构是基于栈的结构实现的,递归的算法会相当高效、快速,同时算法的实现简洁、流畅。

1.2 系统评测

经过对服务器每个虚拟域的OBP的修改,得到了设备可定制的系统。下面对修改的系统进行评测。

1.2.1 设备硬件描述

通过命令lspci-t可以显示出pci设备树信息。被测对象的硬件描述如图2所示,设备通过桥的级联组成了一棵完整的设备树。为了便于对结果进行分析,在磁盘和网卡处添加了注释。

61c197f8a2b46_html_90beb1c17aaca2c2.png

图2 设备树结构图

对于每一个设备,MD中均以一定的形式存储。以10.0设备为例,MD中保存的节点信息包含父节点、当前节点的设备号和功能号、所有的子节点。具体存储形式如图3所示:

node iodevice node_bridge_lv3_10_0 {

back -> node_bridge_lv2_0_0;

device-number = 0x10;

function-number = 0x0;

fwd -> node_eth_lv4_0_0;

fwd -> node_eth_lv4_0_1;

}

图3 10.0设备的存储结构

1.2.2 设备细粒度的划分

被测系统包含两个虚拟域,一个作为Service Domain,用来对设备进行统一配置,并根据自己的MD表,对设备进行裁剪。另一个虚拟域读取设备配置信息并裁剪设备树。为了使两个虚拟域均能运行操作系统,需要将磁盘和网卡分别分配给这两个虚拟域。在Service Domain中,得到的设备视图如图4所示。另一个虚拟域的视图如图5所示。

61c197f8a2b46_html_5e66dbe65358a082.png

图4 SD设备结构图

61c197f8a2b46_html_7528c3e67a9fe408.png

图5 Other Domain设备结构图

根据评测结果显示,不同的虚拟域得到了不同的设备视图,并且所有设备工作正常。因此本文所实现的设备细粒度的划分是可行并且有效的,而且系统以这种形式对设备进行分配,系统的效能并没有因此而下降,达到了I/O设备虚拟化的目的。

结 论


目前,学生机房建设中,服务器的投入占成本的绝大多数比重,为了可以充分利用宝贵的服务器资源,提高服务器的资源利用率,本文提出了固件外设设备树定制化生成技术,能够在单一硬件上运行多个操作系统实例,其关键技术是对硬件资源进行合理有效的划分,使其更加灵活可配置,使设备的分配更加高效,具有广泛的适用价值。以提高机房的利用率,降低成本,从而有效解决高投入低产出的问题。


参考文献:

[1]. 钱磊, 李宏亮, 谢向辉, 陈左宁. 虚拟化技术在高性能计算机中的应用研究. 计算机工程与科学,2009, 31(04): 307~311.2

[2]. 祈雯, 李元红, 梁若渺. 大型服务器虚拟化探索与研究. 数字石油和化工, 2009, 10: 133~136.4

[3]. 王立明. 对于公司应用服务器虚拟化的研究. 计算机与网络, 2009, 24: 559.

[4]. 钱磊, 李宏亮, 谢向辉, 陈左宁. 虚拟化技术在高性能计算机中的应用研究. 计算机工程与科学,2009, 31(04): 307~311.

[5]. 孟晓, 那文武, 朱旭东, 柯剑, 许鲁. 一种采用带外虚拟化技术的网络存储系统. 小型微型计算机系统,2009, 30(11): 2124~2127.


【基金项目】2017年度湖南省教育厅科学研究项目,课题名称:虚拟计算环境固件支持技术研究和实现,项目编号:17C1034