CN103986602A - 一种启动操作系统的方法、相关设备和系统 - Google Patents

一种启动操作系统的方法、相关设备和系统 Download PDF

Info

Publication number
CN103986602A
CN103986602A CN201410208810.6A CN201410208810A CN103986602A CN 103986602 A CN103986602 A CN 103986602A CN 201410208810 A CN201410208810 A CN 201410208810A CN 103986602 A CN103986602 A CN 103986602A
Authority
CN
China
Prior art keywords
base address
equipment
physical
computing node
basic driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410208810.6A
Other languages
English (en)
Other versions
CN103986602B (zh
Inventor
王瑞玲
吴亚东
叶岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410208810.6A priority Critical patent/CN103986602B/zh
Publication of CN103986602A publication Critical patent/CN103986602A/zh
Application granted granted Critical
Publication of CN103986602B publication Critical patent/CN103986602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种启动操作系统的方法、相关设备和系统。该方法包括:管理节点接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,获取物理设备的基本驱动所在存储空间的基地址作为物理基地址,以重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立该虚拟基地址与该物理基地址的映射关系,再将基地址访问成功信息发送给计算节点,以便计算节点基于虚拟基地址发起读取请求;该读取请求用于依据该映射关系将物理设备的基本驱动读取到计算节点,以便计算节点对所述虚拟设备进行基本驱动配置,从而实现从虚拟设备引导操作系统启动。

Description

一种启动操作系统的方法、相关设备和系统
技术领域
本发明涉及信息技术领域,特别是涉及一种启动操作系统的方法、相关设备和多处理器系统。
背景技术
在多处理器系统中,每个处理器系统的计算节点通过PCI(PeripheralComponent Interconnect,外设部件互连标准)总线域与管理节点进行数据交互,从而实现管理节点对多个计算节点的全局配置管理。而为了实现多处理器系统中的各个计算节点共享同一资源池中的IO设备(即输入输出设备),多处理系统可以采用PCIe(PCI-Express,极速PCI)交换网络来将PCI总线域划分为多个虚拟PCI总线域。具体地,管理节点通过PCIe交换设备对系统内各个计算节点、IO设备等所有设备进行全局配置管理,各个计算节点则通过PCIe交换设备与IO设备进行数据交互。
在采用PCIe交换设备实现多个计算节点共享同一资源池的IO设备的基础上,为了节省IO设备的硬件成本,可以为各个计算节点提供同一个支持SR-IOV(Single Root I/O Virtualization,单根I/O虚拟化)技术的物理设备(即SR-IOV设备)作为共享IO设备。在SR-IOV设备中,其物理功能(PhysicalFunction,简称PF)被模拟成多个虚拟功能(Virtual Functiong,简称VF),因此,作为SR-IOV设备的物理设备(PF设备)就被虚拟化成了多个虚拟设备(VF设备),而管理节点可以将各个VF设备分别作为一个IO设备分配给各个计算节点使用,从而避免了为各个计算节点分别配置一个IO设备,节省了IO设备的硬件成本。
在现有技术中,计算节点可以选择从某个IO设备所连接的外部存储设备来启动操作系统。当计算节点从某IO设备启动操作系统时,需要从该IO设备中加载该IO设备的基本驱动(Optional ROM,Extension ROM或ExpansionROM),然后才能利用该IO设备的基本驱动执行该IO设备的基本驱动配置,实现从IO设备启动操作系统。但是,具体到采用SR-IOV设备作为共享IO设备的多处理器系统,当计算节点选择从SR-IOV设备为其分配的VF设备启动操作系统时,由于VF设备是由SR-IOV设备的PF设备虚拟出来的,计算节点无法访问VF设备基本驱动的基地址,从而导致VF设备的基本驱动无法加载,VF设备的基本驱动配置也就无法执行,最终造成无法从VF设备启动操作系统。
发明内容
本发明实施例所要解决的技术问题是,提供一种启动操作系统的方法、相关设备和多处理器系统,以解决现有技术中多处理系统的计算节点无法通过加载VF设备基本驱动来实现从VF设备启动操作系统的技术问题。
第一方面,本发明实施例提供了一种启动操作系统的方法,应用于多处理器系统中的管理节点,该方法包括:
接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;
获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址;
以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第一方面的第一种可能的实现方式中,所述存储空间位于所述管理节点中;
所述获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址,包括:
从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中;
依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间,确定所述物理基地址。
在第一方面的第二种可能的实现方式中,结合第一方面的第一可能的实现方式,还包括:
接收所述交换设备转发的所述读取请求;
依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第一方面的第三种可能的实现方式中,所述存储空间位于所述物理设备中;
所述获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址,包括:
在所述物理设备中查找所述物理设备的基本驱动基地址寄存器;
将查找到的基地址寄存器所表示的基地址确定为所述物理基地址。
在第一方面的第四种可能的实现方式中,结合第一方面的第三可能的实现方式,还包括:
响应于建立所述虚拟基地址与所述物理基地址之间的映射关系,将所述映射关系保存到所述交换设备;
所述读取请求,具体用于所述交换设备依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第一方面的第五种可能的实现方式中,所述接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,包括:
接收所述交换设备重定向所述计算节点发起的外设部件互连标准PCI配置请求而发送的重定向配置请求;
判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。
第二方面,本发明实施例提供了一种启动操作系统的方法,应用于多处理器系统中的交换设备,该方法包括:
对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;所述重定向基地址访问请求,用于所述管理节点获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
接收所述管理节点发送的基地址访问成功信息,并将所述基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第二方面的第一种可能的实现方式中,所述存储空间位于所述管理节点中;
所述物理基地址,具体为所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间而确定的。
在第二方面的第二种可能的实现方式中,结合第二方面的第一种可能的实现方式,还包括:
将从所述计算节点接收到的所述读取请求转发到所述管理节点,以便所述管理节点依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动;
接收所述管理节点发送的所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第二方面的第三种可能的实现方式中,所述存储空间位于所述物理设备中;
所述物理基地址,具体为所述管理节点在所述物理设备中查找到的所述物理设备的基本驱动基地址寄存器所表示的基地址。
在第二方面的第四种可能的实现方式中,结合第二方面的第三种可能的实现方式,所述映射关系在建立之后由所述管理节点保存到所述交换设备;
所述方法还包括:
接收所述计算节点发送的所述读取请求;
依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第二方面的第五种可能的实现方式中,对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,包括:
接收所述计算节点发起的PCI配置请求;
对所述PCI配置请求进行重定向,向所述管理节点发送重定向配置请求,以便所述管理节点判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。
第三方面,本发明实施例提供了一种多处理器系统中的管理节点,该管理节点包括:
基地址请求接收模块,用于接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;
物理基地址获取模块,用于获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址;
映射关系建立模块,用于以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
成功信息发送模块,用于将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第三方面的第一种可能的实现方式中,所述存储空间位于所述管理节点中;
所述物理基地址获取模块包括:
基本驱动拷贝子模块,用于从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中;
第一基地址确定子模块,用于依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间,确定所述物理基地址。
在第三方面的第二种可能的实现方式中,结合第三方面的第一种可能的实现方式,还包括:
读取请求接收模块,用于接收所述交换设备转发的所述读取请求;
第一基地址查询模块,用于依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
基本驱动发送模块,用于从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第三方面的第三种可能的实现方式中,所述存储空间位于所述物理设备中;
所述物理基地址获取模块包括:
寄存器查找子模块,用于在所述物理设备中查找所述物理设备的基本驱动基地址寄存器;
第二基地址确定子模块,用于将查找到的基地址寄存器所表示的基地址确定为所述物理基地址。
在第三方面的第四种可能的实现方式中,结合第三方面的第三种可能的实现方式,还包括:
映射关系保存模块,用于响应于建立所述虚拟基地址与所述物理基地址之间的映射关系,将所述映射关系保存到所述交换设备;
所述读取请求,具体用于所述交换设备依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第三方面的第五种可能的实现方式中,所述基地址请求接收模块包括:
配置请求接收子模块,用于接收所述交换设备重定向所述计算节点发起的PCI配置请求而发送的重定向配置请求;
基地址请求判断子模块,用于判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址;
基地址请求确定子模块,用于在所述基地址请求判断子模块的判断结果为是的情况下,将所述重定向配置请求确定为所述重定向基地址访问请求。
第四方面,本发明实施例提供了一种多处理器系统中的交换设备,该交换设备包括:
基地址请求重定向模块,用于对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;所述重定向基地址访问请求,用于所述管理节点获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
成功信息接收模块,用于接收所述管理节点发送的基地址访问成功信息;
成功信息转发模块,用于将所述基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取属于所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第四方面的第一种可能的实现方式中,所述存储空间位于所述管理节点中;
所述物理基地址,具体为所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间而确定的。
在第四方面的第二种可能的实现方式中,结合第四方面的第一种可能的实现方式,还包括:
读取请求转发模块,用于将从所述计算节点接收到的所述读取请求转发到所述管理节点,以便所述管理节点依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储子空间中提取所述物理设备的基本驱动;
第一基本驱动发送模块,用于接收所述管理节点发送的所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第四方面的第三种可能的实现方式中,所述存储空间位于所述物理设备中;
所述物理基地址,具体为所述管理节点在所述物理设备中查找到的所述物理设备的基本驱动基地址寄存器所表示的基地址。
在第四方面的第四种可能的实现方式中,结合第四方面的第三种可能的实现方式,所述映射关系在建立之后由所述管理节点保存到所述交换设备;
所述设备还包括:
读取请求接收模块,用于接收所述计算节点发送的所述读取请求;
第二基地址查询模块,用于依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
第二基本驱动发送模块,用于从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在第四方面的第五种可能的实现方式中,所述基地址请求重定向模块包括:
配置请求接收子模块,用于接收所述计算节点发起的PCI配置请求;
配置请求重定向子模块,用于对所述PCI配置请求进行重定向,向所述管理节点发送重定向配置请求,以便所述管理节点判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是则将所述重定向配置请求确定为所述重定向基地址访问请求。
第五方面,本发明实施例提供了一种多处理器系统,该系统包括管理节点、计算节点、交换设备和支持单根输入输出虚拟化技术的物理设备;其中,所述管理节点为本发明实施例提供的任意一种实现方式的管理节点,所述交换设备为本发明实施例提供的任意一种实现方式的交换设备。
与现有技术相比,本发明实施例至少具有以下优点:
采用本发明实施例的技术方案,当多处理器系统中的某一计算节点需要从SR-IOV特性的PF设备中为该计算节点分配的VF设备启动操作系统时,交换设备将该计算节点发起的对VF设备基本驱动的基地址访问请求重定向到管理节点;管理节点在接收到重定向基地址访问请求时获取SR-IOV设备的PF设备基本驱动的基地址,并建立PF设备基本驱动基地址与VF设备基本驱动基地址之间的映射关系,再向该计算节点返回基地址访问成功信息,以便于该计算节点基于VF设备基本驱动基地址发起基本驱动读取请求时可以通过映射关系中该VF设备基本驱动基地址所对应的PF设备基本驱动基地址读取到PF设备基本驱动,并加载该PF设备基本驱动中所包含的VF设备基本驱动来对VF设备进行基本驱动配置,实现该计算节点从VF设备启动操作系统。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一应用场景所涉及的多处理器系统框架示意图;
图2为本发明中启动操作系统的方法实施例1的流程图;
图3为本发明中启动操作系统的方法实施例2的流程图;
图4为本发明中启动操作系统的方法实施例3的流程图;
图5为本发明中启动操作系统的方法实施例4的流程图;
图6为本发明中多处理器系统中的管理节点实施例1的结构图;
图7为本发明中多处理器系统中的交换设备实施例1的结构图;
图8为本发明中多处理器系统实施例1的结构图;
图9为本发明中多处理器系统中的管理节点实施例2的结构图;
图10为本发明中多处理器系统中的交换设备实施例2的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。
发明人经过研究发现,当计算节点选择从VF设备启动操作系统时,需要对VF设备进行基本驱动配置,为此,计算节点需要将VF设备的ExpansionROM读取到计算节点本地,而为了读取VF设备的Expansion ROM,计算节点需要先访问保存该VF设备Expansion ROM的存储位置的基地址。但实际上,虽然保存在SR-IOV设备本地的PF设备自身的Expansion ROM中包含有各个VF设备的Expansion ROM,但是,SR-IOV设备只为其PF设备自身的Expansion ROM提供了基地址寄存器(Base Address Register,简称BAR)而不支持为各个VF设备Expansion ROM提供各个VF设备的Expansion ROMBAR,这导致计算节点在请求访问VF设备Expansion ROM的基地址时不仅无法得到基地址的访问成功信息也无法通过VF设备Expansion ROM的基地址读取到VF设备的Expansion ROM,从而造成计算节点无法对VF设备进行基本驱动配置,也就无法实现从VF设备启动操作系统。
基于上述分析,本发明的基本思想之一在于:通过交换设备将计算节点对VF设备Expansion ROM的基地址访问请求重定向到管理节点,管理节点则在获取到PF设备Expansion ROM基地址的基础上,利用基地址访问请求中的VF设备Expansion ROM基地址为VF设备模拟一个VF设备ExpansionROM BAR,并建立VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间的基地址之间的映射,再向计算节点返回基地址访问成功信息,使得计算节点能够基于VF设备Expansion ROM的基地址发起读取请求并能够通过映射关系读取到PF设备Expansion ROM,从而使得计算节点能够利用PF设备Expansion ROM中所包含的VF设备Expansion ROM完成对VF设备的基本驱动配置,实现从VF设备启动操作系统。
基于上述基本思想,本发明实施方式的应用场景之一,可以是应用到至少包括管理节点、计算节点、交换设备和SR-IOV设备组成的多处理器系统中。例如图1所示的多处理器系统,管理节点通过交换设备对系统全局进行管理,计算节点通过交换设备与管理节点、SR-IOV设备进行数据交互,SR-IOV设备外接有存储设备。其中,SR-IOV设备,表示的是支持SR-IOV技术的PF设备,其具有多个VF设备可以分别分配给各个计算节点,各个计算节点可以将分配到的VF设备作为自己的IO设备来使用。
在这一应用场景中,管理节点可以接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;然后,管理节点可以获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;之后,管理节点可以再将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取属于所述物理设备的基本驱动,并利用读取到的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
下面结合附图,通过实施例来详细说明本发明中启动操作系统的方法、相关设备和系统的实现方式。
参见图2,示出了本发明中启动操作系统的方法实施例1的流程图。本实施例可以应用于多处理器系统中的管理节点,具体例如可以包括如下步骤:
S201、接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备。
其中,支持SR-IOV技术的PF设备具有多个VF设备,管理节点可以预先为计算节点分配VF设备。例如,管理节点可以在加电启动阶段,加载其自身的管理驱动,按照管理驱动设定的策略分配VF设备给各个计算节点。
当计算节点选择从分配得到的VF设备启动操作系统时,可以发起对VF设备Expansion ROM的基地址访问请求,以便确定系统内是否存在VF设备的Expansion ROM。具体的方式例如可以是,在计算节点的加电启动系统BIOS枚举设备的过程中,当计算节点探测到VF设备时,可以扫描其PCI配置空间信息是否执行该VF设备的Expansion ROM BAR。可以理解的是,由于实际上PF设备并未为VF设备提供Expansion ROM BAR,因此,为了使基地址访问请求能够得到反馈,当交换设备接收到计算节点发送的基地址访问请求时,可以将其重定向到管理节点,管理节点则在接收到交换设备发送的重定向基地址访问请求时开始执行本实施例的后续步骤,以便针对该基地址访问请求向计算节点提供反馈并为Expansion ROM的读取做准备。具体地,管理节点在接收到重定向基地址访问请求时,可以通过其管理驱动注册的处理计算节点配置空间请求重定向的中断处理例程,使得该重定向基地址访问请求可以通过中断方法触发管理节点执行Emulation函数,Emulation函数的作用可以包括执行后续PF设备Expansion ROM基地址的获取以及VF设备ExpansionROM基地址与PF设备Expansion ROM所在存储空间的基地址之间映射关系的建立。
在本实施例的一些实施方式中,为了实现管理节点具有对系统全局设备的管理权限而减少交换设备上的技术改造,交换设备可以将计算节点发起的所有PCI配置请求都重定向到管理节点,而由管理节点来判断接收到的PCI配置请求是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果来确定是否执行本实施例的后续步骤。具体地,S201例如可以包括:管理节点接收所述交换设备重定向所述计算节点对PCI配置访问请求而发送的重定向配置请求,并判断所述重定向访问请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。当然,在本实施例的另一些实施方式中,对于计算节点发起的PCI配置请求也可以由交换设备来判断是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果确定是否将该配置请求重定向到管理节点。
需要说明的是,本实施例中的多处理器系统,是以支持SR-IOV技术的物理设备作为共享IO设备。例如,该物理设备可以是支持SR-IOV特性的主机适配器(Host Bus Adapter,简称HBA)、网卡等IO设备,如PMC提供的HBA卡、Intel网卡等。此外,多处理器系统中的交换设备可以采用PCIe交换器(PCIeSwitch),如PCIe交换机、PCIe交换芯片等。
S202、获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址。
由于计算节点对基地址的访问请求以及对基本驱动的读取请求都是基于VF设备Expansion ROM BAR发起的,而在计算节点基于VF设备ExpansionROM BAR发起读取请求时需要以VF设备Expansion ROM BAR查找到PF设备Expansion ROM BAR才能实现为计算节点提供PF设备Expansion ROM,所以,需要管理节点在接收到重定向基地址访问请求时建立VF设备ExpansionROM BAR与PF设备Expansion ROM BAR之间的映射关系,用于在计算节点发起读取请求时依据VF设备Expansion ROM BAR查找到PF设备Expansion ROM BAR,而为了建立映射关系,就需要管理节点先获取PF设备Expansion ROM BAR。
在本实施例中,SR-IOV设备的Expansion ROM可以保存在SR-IOV设备本地、管理节点等除计算节点以外的设备上,即PF设备的Expansion ROM所在存储空间可以位于除计算节点以外的其他设备上,这样可以使得计算节点本地无需增加存储介质来保存VF设备的Expansion ROM,从而减少系统硬件的开销。
需要说明的是,根据保存PF设备Expansion ROM的设备不同,本实施例中提供了多种不同的实施方式来获取PF设备Expansion ROM所在存储空间的基地址。
例如,在本实施例的一些实施方式中,PF设备Expansion ROM可以保存在管理节点,即保存PF设备Expansion ROM的存储空间位于管理节点中。而由于PF设备Expansion ROM最初是保存在PF设备本地的,所以在获取物理基地址时需要先将PF设备本地的Expansion ROM拷贝到管理节点。具体地,S202例如可以包括:所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中,并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间,确定所述物理基地址。其中,PF设备Expansion ROM具体可以是拷贝到管理节点的缓存(Buffer)中,此时,物理基地址表示的是PF设备Expansion ROM所在的管理节点Buffer的基地址。可以理解的是,如果获取到的物理基地址表示的是PF设备Expansion ROM保存在管理节点,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取该PF设备Expansion ROM。
又如,在本实施例的另一实施方式中,PF设备Expansion ROM可以保存在PF设备本地,即保存PF设备Expansion ROM的存储空间位于PF设备中。此时,由于PF设备Expansion ROM最初就是保存在PF设备本地的,因此,不需要再对PF设备Expansion ROM进行拷贝,而可以直接通过PF设备Expansion ROM BAR来获取物理基地址。具体地,S202又如可以包括:所述管理节点在所述物理设备中查找所述物理设备的基本驱动基地址寄存器,并将查找到的基地址寄存器所表示的基地址确定为所述物理基地址。其中,PF设备Expansion ROM具体可以是保存在PF设备的ROM(只读内存)中,PF设备Expansion ROM BAR用于存放PF设备Expansion ROM基地址的寄存器。可以理解的是,当获取到的物理基地址表示的是PF设备Expansion ROM保存在PF设备本地,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取其PF设备Expansion ROM。
S203、以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系。
其中,计算节点发起的VF设备Expansion ROM BAR访问请求,是为了确定系统内是否存在VF设备Expansion ROM BAR,因此,该基地址访问请求以及重定向基地址访问请求中均包含有VF设备Expansion ROM的基地址。因此,管理节点可以从接收到的重定向基地址访问请求中获取VF设备Expansion ROM的基地址,再利用获取到的VF设备Expansion ROM基地址建立映射关系。
可以理解的是,为了利于计算节点对PF设备Expansion ROM进行读取,可以在从重定向基地址访问请求中获取虚拟基地址之后,为VF设备模拟一个存放该虚拟基地址的VF设备Expansion ROM BAR。相应地,虚拟基地址与物理基地址之间的映射关系可以具体是VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间基地址之间的映射关系。例如,在前述物理基地址表示PF设备Expansion ROM保存在管理节点Buffer的实施方式中,映射关系具体可以是VF设备Expansion ROM BAR与管理节点Buffer基地址之间的映射;又如,在前述物理基地址表示PF设备Expansion ROM保存在PF设备本地的实施方式中,映射关系具体可以是VF设备Expansion ROMBAR与PF设备Expansion ROM BAR之间的映射。
需要说明的是,根据在计算节点发起读取请求时执行依据虚拟基地址查找物理基地址的设备不同,映射关系在建立之后可以保存在不同的设备上。
在本实施例的一些实施方式中,管理节点建立映射关系之后可以保存在管理节点本地,当计算节点基于虚拟基地址发起读取请求时,交换设备可以将读取请求转发到管理节点,管理节点再依据映射关系查找物理基地址。例如,结合前述物理基地址表示PF设备Expansion ROM保存在管理节点的实施方式,由管理节点来查找虚拟基地址对应的物理基地址,由于物理基地址所表示的存储空间也位于管理节点,PF设备Expansion ROM也需要管理节点来提供,因此,可以使得对计算节点读取请求的反馈处理都集中到管理节点来处理,减少交换设备上的技术改造。
在本实施例的另一些实施方式中,管理节点建立映射关系之后可以将映射关系保存到交换设备,当计算节点基于虚拟基地址发起读取请求时,交换设备可以依据其本地保存的映射关系以及读取请求中的虚拟基地址来查找物理基地址。例如,结合前述物理基地址表示PF设备Expansion ROM保存在PF设备本地的实施方式,由交换设备而不是管理节点来查找虚拟基地址对应的物理基地址,由于物理基地址所表示的存储空间位于PF设备,PF设备Expansion ROM需要由PF设备来提供,因此,可以使得对计算节点读取请求的反馈处理只涉及交换设备与PF设备之间的交互而不需要管理节点的参与,从而减少了对读取请求的反馈处理需要调用的设备,缩短了反馈处理的时间。
当然,在本实施例的又一些实施方式中,保存映射关系的设备也可以不必配合物理基地址所指向的设备。例如,当物理基地址表示PF设备ExpansionROM保存在管理节点上时,可以由交换设备来保存映射关系,而在读取时,可以由交换设备依据映射关系来查找物理基地址并依据物理基地址去管理节点上获取PF设备Expansion ROM发送给计算节点。又如,当物理基地址表示PF设备Expansion ROM保存在PF设备本地时,可以由管理节点自身来保存映射关系,而在读取时,可以是由管理节点依据映射关系来查找物理基地址然后再从PF设备上获取PF设备Expansion ROM发送给计算节点。
S204、将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求。
其中,所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
当计算节点接收到基地址访问成功信息时,可以确认PCI配置空间执行了VF设备Expansion ROM BAR,此时,可以基于虚拟基地址发起读取请求,以便通过已建立的映射关系将PF设备Expansion ROM读取到计算节点本地,完成从PF设备Expansion ROM中加载与VF设备匹配的Expansion ROM镜像文件,并利用加载的Expansion ROM对VF设备进行基本驱动设置,实现从VF设备引导操作系统启动。其中,基于虚拟基地址发起的读取请求具体可以是针对虚拟基地址的内存映射IO(MMIO)访问请求,计算节点读取到的PF设备Expansion ROM具体可以是读取到计算节点本地BIOS内存中。
可以理解的是,基于前述保存映射关系设备不同的实施方式,相对应的PF设备Expansion ROM读取方式也不同。
在本实施例的一些实施方式中,当映射关系保存在管理节点时,交换设备可以将读取请求转发到管理节点,由管理节点来查找物理基地址。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在管理节点的实施方式基础上,当计算节点基于虚拟基地址发起读取请求时,管理节点还可以接收所述交换设备转发的所述读取请求,并依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,再从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在本实施例的另一些实施方式中,当映射关系保存在交换设备时,可以由交换设备来查找物理基地址。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在PF设备本地的实施方式基础上,管理节点还可以响应于建立所述虚拟基地址与所述物理基地址之间的映射关系而将所述映射关系保存到所述交换设备,相应地,计算节点基于虚拟地址发起的读取请求,具体可以用于所述交换设备依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。其中,对于计算节点的读取请求的完成报文或数据响应报文,交换设备需要将数据响应报文中的执行设备标识(Completer ID)由PF设备的BDF(Bus、Device和Function)修改为VF设备的全局BDF。可以理解的是,在交换设备上可以单独设置一个Intercept模块,用于截获计算节点发起的读取请求的完成报文并对该完成报文的Completer ID进行修改。
当然,在本实施例的又一些实施方式中,针对读取请求来查找物理基地址的设备也可以是没有保存映射关系的设备。例如,当映射关系保存在管理节点上时,也可以由交换设备来查找物理基地址,具体地,交换设备可以在接收读取请求时去管理节点上获取映射关系来查找物理基地址。
本实施例的技术方案,通过交换设备将计算节点对VF设备ExpansionROM的基地址访问请求重定向到管理节点,管理节点则在获取到PF设备Expansion ROM基地址的基础上,利用基地址访问请求中的VF设备ExpansionROM基地址为VF设备模拟一个VF设备Expansion ROM BAR并建立VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间的基地址之间的映射,再向计算节点返回基地址访问成功信息,使得计算节点能够基于VF设备Expansion ROM的基地址发起读取请求并能够通过映射关系读取到PF设备Expansion ROM,从而使得计算节点能够利用PF设备Expansion ROM中所包含的VF设备Expansion ROM完成对VF设备的基本驱动配置,实现从VF设备启动操作系统。
此外,在实现计算节点从VF设备启动操作系统的同时,还可以使计算节点可以从管理节点、SR-IOV设备等其他设备上读取PF设备Expansion ROM,使得PF设备Expansion ROM无需保存在计算节点本地,从而避免了计算节点本地增加存储介质,减少了多处理器系统中硬件的开销。
前述图2所示的方法实施例1是从管理节点的角度介绍的本发明实施方式。下面从交换设备的角度介绍本发明实施方式。
参见图3,示出了本发明中启动操作系统的方法实施例2的流程图。本实施例可以应用于多处理器系统中的交换设备,具体例如可以包括如下步骤:
S301、对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;所述重定向基地址访问请求,用于所述管理节点获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系。
在本实施例的一些实施方式中,为了实现管理节点具有对系统全局设备的管理权限而减少交换设备上的技术改造,交换设备可以将计算节点发起的所有PCI配置请求都重定向到管理节点,而由管理节点来判断接收到的PCI配置请求是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果来确定是否执行本实施例的后续步骤。具体地,S301可以包括:交换设备可以接收所述计算节点发起的PCI配置请求,并对所述PCI配置请求进行重定向,向所述管理节点发送重定向配置请求,以便所述管理节点判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。当然,在本实施例的另一些实施方式中,对于计算节点发起的PCI配置请求也可以由交换设备来判断是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果确定是否将该配置请求重定向到管理节点。
需要说明的是,本实施例中的多处理器系统,是以支持SR-IOV技术的物理设备作为共享IO设备。例如,该物理设备可以是支持SR-IOV特性的主机适配器(Host Bus Adapter,简称HBA)、网卡等IO设备,如PMC提供的HBA卡、Intel网卡等。此外,多处理器系统中的交换设备可以采用PCIe交换器(PCIeSwitch),如PCIe交换机、PCIe交换芯片等。
可以理解的是,为了保证计算节点本地无需要增加存储介质来保存PF设备的Expansion ROM而减少系统硬件的开销,SR-IOV设备的Expansion ROM可以保存在SR-IOV设备本地、管理节点等除计算节点以外的设备上,即PF设备的Expansion ROM所在存储空间可以位于除计算节点以外的其他设备上。
例如,在本实施例的一些实施方式中,PF设备Expansion ROM可以保存在管理节点,即保存PF设备Expansion ROM的存储空间位于管理节点中。而由于PF设备Expansion ROM最初是保存在PF设备本地的,所以在获取物理基地址时需要先将PF设备本地的Expansion ROM拷贝到管理节点。具体地,在S301中,所述存储空间可以位于所述管理节点中,所述物理基地址可以具体为所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间而确定的。可以理解的是,如果获取到的物理基地址表示的是PF设备Expansion ROM保存在管理节点,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取该PF设备Expansion ROM。
又如,在本实施例的另一些实施方式中,PF设备Expansion ROM可以保存在PF设备本地,即保存PF设备Expansion ROM的存储空间位于PF设备中。此时,由于PF设备Expansion ROM最初就是保存在PF设备本地的,因此,不需要再对PF设备Expansion ROM进行拷贝,而可以直接通过PF设备Expansion ROM BAR来获取物理基地址。具体地,在S301中,所述存储空间可以位于所述物理设备中,所述物理基地址可以具体为所述管理节点在所述物理设备中查找到的所述物理设备的基本驱动基地址寄存器所表示的基地址。可以理解的是,当获取到的物理基地址表示的是PF设备Expansion ROM保存在PF设备本地,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取该PF设备Expansion ROM。
S302、接收所述管理节点发送的基地址访问成功信息,并将所述基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求。
其中,所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在本实施例的一些实施方式中,管理节点建立映射关系之后可以保存在管理节点本地,当计算节点基于物理基地址发起读取请求时,交换设备可以将读取请求转发到管理节点,管理节点再依据映射关系查找物理基地址,之后交换设备再将管理节点发送的PF设备Expansion ROM转发给计算节点,从而完成读取。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在管理节点的实施方式基础上,当计算节点基于虚拟基地址发起读取请求时,交换设备还可以将从所述计算节点接收到的所述读取请求转发到所述管理节点,以便所述管理节点依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动,然后交换设备再接收所述管理节点发送的所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在本实施例的另一些实施方式中,管理节点建立映射关系之后可以将映射关系保存到交换设备,当计算节点基于虚拟基地址发起读取请求时,交换设备可以依据其本地保存的映射关系以及读取请求中的虚拟基地址来查找物理基地址。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在PF设备本地的实施方式基础上,所述映射关系还可以在建立之后由所述管理节点保存到所述交换设备,相应地,交换设备还可以接收所述计算节点发送的所述读取请求,依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
本实施例的技术方案,通过交换设备将计算节点对VF设备ExpansionROM的基地址访问请求重定向到管理节点,管理节点则在获取到PF设备Expansion ROM基地址的基础上,利用基地址访问请求中的VF设备ExpansionROM基地址为VF设备模拟一个VF设备Expansion ROM BAR并建立VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间的基地址之间的映射,再向计算节点返回基地址访问成功信息,使得计算节点能够基于VF设备Expansion ROM的基地址发起读取请求并能够通过映射关系读取到PF设备Expansion ROM,从而使得计算节点能够利用PF设备Expansion ROM中所包含的VF设备Expansion ROM完成对VF设备的基本驱动配置,实现从VF设备启动操作系统。
前述图2、图3所示的方法实施例1、2是分别从单一设备侧的角度对本发明实施方式进行的介绍。为了使本领域技术人员更加清楚本发明实施方式的应用,下面从设备交互的角度并辅以具体的应用场景,对本发明实施方式进行介绍。需要说明的是,以下设备交互角度的应用场景实施例仅为使得本领域技术人员更清楚地了解本发明,但本发明的实施方式不限于这些应用场景实施例所限定的应用场景。
参见图4,示出了本发明中启动操作系统的方法实施例3的流程图。在本实施例中,物理基地址为PF设备Expansion ROM所在管理节点Buffer的基地址,虚拟基地址是存放在管理节点模拟的VF设备Expansion ROM BAR中,映射关系具体可以是保存在管理节点上,针对计算节点发起的MMIO读取请求具体可以是由管理节点来查找物理基地址以及提供PF设备ExpansionROM。在本实施例中,例如具体可以包括如下步骤:
S401、管理节点加载管理驱动并分配VF设备给计算节点。
具体地,管理节点可以是在加电启动阶段执行加载管理驱动和分配VF设备的。其中,管理节点具有全局资源的管理控制权,该节点可以看到全局资源池,包括网卡、SR-IOV特性的PF设备以及VF设备等。
S402、计算节点向交换设备发送PCI配置请求。
可以理解的是,计算节点加电启动系统BIOS枚举设备时会发起许多PCI配置请求来对PCI配置空间进行配置。其中,当探测到VF设备时,会扫描其PCI配置空间信息是否执行Expansion ROM BAR,此时发起的PCI配置请求表示的是请求对VF设备Expansion ROM BAR进行访问,即该PCI配置请求为对VF设备Expansion ROM的基地址访问请求。
S403、交换设备将PCI配置请求重定向到管理节点。
S404、管理节点判断该PCI配置请求是否表示请求对VF设备ExpansionROM BAR进行访问,如果是,进入S405。
其中,在判断结果为是的情况下,管理节点确认该PCI配置请求为对VF设备Expansion ROM的基地址访问请求,此时可以通过中断方式触发管理节点执行Emulation函数,进入S405去完成VF设备Expansion ROM BAR的模拟以及VF设备与PF设备的基地址之间映射关系的建立。
S405、管理节点从PF设备中拷贝PF设备Expansion ROM到管理节点的Buffer中。
S406、管理节点基于PCI配置请求中的VF设备Expansion ROM基地址模拟VF设备Expansion ROM BAR。
S407、管理节点建立并保存VF设备Expansion ROM BAR与PF设备Expansion ROM所在管理节点Buffer基地址之间的映射关系。
S408、管理节点通过交换设备向计算节点返回基地址访问成功信息。
S409、计算节点基于VF设备Expansion ROM基地址发起MMIO请求。
S410管理节点依据映射关系为MMIO请求查找VF设备ExpansionROM BAR所对应的管理节点Buffer基地址。
S411、管理节点依据管理节点Buffer基地址从Buffer中提取PF设备Expansion ROM发送给计算节点。
S412、计算节点将PF设备Expansion ROM接收到系统BIOS内存,加载其中匹配VF设备的Expansion ROM镜像文件,执行VF设备的基本驱动配置,引导操作系统启动。
通过本应用场景实施例的技术方案,在实现计算节点从VF设备引导启动操作系统的基础上,使得对VF设备Expansion ROM BAR的模拟、VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间基地址之间映射关系的建立、针对MMIO请求对PF设备Expansion ROM所在存储空间基地址的查找以及向计算节点提供PF设备Expansion ROM等动作均可以在管理节点上执行,而交换设备只需将计算节点发起的PCI配置请求重定向到管理节点即可,这样可以尽量减少对现有交换设备的技术改造,从而降低了交换设备技术改造的难度以及开销。
参见图5,示出了本发明中启动操作系统的方法实施例4的流程图。在本实施例中,物理基地址为PF设备本地的PF设备Expansion ROM BAR中存放的基地址,虚拟基地址是存放在管理节点模拟的VF设备Expansion ROM BAR中,映射关系具体可以是保存在交换设备上,针对计算节点发起的MMIO读取请求具体可以是由交换设备来查找物理基地址,提供PF设备ExpansionROM的设备具体可以是PF设备本身。在本实施例中,例如具体可以包括如下步骤:
S501、管理节点加载管理驱动并分配VF设备给计算节点。
具体地,管理节点可以是在加电启动阶段执行加载管理驱动和分配VF设备的。其中,管理节点具有全局资源的管理控制权,该节点可以看到全局资源池,包括网卡、SR-IOV特性的PF设备以及VF设备等。
S502、计算节点向交换设备发送PCI配置请求。
可以理解的是,计算节点加电启动系统BIOS枚举设备时会发起许多PCI配置请求来对PCI配置空间进行配置。其中,当探测到VF设备时,会扫描其PCI配置空间信息是否执行Expansion ROM BAR,此时发起的PCI配置请求表示的是请求对VF设备Expansion ROM BAR进行访问,即该PCI配置请求为对VF设备Expansion ROM的基地址访问请求。
S503、交换设备将PCI配置请求重定向到管理节点。
S504、管理节点判断该PCI配置请求是否表示请求对VF设备ExpansionROM BAR进行访问,如果是,进入S505。
其中,在判断结果为是的情况下,管理节点确认该PCI配置请求为对VF设备Expansion ROM的基地址访问请求,此时可以通过中断方式触发管理节点执行Emulation函数,进入S505去完成VF设备Expansion ROM BAR的模拟以及VF设备与PF设备的基地址之间映射关系的建立。
S505、管理节点从PF设备获取PF设备Expansion ROM BAR,并基于PCI配置请求中的VF设备Expansion ROM基地址模拟VF设备Expansion ROMBAR。
S506、管理节点建立VF设备Expansion ROM BAR与PF设备ExpansionROM BAR之间的映射关系并保存到交换设备。
S507、管理节点通过交换设备向计算节点返回基地址访问成功信息。
S508、计算节点基于VF设备Expansion ROM基地址发起MMIO请求。
S509、交换设备依据映射关系为MMIO请求查找VF设备Expansion ROMBAR所对应的PF设备Expansion ROM BAR。
S510、交换设备依据PF设备Expansion ROM BAR中的基地址从PF设备中提取PF设备Expansion ROM发送给计算节点,并截获对MMIO请求的完成报文,将完成报文中的Completer ID由PF设备的BDF修改为VF设备的全局BDF。
S511、计算节点将PF设备Expansion ROM接收到系统BIOS内存,加载其中匹配VF设备的Expansion ROM镜像文件,执行VF设备的基本驱动配置,引导操作系统启动。
通过本应用场景实施例的技术方案,在实现计算节点从VF设备引导启动操作系统的基础上,使得针对MMIO请求对PF设备Expansion ROM BAR的查找以及向计算节点提供PF设备Expansion ROM等动作均无需通过与管理节点交互就可以完成,而只需交换设备与PF设备之间进行交互即可实现对PF设备Expansion ROM的读取,这样可以减少读取PF设备Expansion ROM时需要调用的设备,缩短了读取请求处理的时间。
在对本发明实施方式提供的启动操作系统的方法进行了介绍之后,下面对本发明实施方式提供的启动操作系统的相关设备及多处理器系统进行介绍。
参见图6,示出了本发明中多处理器系统中的管理节点实施例1的结构图。本实施例提供的管理节点,例如可以包括基地址请求接收模块601、物理基地址获取模块602、映射关系建立模块603以及成功信息发送模块604,其中:
基地址请求接收模块601,用于接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备。
其中,支持SR-IOV技术的PF设备具有多个VF设备,管理节点可以预先为计算节点分配VF设备。例如,管理节点可以在加电启动阶段,加载其自身的管理驱动,按照管理驱动设定的策略分配VF设备给各个计算节点。
当计算节点选择从分配得到的VF设备启动操作系统时,可以发起对VF设备Expansion ROM的基地址访问请求,以便确定系统内是否存在VF设备的Expansion ROM。具体的方式例如可以是,在计算节点的加电启动系统BIOS枚举设备的过程中,当计算节点探测到VF设备时,可以扫描其PCI配置空间信息是否执行该VF设备的Expansion ROM BAR。可以理解的是,由于实际上PF设备并未为VF设备提供Expansion ROM BAR,因此,为了使基地址访问请求能够得到反馈,当交换设备接收到计算节点发送的基地址访问请求时,可以将其重定向到管理节点,管理节点则在通过基地址请求接收模块601接收到交换设备发送的重定向基地址访问请求时开始触发本实施例后续模块的执行,以便针对该基地址访问请求对计算节点提供反馈并为Expansion ROM的读取做准备。具体地,管理节点在通过基地址请求接收模块601接收到重定向基地址访问请求时,可以通过其管理驱动注册的处理计算节点配置空间请求重定向的中断处理例程,使得该重定向基地址访问请求可以通过中断方法触发管理节点执行Emulation函数,Emulation函数的作用可以包括触发后续模块执行PF设备Expansion ROM基地址的获取以及VF设备ExpansionROM基地址与PF设备Expansion ROM所在存储空间的基地址之间映射关系的建立。
在本实施例的一些实施方式中,为了实现管理节点具有对系统全局设备的管理权限而减少交换设备上的技术改造,交换设备可以将计算节点发起的所有PCI配置请求都重定向到管理节点,而由管理节点通过基地址请求接收模块601来判断接收到的PCI配置请求是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果来确定是否触发本实施例后续模块的执行。具体地,基地址请求接收模块601例如可以包括配置请求接收子模块、基地址请求判断子模块和基地址请求确定子模块,其中,配置请求接收子模块可以用于接收所述交换设备重定向所述计算节点发起的PCI配置请求而发送的重定向配置请求,基地址请求判断子模块可以用于判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,基地址请求确定子模块可以用于在所述基地址请求判断子模块的判断结果为是的情况下将所述重定向配置请求确定为所述重定向基地址访问请求。当然,在本实施例的另一些实施方式中,对于计算节点发起的PCI配置请求也可以由交换设备来判断是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果确定是否将该配置请求重定向到管理节点。
需要说明的是,本实施例中所针对的多处理器系统,是以支持SR-IOV技术的物理设备作为共享IO设备。例如,该物理设备可以是支持SR-IOV特性的主机适配器(Host Bus Adapter,简称HBA)、网卡等IO设备,如PMC提供的HBA卡、Intel网卡等。此外,多处理器系统中的交换设备可以采用PCIe交换器(PCIe Switch),如PCIe交换机、PCIe交换芯片等。
物理基地址获取模块602,用于获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址。
由于计算节点对基地址的访问请求以及对基本驱动的读取请求都是基于VF设备Expansion ROM BAR发起的,而在计算节点基于VF设备ExpansionROM BAR发起读取请求时需要以VF设备Expansion ROM BAR查找到PF设备Expansion ROM BAR才能实现为计算节点提供PF设备Expansion ROM,所以,需要管理节点在基地址请求接收模块601接收到重定向基地址访问请求时建立VF设备Expansion ROM BAR与PF设备Expansion ROM BAR之间的映射关系,用于在计算节点发起读取请求时依据VF设备Expansion ROMBAR查找到PF设备Expansion ROM BAR,而为了建立映射关系,就需要管理节点先通过物理基地址获取模块602获取PF设备Expansion ROM BAR。
在本实施例中,SR-IOV设备的Expansion ROM可以保存在SR-IOV设备本地、管理节点等除计算节点以外的设备上,即PF设备的Expansion ROM所在存储空间可以位于除计算节点以外的其他设备上,这样可以使得计算节点本地无需增加存储介质来保存VF设备的Expansion ROM,从而减少系统硬件的开销。
需要说明的是,根据保存PF设备Expansion ROM的设备不同,本实施例中为物理基地址获取模块602提供了多种不同的实施方式。
例如,在本实施例的一些实施方式中,PF设备Expansion ROM可以保存在管理节点,即保存PF设备Expansion ROM的存储空间位于管理节点中。而由于PF设备Expansion ROM最初是保存在PF设备本地的,所以物理基地址获取模块602在获取物理基地址时需要先将PF设备本地的Expansion ROM拷贝到管理节点。具体地,物理基地址获取模块602例如可以包括基本驱动拷贝子模块和第一基地址确定子模块,其中,基本驱动拷贝子模块可以用于从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中,第一基地址确定子模块可以用于依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间确定所述物理基地址。更进一步地,基本驱动拷贝子模块具体可以将PF设备Expansion ROM拷贝到管理节点的缓存(Buffer)中,此时,物理基地址表示的是PF设备Expansion ROM所在的管理节点Buffer的基地址。可以理解的是,如果物理基地址获取模块602获取到的物理基地址表示的是PF设备Expansion ROM保存在管理节点,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取该PF设备Expansion ROM。
又如,在本实施例的另一实施方式中,PF设备Expansion ROM可以保存在PF设备本地,即保存PF设备Expansion ROM的存储空间位于PF设备中。此时,由于PF设备Expansion ROM最初就是保存在PF设备本地的,因此,物理基地址获取模块602不需要再对PF设备Expansion ROM进行拷贝,而可以直接通过PF设备Expansion ROM BAR来获取物理基地址。具体地,物理基地址获取模块602又如可以包括寄存器查找子模块和第二基地址确定子模块,其中,寄存器查找子模块可以用于在所述物理设备中查找所述物理设备的基本驱动基地址寄存器,第二基地址确定子模块可以用于将查找到的基地址寄存器所表示的基地址确定为所述物理基地址。其中,PF设备ExpansionROM具体可以是保存在PF设备的ROM(只读内存)中,PF设备ExpansionROM BAR用于存放PF设备Expansion ROM基地址的寄存器。可以理解的是,当物理基地址获取模块602获取到的物理基地址表示的是PF设备ExpansionROM保存在PF设备本地,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取该PF设备Expansion ROM。
映射关系建立模块603,用于建立所述虚拟基地址与所述物理基地址之间的映射关系。
其中,计算节点发起的VF设备Expansion ROM BAR访问请求,是为了确定系统内是否存在VF设备Expansion ROM BAR,因此,该基地址访问请求以及重定向基地址访问请求中均包含有VF设备Expansion ROM的基地址。因此,管理节点可以从基地址请求接收模块601接收到的重定向基地址访问请求中获取VF设备Expansion ROM的基地址,再通过映射关系建立模块603利用获取到的VF设备Expansion ROM基地址建立映射关系。
可以理解的是,为了利于计算节点对PF设备Expansion ROM进行读取,可以在从重定向基地址访问请求中获取虚拟基地址之后,为VF设备模拟一个存放该虚拟基地址的VF设备Expansion ROM BAR。相应地,映射关系建立模块603所建立的映射关系可以具体是VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间基地址之间的映射关系。例如,在前述物理基地址表示PF设备Expansion ROM保存在管理节点Buffer的物理基地址获取模块602实施方式中,映射关系具体可以是VF设备Expansion ROM BAR与管理节点Buffer基地址之间的映射;又如,在前述物理基地址表示PF设备Expansion ROM保存在PF设备本地的物理基地址获取模块602实施方式中,映射关系具体可以是VF设备Expansion ROM BAR与PF设备Expansion ROMBAR之间的映射。
需要说明的是,根据在计算节点发起读取请求时执行依据虚拟基地址查找物理基地址的设备不同,在映射关系建立模块603建立映射关系之后可以将映射关系保存在不同的设备上。
在本实施例的一些实施方式中,映射关系建立模块603建立映射关系之后可以将映射关系保存在管理节点本地,当计算节点基于虚拟基地址发起读取请求时,交换设备可以将读取请求转发到管理节点,管理节点再依据映射关系查找物理基地址。例如,结合前述物理基地址表示PF设备Expansion ROM保存在管理节点的物理基地址获取模块602实施方式,在由管理节点来查找虚拟基地址对应的物理基地址的基础上,由于虚拟基地址所表示的存储空间也位于管理节点,PF设备Expansion ROM也需要管理节点来提供,因此,可以使得对计算节点读取请求的反馈处理都集中到管理节点来处理,减少交换设备上的技术改造。
在本实施例的另一些实施方式中,映射关系建立模块603建立映射关系之后可以将映射关系保存到交换设备,当计算节点基于虚拟基地址发起读取请求时,交换设备可以依据其本地保存的映射关系以及读取请求中的虚拟基地址来查找物理基地址。例如,结合前述物理基地址表示PF设备ExpansionROM保存在PF设备本地的物理基地址获取模块602实施方式,由交换设备而不是管理节点来查找虚拟基地址对应的物理基地址,由于物理基地址所表示的存储空间位于PF设备,PF设备Expansion ROM需要由PF设备来提供,因此,可以使得对计算节点读取请求的反馈处理只涉及交换设备与PF设备之间的交互而不需要管理节点的参与,从而减少了对读取请求的反馈处理需要调用的设备,缩短了反馈处理的时间。
当然,在本实施例的又一些实施方式中,保存映射关系的设备也可以不必配合物理基地址所指向的设备。例如,当物理基地址表示PF设备ExpansionROM保存在管理节点上时,可以由交换设备来保存映射关系,而在读取时,可以由交换设备依据映射关系来查找物理基地址并依据物理基地址去管理节点上获取PF设备Expansion ROM发送给计算节点。又如,当物理基地址表示PF设备Expansion ROM保存在PF设备本地时,可以由管理节点自身来保存映射关系,而在读取时,可以是由管理节点依据映射关系来查找物理基地址然后再从PF设备上获取PF设备Expansion ROM发送给计算节点。
成功发送模块604,用于将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求。
其中,所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取属于所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
当计算节点接收到基地址访问成功信息时,可以确认PCI配置空间执行了VF设备Expansion ROM BAR,此时,可以基于虚拟基地址发起读取请求,以便通过已建立的映射关系将PF设备Expansion ROM读取到计算节点本地,完成从PF设备Expansion ROM中加载与VF设备匹配的Expansion ROM镜像文件,并利用加载的Expansion ROM对VF设备进行基本驱动设置,实现从VF设备引导操作系统启动。其中,基于虚拟基地址发起的读取请求具体可以是针对虚拟基地址的内存映射IO(MMIO)访问请求,计算节点读取到的PF设备Expansion ROM具体可以是读取到计算节点本地BIOS内存中。
可以理解的是,基于前述保存映射关系设备不同的实施方式,相对应的PF设备Expansion ROM读取方式也不同。
在本实施例的一些实施方式中,当映射关系保存在管理节点时,交换设备可以将读取请求转发到管理节点,由管理节点来查找物理基地址。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在管理节点的物理基地址获取模块602实施方式基础上,管理节点还可以包括读取请求接收模块、第一基地址查询模块和基本驱动发送模块,其中,读取请求接收模块可以用于接收所述交换设备转发的所述读取请求,第一基地址查询模块可以用于依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,基本驱动发送模块可以用于从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在本实施例的另一些实施方式中,当映射关系保存在交换设备时,可以由交换设备来查找物理基地址。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在PF设备本地的物理基地址获取模块602实施方式基础上,管理节点还可以包括映射关系保存模块,其中,映射关系保存模块可以用于响应于建立所述虚拟基地址与所述物理基地址之间的映射关系,将所述映射关系保存到所述交换设备,相应地,所述读取请求可以具体用于所述交换设备依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。其中,对于计算节点的读取请求的完成报文或数据响应报文,交换设备需要将数据响应报文中的执行设备标识(Completer ID)由PF设备的BDF(Bus、Device和Function)修改为VF设备的全局BDF。可以理解的是,在交换设备上可以单独设置一个Intercept模块,用于截获计算节点发起的读取请求的完成报文并对该完成报文的Completer ID进行修改。
当然,在本实施例的又一些实施方式中,针对读取请求来查找物理基地址的设备也可以是没有保存映射关系的设备。例如,当映射关系保存在管理节点上时,也可以由交换设备来查找物理基地址,具体地,交换设备可以在接收读取请求时去管理节点上获取映射关系来查找物理基地址。
此外,在本实施例的再一些实施方式中,针对读取请求中查找物理基地址的设备也可以不必配合物理基地址所指向的设备。例如,当物理基地址表示PF设备Expansion ROM保存在管理节点上时,可以是交换设备依据映射关系来查找物理基地址并依据物理基地址去管理节点上获取PF设备ExpansionROM发送给计算节点。又如,当物理基地址表示PF设备Expansion ROM保存在PF设备本地时,可以是管理节点依据映射关系来查找物理基地址然后再从PF设备上获取PF设备Expansion ROM发送给计算节点。
本实施例中提供的管理节点,通过交换设备将计算节点对VF设备Expansion ROM的基地址访问请求重定向到管理节点,管理节点则在获取到PF设备Expansion ROM基地址的基础上,利用基地址访问请求中的VF设备Expansion ROM基地址为VF设备模拟一个VF设备Expansion ROM BAR并建立VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间的基地址之间的映射,再向计算节点返回基地址访问成功信息,使得计算节点能够基于VF设备Expansion ROM的基地址发起读取请求并能够通过映射关系读取到PF设备Expansion ROM,从而使得计算节点能够利用PF设备Expansion ROM中所包含的VF设备Expansion ROM完成对VF设备的基本驱动配置,实现从VF设备启动操作系统。
此外,在实现计算节点从VF设备启动操作系统的同时,还可以使计算节点可以从管理节点、SR-IOV设备等其他设备上读取VF设备Expansion ROM,使得VF设备Expansion ROM无需保存在计算节点本地,从而避免了计算节点本地增加存储介质,减少了多处理器系统中硬件的开销。
参见图7,示出了本发明中多处理器系统中的交换设备实施例1的结构图。本实施例中的交换设备,例如可以包括基地址请求重定向模块701、成功信息接收模块702和成功信息转发模块703,其中:
基地址请求重定向模块701,用于对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;所述重定向基地址访问请求,用于所述管理节点获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系。
在本实施例的一些实施方式中,为了实现管理节点具有对系统全局设备的管理权限而减少交换设备上的技术改造,基地址请求重定向模块701可以将计算节点发起的所有PCI配置请求都重定向到管理节点,而由管理节点来判断接收到的PCI配置请求是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果来确定是否执行本实施例的后续步骤。具体地,基地址请求重定向模块701例如可以包括配置请求接收子模块和配置请求重定向子模块,其中,配置请求接收子模块可以用于接收所述计算节点发起的PCI配置请求,配置请求重定向子模块可以用于对所述PCI配置请求进行重定向,向所述管理节点发送重定向配置请求,以便所述管理节点判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是则将所述重定向配置请求确定为所述重定向基地址访问请求。当然,在本实施例的另一些实施方式中,对于计算节点发起的PCI配置请求也可以由交换设备中的基地址请求重定向模块701来判断是否为对VF设备Expansion ROM BAR的访问请求,并依据判断结果确定是否将该配置请求重定向到管理节点。
需要说明的是,本实施例中的多处理器系统,是以支持SR-IOV技术的物理设备作为共享IO设备。例如,该物理设备可以是支持SR-IOV特性的主机适配器(Host Bus Adapter,简称HBA)、网卡等IO设备,如PMC提供的HBA卡、Intel网卡等。此外,多处理器系统中的交换设备可以采用PCIe交换器(PCIeSwitch),如PCIe交换机、PCIe交换芯片等。
可以理解的是,为了保证计算节点本地无需要增加存储介质来保存PF设备的Expansion ROM而减少系统硬件的开销,SR-IOV设备的Expansion ROM可以保存在SR-IOV设备本地、管理节点等除计算节点以外的设备上,即PF设备的Expansion ROM所在存储空间可以位于除计算节点以外的其他设备上。
例如,在本实施例的一些实施方式中,PF设备Expansion ROM可以保存在管理节点,即保存PF设备Expansion ROM的存储空间位于管理节点中。而由于PF设备Expansion ROM最初是保存在PF设备本地的,所以在获取物理基地址时需要先将PF设备本地的Expansion ROM拷贝到管理节点。具体地,所述存储空间可以位于所述管理节点中,所述物理基地址可以具体为所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间而确定的。可以理解的是,如果获取到的物理基地址表示的是PF设备Expansion ROM保存在管理节点,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取其PF设备Expansion ROM。
又如,在本实施例的另一些实施方式中,PF设备Expansion ROM可以保存在PF设备本地,即保存PF设备Expansion ROM的存储空间位于PF设备中。此时,由于PF设备Expansion ROM最初就是保存在PF设备本地的,因此,管理节点不需要再对PF设备Expansion ROM进行拷贝,而可以直接通过PF设备Expansion ROM BAR来获取物理基地址。具体地,所述存储空间可以位于所述物理设备中,所述物理基地址可以具体为所述管理节点在所述物理设备中查找到的所述物理设备的基本驱动基地址寄存器所表示的基地址。可以理解的是,当获取到的物理基地址表示的是PF设备Expansion ROM保存在PF设备本地,则计算节点对Expansion ROM发起读取请求时,需要到管理节点上读取该VF设备Expansion ROM。
成功信息接收模块702,用于接收所述管理节点发送的基地址访问成功信息。
成功信息转发模块703,用于将所述基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
其中,所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在本实施例的一些实施方式中,管理节点建立映射关系之后可以保存在管理节点本地,当计算节点基于物理基地址发起读取请求时,交换设备可以将读取请求转发到管理节点,管理节点再依据映射关系查找物理基地址,之后交换设备再将管理节点发送的PF设备Expansion ROM转发给计算节点,从而完成读取。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在管理节点的实施方式基础上,交换设备还可以包括读取请求转发模块和第一基本驱动发送模块,其中,读取请求转发模块可以用于将从所述计算节点接收到的所述读取请求转发到所述管理节点,以便所述管理节点依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动,第一基本驱动发送模块可以用于接收所述管理节点发送的所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
在本实施例的另一些实施方式中,管理节点建立映射关系之后可以将映射关系保存到交换设备,当计算节点基于虚拟基地址发起读取请求时,交换设备可以依据其本地保存的映射关系以及读取请求中的虚拟基地址来查找物理基地址。具体地,例如在前述物理基地址表示PF设备Expansion ROM保存在PF设备本地的实施方式基础上,所述映射关系还可以在建立之后由所述管理节点保存到所述交换设备,相应地,交换设备还可以包括读取请求接收模块、第二基地址查询模块和第二基本驱动发送模块,其中,读取请求接收模块可以用于接收所述计算节点发送的所述读取请求,第二基地址查询模块可以用于依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,第二基本驱动发送模块可以用于从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
本实施例提供的交换设备,通过交换设备将计算节点对VF设备ExpansionROM的基地址访问请求重定向到管理节点,管理节点则在获取到PF设备Expansion ROM基地址的基础上,利用基地址访问请求中的VF设备ExpansionROM基地址为VF设备模拟一个VF设备Expansion ROM BAR并建立VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间的基地址之间的映射,再向计算节点返回基地址访问成功信息,使得计算节点能够在基于VF设备Expansion ROM的基地址发起读取请求并能够通过映射关系读取到PF设备Expansion ROM,从而使得计算节点能够利用PF设备ExpansionROM中所包含的VF设备Expansion ROM完成对VF设备的基本驱动配置,实现从VF设备启动操作系统。
参见图8,示出了本发明中多处理器系统实施例1的结构图。在本实施例中,多处理器系统可以包括管理节点801、计算节点802、交换设备803和支持单根输入输出虚拟化技术的物理设备804;其中,所述管理节点801为前述图5所示管理节点实施例中任意一种实施方式的管理节点,所述交换设备803为前述图6所示交换设备实施例中任意一种实施方式的交换设备。
本实施例提供的多处理器系统,通过交换设备将计算节点对VF设备Expansion ROM的基地址访问请求重定向到管理节点,管理节点则在获取到PF设备Expansion ROM基地址的基础上,利用基地址访问请求中的VF设备Expansion ROM基地址为VF设备模拟一个VF设备Expansion ROM BAR并建立VF设备Expansion ROM BAR与PF设备Expansion ROM所在存储空间的基地址之间的映射,再向计算节点返回基地址访问成功信息,使得计算节点能够在基于VF设备Expansion ROM的基地址发起读取请求并能够通过映射关系读取到PF设备Expansion ROM,从而使得计算节点能够利用PF设备Expansion ROM中所包含的VF设备Expansion ROM完成对VF设备的基本驱动配置,实现从VF设备启动操作系统。
需要说明的是,本实施例提供的多处理器系统由于是基于前述管理节点和交换设备的设备实施例结合而得到的,因此,本实施例对多处理器系统的描述较为简单,本领域技术人员可以理解的是,可以参照前述实施例中任意一种管理节点的实施方式与任意一种交换设备的实施方式结合实施,以构造本发明的系统实施例。本领域技术人员在不付出创造性劳动下获取的其他实现方式均属于本发明的保护范围。
在从模块化功能实体的角度对本发明实施方式提供的相关设备及系统进行介绍之后,下面从硬件处理的角度对本发明实施方式提供的相关设备进行介绍。
参见图9,示出了本发明中多处理器系统中的管理节点实施例2的结构图。在本实施例中,所述管理节点901可以包括:至少一个第一处理器902(例如CPU),至少一个第一网络接口903或者其他通信接口,第一存储器904,和至少一个第一通信总线905,用于实现这些装置之间的连接通信。第一处理器902用于执行第一存储器904中存储的可执行模块,例如计算机程序。第一存储器904可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个第一网络接口903(可以是有线或者无线)实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
通过调用第一存储器904存储的操作指令,第一处理器902用于执行如下步骤:
接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;
获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址;
以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
进一步地,在本实施例的一些实施方式中,所述存储空间可以位于所述管理节点中,相应地,为了完成所述获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址的步骤,第一处理器902可以具体执行以下步骤:
从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中;
依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间,确定所述物理基地址。
进一步地,在本实施例的另一些实施方式中,第一处理器902还可以用于执行以下步骤:
接收所述交换设备转发的所述读取请求;
依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
进一步地,在本实施例的又一些实施例中,所述存储空间可以位于所述物理设备中,相应地,为了完成所述获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址的步骤,第一处理器902可以具体执行以下步骤:
在所述物理设备中查找所述物理设备的基本驱动基地址寄存器;
将查找到的基地址寄存器所表示的基地址确定为所述物理基地址。
进一步地,在本实施例的再一些实施方式中,第一处理器902还可以用于执行以下步骤:
响应于建立所述虚拟基地址与所述物理基地址之间的映射关系,将所述映射关系保存到所述交换设备;
所述读取请求,具体用于所述交换设备依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
进一步地,在本实施例的又再一些实施例中,为了完成所述接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求的步骤,第一处理器902可以具体执行以下步骤:
接收所述交换设备重定向所述计算节点发起的外设部件互连标准PCI配置请求而发送的重定向配置请求;
判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。
进一步地,在本实施例的又再一些实施例中,所述物理设备可以为主机适配器,所述交换设备可以为PCIe交换机。
参见图10,示出了本发明中多处理器系统中的交换设备实施例2的结构图。在本实施例中,所述交换设备1001可以包括:至少一个第二处理器1002(例如CPU),至少一个第二网络接口1003或者其他通信接口,第二存储器1004,和至少一个第二通信总线1005,用于实现这些装置之间的连接通信。第二处理器1002用于执行第二存储器1004中存储的可执行模块,例如计算机程序。第二存储器1004可能包含高速随机存取存储器(RAM:RandomAccess Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个第二网络接口1003(可以是有线或者无线)实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
通过调用第二存储器1004存储的操作指令,第二处理器1002用于执行如下步骤:
对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;所述重定向基地址访问请求,用于所述管理节点获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
接收所述管理节点发送的基地址访问成功信息,并将所述基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
进一步地,在本实施例的一些实施方式中,所述存储空间可以位于所述管理节点中,相应地,所述物理基地址可以具体为所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间而确定的。
进一步地,在本实施例的另一些实施方式中,第二处理器1002还可以用于执行以下步骤:
将从所述计算节点接收到的所述读取请求转发到所述管理节点,以便所述管理节点依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动;
接收所述管理节点发送的所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
进一步地,在本实施例的又一些实施例中,所述存储空间可以位于所述物理设备中,相应地,所述物理基地址可以具体为所述管理节点在所述物理设备中查找到的所述物理设备的基本驱动基地址寄存器所表示的基地址。
进一步地,在本实施例的再一些实施方式中,所述映射关系在建立之后可以由所述管理节点保存到所述交换设备,相应地,第二处理器1002还可以用于执行以下步骤:
接收所述计算节点发送的所述读取请求;
依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
进一步地,在本实施例的又再一些实施例中,为了完成所述对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求的步骤,第二处理器1002可以具体执行以下步骤:
接收所述计算节点发起的PCI配置请求;
对所述PCI配置请求进行重定向,向所述管理节点发送重定向配置请求,以便所述管理节点判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。
进一步地,在本实施例的又再一些实施例中,所述物理设备可以为主机适配器,所述交换设备可以为PCIe交换机。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的相关设备具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法、相关设备和系统,可以通过其它的方式实现。例如,以上所描述的相关设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (25)

1.一种启动操作系统的方法,其特征在于,应用于多处理器系统中的管理节点,包括:
接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;
获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址;
以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
2.根据权利要求1所述的方法,其特征在于,所述存储空间位于所述管理节点中;
所述获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址,包括:
从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中;
依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间,确定所述物理基地址。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收所述交换设备转发的所述读取请求;
依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
4.根据权利要求1所述的方法,其特征在于,所述存储空间位于所述物理设备中;
所述获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址,包括:
在所述物理设备中查找所述物理设备的基本驱动基地址寄存器;
将查找到的基地址寄存器所表示的基地址确定为所述物理基地址。
5.根据权利要求4所述的方法,其特征在于,还包括:
响应于建立所述虚拟基地址与所述物理基地址之间的映射关系,将所述映射关系保存到所述交换设备;
所述读取请求,具体用于所述交换设备依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
6.根据权利要求1所述的方法,其特征在于,所述接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,包括:
接收所述交换设备重定向所述计算节点发起的外设部件互连标准PCI配置请求而发送的重定向配置请求;
判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。
7.一种启动操作系统的方法,其特征在于,应用于多处理器系统中的交换设备,包括:
对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;所述重定向基地址访问请求,用于所述管理节点获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
接收所述管理节点发送的基地址访问成功信息,并将所述基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
8.根据权利要求7所述的方法,其特征在于,所述存储空间位于所述管理节点中;
所述物理基地址,具体为所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间而确定的。
9.根据权利要求8所述的方法,其特征在于,还包括:
将从所述计算节点接收到的所述读取请求转发到所述管理节点,以便所述管理节点依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动;
接收所述管理节点发送的所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
10.根据权利要求7所述的方法,其特征在于,所述存储空间位于所述物理设备中;
所述物理基地址,具体为所述管理节点在所述物理设备中查找到的所述物理设备的基本驱动基地址寄存器所表示的基地址。
11.根据权利要求10所述的方法,其特征在于,所述映射关系在建立之后由所述管理节点保存到所述交换设备;
所述方法还包括:
接收所述计算节点发送的所述读取请求;
依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
12.根据权利要求7所述的方法,其特征在于,对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,包括:
接收所述计算节点发起的PCI配置请求;
对所述PCI配置请求进行重定向,向所述管理节点发送重定向配置请求,以便所述管理节点判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是,则将所述重定向配置请求确定为所述重定向基地址访问请求。
13.一种多处理器系统中的管理节点,其特征在于,包括:
基地址请求接收模块,用于接收交换设备重定向计算节点对虚拟设备基本驱动的基地址访问请求而发送的重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;
物理基地址获取模块,用于获取所述物理设备的基本驱动所在存储空间的基地址,作为物理基地址;
映射关系建立模块,用于以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
成功信息发送模块,用于将基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
14.根据权利要求13所述的设备,其特征在于,所述存储空间位于所述管理节点中;
所述物理基地址获取模块包括:
基本驱动拷贝子模块,用于从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中;
第一基地址确定子模块,用于依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间,确定所述物理基地址。
15.根据权利要求14所述的设备,其特征在于,还包括:
读取请求接收模块,用于接收所述交换设备转发的所述读取请求;
第一基地址查询模块,用于依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
基本驱动发送模块,用于从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
16.根据权利要求13所述的设备,其特征在于,所述存储空间位于所述物理设备中;
所述物理基地址获取模块包括:
寄存器查找子模块,用于在所述物理设备中查找所述物理设备的基本驱动基地址寄存器;
第二基地址确定子模块,用于将查找到的基地址寄存器所表示的基地址确定为所述物理基地址。
17.根据权利要求16所述的设备,其特征在于,还包括:
映射关系保存模块,用于响应于建立所述虚拟基地址与所述物理基地址之间的映射关系,将所述映射关系保存到所述交换设备;
所述读取请求,具体用于所述交换设备依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储空间中提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
18.根据权利要求13所述的设备,其特征在于,所述基地址请求接收模块包括:
配置请求接收子模块,用于接收所述交换设备重定向所述计算节点发起的PCI配置请求而发送的重定向配置请求;
基地址请求判断子模块,用于判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址;
基地址请求确定子模块,用于在所述基地址请求判断子模块的判断结果为是的情况下,将所述重定向配置请求确定为所述重定向基地址访问请求。
19.一种多处理器系统中的交换设备,其特征在于,包括:
基地址请求重定向模块,用于对接收到的计算节点对虚拟设备基本驱动的基地址访问请求进行重定向并向所述管理节点发送重定向基地址访问请求,所述虚拟设备为所述管理节点分配给所述计算节点的、由支持单根输入输出虚拟化技术的物理设备虚拟化而形成的虚拟设备;所述重定向基地址访问请求,用于所述管理节点获取所述物理设备的基本驱动所在存储空间的基地址作为物理基地址,并以所述重定向基地址访问请求中的虚拟设备基本驱动基地址作为虚拟基地址,建立所述虚拟基地址与所述物理基地址之间的映射关系;
成功信息接收模块,用于接收所述管理节点发送的基地址访问成功信息;
成功信息转发模块,用于将所述基地址访问成功信息发送给所述计算节点,以便所述计算节点基于所述虚拟基地址发起读取请求;
所述读取请求,用于所述计算节点从基于所述读取请求中的虚拟基地址在所述映射关系中对应的物理基地址而查找到的所述存储空间中读取属于所述物理设备的基本驱动,并利用读取到的所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
20.根据权利要求19所述的设备,其特征在于,所述存储空间位于所述管理节点中;
所述物理基地址,具体为所述管理节点从所述物理设备中拷贝所述物理设备的基本驱动到所述管理节点中并依据所述物理设备的基本驱动在所述管理节点中占据的所述存储空间而确定的。
21.根据权利要求20所述的设备,其特征在于,还包括:
读取请求转发模块,用于将从所述计算节点接收到的所述读取请求转发到所述管理节点,以便所述管理节点依据所述映射关系查询所述读取请求中的虚拟基地址所对应的物理基地址,并从所述物理基地址表示的所述存储子空间中提取所述物理设备的基本驱动;
第一基本驱动发送模块,用于接收所述管理节点发送的所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
22.根据权利要求19所述的设备,其特征在于,所述存储空间位于所述物理设备中;
所述物理基地址,具体为所述管理节点在所述物理设备中查找到的所述物理设备的基本驱动基地址寄存器所表示的基地址。
23.根据权利要求22所述的设备,其特征在于,所述映射关系在建立之后由所述管理节点保存到所述交换设备;
所述设备还包括:
读取请求接收模块,用于接收所述计算节点发送的所述读取请求;
第二基地址查询模块,用于依据所述映射关系,查询所述读取请求中的虚拟基地址所对应的物理基地址;
第二基本驱动发送模块,用于从所述物理基地址表示的所述存储空间中,提取所述物理设备的基本驱动并发送给所述计算节点,以便所述计算节点利用所述物理设备的基本驱动对所述虚拟设备进行基本驱动配置,实现所述计算节点从所述虚拟设备引导启动操作系统。
24.根据权利要求19所述的设备,其特征在于,所述基地址请求重定向模块包括:
配置请求接收子模块,用于接收所述计算节点发起的PCI配置请求;
配置请求重定向子模块,用于对所述PCI配置请求进行重定向,向所述管理节点发送重定向配置请求,以便所述管理节点判断所述重定向配置请求是否表示请求访问所述虚拟设备基本驱动基地址,如果是则将所述重定向配置请求确定为所述重定向基地址访问请求。
25.一种多处理器系统,其特征在于,包括管理节点、计算节点、交换设备和支持单根输入输出虚拟化技术的物理设备;其中,所述管理节点为如权利要求13~18任意一项所述的管理节点,所述交换设备为如权利要求19~24任意一项所述的交换设备。
CN201410208810.6A 2014-05-16 2014-05-16 一种启动操作系统的方法、相关设备和系统 Active CN103986602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410208810.6A CN103986602B (zh) 2014-05-16 2014-05-16 一种启动操作系统的方法、相关设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410208810.6A CN103986602B (zh) 2014-05-16 2014-05-16 一种启动操作系统的方法、相关设备和系统

Publications (2)

Publication Number Publication Date
CN103986602A true CN103986602A (zh) 2014-08-13
CN103986602B CN103986602B (zh) 2017-12-12

Family

ID=51278429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410208810.6A Active CN103986602B (zh) 2014-05-16 2014-05-16 一种启动操作系统的方法、相关设备和系统

Country Status (1)

Country Link
CN (1) CN103986602B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491082A (zh) * 2014-09-16 2016-04-13 华为技术有限公司 远程资源访问方法和交换设备
CN107533461A (zh) * 2015-04-24 2018-01-02 优创半导体科技有限公司 具有用于对存储器寻址的不同寄存器的计算机处理器
CN108777634A (zh) * 2018-05-24 2018-11-09 许继电气股份有限公司 一种PCIe交换机及其端点地址空间分配方法
CN111796850A (zh) * 2020-07-20 2020-10-20 上海航天电子通讯设备研究所 一种卫星载荷软件在轨维护设备及方法
CN114185650A (zh) * 2021-12-14 2022-03-15 平安壹账通云科技(深圳)有限公司 Linux系统下识别SCSI设备的方法、系统、设备及存储介质
CN114880256A (zh) * 2017-04-14 2022-08-09 华为技术有限公司 数据处理方法、存储系统和交换设备
CN114995959A (zh) * 2022-06-30 2022-09-02 中国电信股份有限公司 虚拟机热迁移控制方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102906692A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 用于执行有选择地修改适配器功能参数的指令的方法、用于相同操作的计算机系统和计算机程序产品
CN103201721A (zh) * 2012-08-29 2013-07-10 华为技术有限公司 虚拟机热迁移的系统和方法
US8521941B2 (en) * 2010-12-28 2013-08-27 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102906692A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 用于执行有选择地修改适配器功能参数的指令的方法、用于相同操作的计算机系统和计算机程序产品
US8521941B2 (en) * 2010-12-28 2013-08-27 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
CN103201721A (zh) * 2012-08-29 2013-07-10 华为技术有限公司 虚拟机热迁移的系统和方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491082A (zh) * 2014-09-16 2016-04-13 华为技术有限公司 远程资源访问方法和交换设备
CN105491082B (zh) * 2014-09-16 2019-02-19 华为技术有限公司 远程资源访问方法和交换设备
US10216664B2 (en) 2014-09-16 2019-02-26 Huawei Technologies Co., Ltd. Remote resource access method and switching device
CN107533461A (zh) * 2015-04-24 2018-01-02 优创半导体科技有限公司 具有用于对存储器寻址的不同寄存器的计算机处理器
CN114880256A (zh) * 2017-04-14 2022-08-09 华为技术有限公司 数据处理方法、存储系统和交换设备
CN108777634A (zh) * 2018-05-24 2018-11-09 许继电气股份有限公司 一种PCIe交换机及其端点地址空间分配方法
CN108777634B (zh) * 2018-05-24 2021-05-07 许继电气股份有限公司 一种PCIe交换机及其端点地址空间分配方法
CN111796850A (zh) * 2020-07-20 2020-10-20 上海航天电子通讯设备研究所 一种卫星载荷软件在轨维护设备及方法
CN111796850B (zh) * 2020-07-20 2021-05-11 上海航天电子通讯设备研究所 一种卫星载荷软件在轨维护设备及方法
CN114185650A (zh) * 2021-12-14 2022-03-15 平安壹账通云科技(深圳)有限公司 Linux系统下识别SCSI设备的方法、系统、设备及存储介质
CN114185650B (zh) * 2021-12-14 2023-07-25 平安壹账通云科技(深圳)有限公司 Linux系统下识别SCSI设备的方法、系统、设备及存储介质
CN114995959A (zh) * 2022-06-30 2022-09-02 中国电信股份有限公司 虚拟机热迁移控制方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN103986602B (zh) 2017-12-12

Similar Documents

Publication Publication Date Title
CN103986602A (zh) 一种启动操作系统的方法、相关设备和系统
EP3214553A1 (en) Storage resource access method supporting sr-iov, storage controller and storage device
US9135190B1 (en) Multi-profile memory controller for computing devices
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
EP2936325B1 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
CN102707991B (zh) 多根i/o虚拟化共享方法和系统
CN100472451C (zh) 一种虚拟机系统及其硬件设备访问方法
US20160291984A1 (en) Resource processing method, operating system, and device
CN103150279B (zh) 一种主机与基板管理控制器共享设备的方法
KR102317657B1 (ko) Nvdimm을 포함하는 장치 및 그것의 엑세스 방법
CN101163133B (zh) 一种多机虚拟环境下实现资源共享的通信系统及通信方法
US9336032B2 (en) Zoning data to a virtual machine
CN103955441A (zh) 一种设备管理系统、方法及一种io扩展接口
CN103873489A (zh) 具有PCIe接口的装置共享系统及方法
CN104850502A (zh) 一种数据的访问方法、装置及设备
US20150195213A1 (en) Request distribution method and information processing apparatus
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
CN102025766A (zh) 自主存储器架构
CN103995733A (zh) 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法
CN116028455A (zh) 一种数据处理方法、装置、存储介质及电子设备
CN106354428B (zh) 一种多物理层分区计算机体系结构的存储共享系统
CN105677491A (zh) 一种数据传输方法及装置
CN115114042A (zh) 存储数据访问方法、装置、电子设备和存储介质
US11868799B2 (en) Command information transmission method, system, and apparatus, and readable storage medium
CN104714792A (zh) 多进程共享数据处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant