IBM powerVM VIOS
引言
随着信息化技术不断发展,各个企业 IT 基础架构也在不断朝向虚拟化,大数据,云计算等精简,整合的趋势发展。虚拟化技术就显得尤为重要。今天要给大家介绍的是 Power 服务器虚拟化技术中的一小部分虚拟 IO 服务器,简称 VIOS。之后会图例说明虚拟 IO 服务器和 IBM i 互联的一些技术要点。
为了使大家更好的了解虚拟 IO 服务器,我们从虚拟 IO 服务器的底层概念 PowerVM 着手。PowerVM 的概念说的简单来讲就是 IBM Power 主机的虚拟化技术。通过这项虚拟化技术,能够使我们更灵活的创建 AIX,IBM i 及 Linux 应用环境,PowerVM 是介于操作系统和底层硬件之间的技术层,如(图 1)。
图 1. IBM Power 服务器虚拟化技术位置示意图
PowerVM 为 IBM Power 服务器和 blade 服务器提供工业化的虚拟化解决方案,并且 PowerVM 是一个庞大的家族,有诸多虚拟化技术,如 Hypervisor、微分区、动态内存共享、共享以太网适配器、动态分区迁移等等,如(图 2),用户可以根据自己的实际需求,选择性的使用这些技术用来服务于客户分区,PowerVM 有 3 大版本,精简版、标准版和企业版,不同版本的虚拟化功能也有很大差别,具体可参考文章结尾处文档。PowerVM 能够针对于客户分区来虚拟化 Power 主机的处理器、内存、存储及 I/O 资源,使我们的 Power 主机得以充分的利用,换言之,使我们的每一分钱都有其用武之地。
IBM Power 服务器的虚拟化技术组成及架构
图 2. IBM Power 服务器的虚拟化技术主要组成
虚拟 IO 服务器是 PowerVM 虚拟化技术的重要组成部分,既是一个软件应用,也是 Power 主机上的一个独立分区,虚拟 IO 服务器可以运行在虚拟化标准特征被激活的 Power5 或者 Power5 以后的任意型号的 Power 服务器上。虚拟 IO 服务器为其它一个或多个客户分区提供虚拟存储及网络资源。通过使用虚拟 IO 服务器,我们可以充分使用 Power 主机的资源,把除内存和 CPU 以外的所有资源分配给 VIOS 管理,然后根据客户分区不同需求,为其提供相应的网络及存储资源。当然,我们也可以借助虚拟 IO 服务器,为一些更复杂的 PowerVM 的虚拟化技术提供必要的技术支持,例如,活动分区迁移(LPM)以及 VMControl 实现的分区快速部署等。
既然虚拟 IO 服务器是一个独立的逻辑分区,它就会占用系统的资源,参考下面的表格,我们可以看到虚拟 IO 服务器所必须的最小的资源需求,参见表 1:
表 1. 虚拟 IO 服务器创建需求
资源 | 需求 |
---|---|
硬件管理控制器 (HMC) 或者集成虚拟化管理器 (IVM) | 对于创建客户分区和分配系统资源来讲,HMC 或者 IVM 是必须的 |
存储适配器 | 至少有一个存储适配器 |
物理硬盘 | 至少 30GB,可以共享 |
以太网适配器 | 想用 SEA,至少需要一个以太网适配器 |
内存 | 对于 Power7 的 base 来讲,至少需要 768M 内存 |
处理器 | 至少 0.05c 的处理器 |
我们通过一个实例说明创建虚拟 IO 服务器所需要的环境,处理器与内存资源。
表 2. 虚拟 IO 服务器创建例子
环境 | 处理器 | 内存 |
---|---|---|
简单环境 | 0.25c~0.5c 处理器 | 2GB |
复杂环境 | 1c~2c 处理器 | 4GB |
共享存储池的环境 | 至少 1c 处理器 | 4GB |
我们通过下面一张图(图 3)来了解一下虚拟 IO 服务器:
图 3. 虚拟 IO 服务器架构示意图
上面(图 3)中,有 4 个客户分区,一个虚拟 IO 服务器以及外部设备。
- 客户分区 1 部分:物理硬盘挂载于物理光纤适配器上,而物理光纤适配器是分配给虚拟 IO 服务器,由虚拟 IO 服务器进行管理,虚拟 IO 服务器建立虚拟 SCSI 通道与客户分区进行数据交互,客户分区 1 使用的硬盘也是虚拟 IO 服务器虚拟化后的硬盘。
- 客户分区 2 和 3 的部分:物理硬盘挂载于物理 SCSI 适配器上,而物理 SCSI 适配器同样是由虚拟 IO 服务器管理,对于客户分区 2,虚拟 IO 服务器为其提供了两个逻辑卷,体现在客户分区 2 中就是两块虚拟的硬盘;对于客户分区 3 的部分,虚拟 IO 服务器为其提供的是两个块文件,体现在客户分区 3 中同样是两块虚拟的硬盘。
- 客户分区 4 的部分:这部分是一个复杂的应用场景,物理磁带机挂载在物理 SCSI 适配器,物理硬盘挂载在物理光纤适配器,物理 SCSI 适配器和物理光纤适配器由虚拟 IO 服务器管理,在建立虚拟 SCSI 通道后与客户分区 4 进行数据互通,我们看到在客户分区 4 的部分中有虚拟 IO 服务器为其创建的虚拟磁带库,体现在客户分区中就是虚拟的磁带机,还有就是通过虚拟 SCSI 适配器挂载的实际的物理硬盘。
通过上面虚拟 IO 服务器架构示意图,我们可以看出,主机中的外设和硬盘都是挂载在物理 IO 适配器上,而相应的物理 IO 适配器都是分配给虚拟 IO 服务器统一管理,虚拟 IO 服务器通过虚拟化技术建立虚拟 SCSI 适配器,客户分区通过虚拟 SCSI 适配器与虚拟 IO 服务器进行数据交互。我们需要注意的是,对于虚拟 SCSI 适配器,服务器端一直配置在 VIOS,客户端一直配置在客户分区,这样,我们才能通过虚拟 IO 服务器对客户分区提供相应的服务,具体的配置细节,我会在下面的虚拟 IO 服务器和 IBM i 互联中做进一步阐述。
我们看到了虚拟 IO 服务器的多样化连接方式以及为客户分区提供不同类型的虚拟资源,那么虚拟 IO 服务器和传统的 I/O 结构有什么差异,他们之间的数据流向又是如何的呢?我们可以通过下面一张图(图 4)进行对比。左边一张是传统 I/O 结构图,硬盘和外设挂载到 I/O 适配器上,通过 I/O 处理器连接到系统总线并与 CPU 和内存进行数据交互。右边一张是虚拟 IO 服务器的结构图,硬盘挂载到物理 I/O 适配器后,由虚拟 IO 服务器统一管理,虚拟 IO 服务器将物理适配器虚拟化后,经由虚拟适配器通过虚拟 SCSI 的 Hpervisor 层连接到客户分区进行数据交互。
图 4. 传统架构与虚拟 IO 服务器架构对比图
了解并对比了数据流向,可以使我们更好的理解虚拟 IO 服务器的工作原理。通过对比,我们也可以看出,虚拟化结构更简洁,对资源的应用更充分。
虚拟 IO 服务器组件
下面让我们熟悉一下虚拟 IO 服务器的两个重要的组件共享以太网适配器(SEA)和集成虚拟化管理器(IVM)。
通常情况下,我们不会为每个逻辑分区配置单独的物理网卡,这样做只会既费钱又占空间,应用虚拟化的技术,我们会把实际的物理网卡分配给 VIOS,由 VIOS 把真实的物理网卡变成可以被各个客户分区共享的网络虚拟适配器 SEA,各个客户分区通过 SEA 与物理网卡交互用来访问外网,如下图(图 5):
图 5. 共享以太网适配器示意图
值得注意的是,和主机以太网适配器(HEA)一样,每个 SEA 最多支持 16 个客户分区与其就行物理访问。
下面我们介绍一下 VIOS 的另外一个重要组件,集成虚拟化管理器(IVM)。对于 Power 主机的硬件管理,通常我们会选择 HMC(硬件管理控制器),既方便又快捷,只是 HMC 是一个独立的硬件设备,需要计算成本。针对于企业简单的 IT 架构,IBM 推出了单台主机的管理方式,集成虚拟化管理器,IVM 是封装在 VIOS 内部的,一起被打包的应用软件,并在满足具有虚拟化特征,没有被 HMC 管理和具有默认的工厂配置等三个条件时,被激活。在 IVM 启用之后,可以完成诸如:分区创建,管理虚拟存储器和虚拟以太网等相应操作,可以视同于一个小型的 HMC(硬件管理控制器),当然,它与 HMC 主要区别是 HMC 可以同时管理多台 Power 主机,而 IVM 只能管理一台物理主机,下图是 IVM 的示意图(图 6)。
图 6. 集成虚拟化管理器示意图
虚拟 IO 服务器技术支持
虚拟 IO 服务器是针对 IO 的虚拟化服务器,一些高级别的虚拟化技术,都需要借助底层的数据交互为其提供支持,
下面简单介绍一下 VIOS 支持的虚拟化技术动态内存共享(AMS)。如图(图 7):
图 7. 动态内存共享示意图
从系统中单独划分出一部分物理内存做成内存池交由 Hypervisor 管理,不同的动态内存共享的客户分区共享池中内存,
分区定义的单个逻辑内存量不能超过内存池的大小,但逻辑内存总量可以超出内存池大小,当客户分区出现内存过量使用的情况下,Hypervisor 会将内存分成两个部分,一部分
放在内存池中,另外一部分放到由虚拟 IO 服务器管理的分页设备中,这就是动态内存共享的工作原理。
当我们的业务发展超出之前的规划时,短期解决内存不足的优良方案。
虚拟 IO 服务器和 IBM i
了解了虚拟 IO 服务器相应的概念,组成以及所能支持的高级别的虚拟化技术后,我们简单看一下虚拟 IO 服务器和 IBM i 分区之间的互联。当我们在 HMC 中建立分区的概要文件的时候,也就为逻辑分区和虚拟 IO 服务器之间的联系建立了第一步。如下图(图 8)所示:
图 8. 虚拟 IO 服务器和 IBM i 分区中配置文件的关系示意图
我们在建立 IBM i 逻辑分区概要文件的时候,虚拟 SCSI 选项中的虚拟适配器选项应为客户机,相应的虚拟 IO 服务器的虚拟适配器选项为服务器,IBM i 逻辑分区和虚拟 IO 服务器使用的虚拟适配器应为同一虚拟适配器,只是服务器端在虚拟 IO 服务器,
客户端在 IBM i 分区。虚拟 SCSI 配置完成后,指定 IBM i 分区加载初始程序的位置,如图(图 9):
图 9. IBM i 分区启动载入源示意图
IBM i 分区概要文件创建完成后,我们需要在虚拟 IO 服务器上为我们的 IBM i 逻辑分区分配相应的虚拟硬盘以及网络资源。
如果出于性能的考虑,IBM i 分区也可以使用 Power 主机的逻辑主机以太网适配器(LHEA)的端口用于网络应用,使用独立的物理硬盘作为存储的应用。
结束语
使用虚拟 IO 服务器可以充分利用系统中的资源,针对 IO 的操作更加方便和快捷。逻辑分区与虚拟 IO 服务器之间服务关系更加明朗。
随着虚拟化技术的不断发展,也会有越来越多的外部设备可以被兼容并应用到逻辑分区之中,使逻辑分区更加丰富多彩。
转自:http://www.kankanews.com/ICkengine/archives/52117.shtml
IBM powerVM VIOS的更多相关文章
- 【转】IBM PowerVM虚拟化技术笔记
1. 从CPU虚拟化的角度, 分区(partition)可以分成两大类:Micro-partition和Dedicated-procesor.前者可以将物理处理器以0.01的 粒度分配给微分区,分区创 ...
- KVM 介绍(5):libvirt 介绍 [ Libvrit for KVM/QEMU ]
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- Spring Boot工程发布到Docker
先聊聊闲话 搞过企业级的application运维的同仁肯定深有感触,每个application的功能交叉错杂,数据交换就让人焦头烂额(当然这和顶层业务设计有关系), 几十个application发布 ...
- libvirt
http://libvirt.org/index.html libvirt supports: The KVM/QEMU Linux hypervisor The Xen hypervisor on ...
- 【原创】Docker容器及Spring Boot微服务应用
Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复杂问题 传统项目实施过程中经常会出现“程序在我这跑得好好的,在你那怎么就不 ...
- VPS选购及辨别vps虚拟化技术
现在国内外的VPS(Virtual Private Server)服务商非常多,每个服务商使用的VPS架构都不同.VPS属于虚拟化服务器,中文名:虚拟专用服务器. 常见的VPS虚拟化架构有多种:Ope ...
- hyperVisor
当前主要的hyperVisors:VMware vSphere.微软Hyper-V.Citrix XenServer .IBM PowerVM.Red Hat Enterprise Virtuliza ...
- Virtualization API之libvirt
The virtualization API 之开源 libvirt探究 By Ruiy: libvirt supports Hypervisors(注,相关的hypervisors项目的权威网站已经 ...
- libvirt 命令行交互工具之virsh
libvirt是当前主流VM最低层库.IBM PowerVM也不例外,libvirt是深入玩虚拟化必须玩转的东西; 简单测试玩玩libvirt 的virsh命令行交互工具, 你我都知libvirt大体 ...
随机推荐
- H5常用代码:适配方案1
在工作中接到H5项目,第一件想到的事就应该是屏幕适配问题,解决了屏幕适配,接下来的事才能真正开始.从此篇博客开始会连续记录下我经常用到的一些适配方案. 对于传统的PC项目,直接在移动端打开也都是会以视 ...
- C#自定义控件
在网络上看了许多文章,终于找到了让我入门的自定义控件文章,这是链接 https://msdn.microsoft.com/zh-cn/library/cc438236(v=vs.71).aspx ...
- python元类
第一个实例: # coding=utf8 # 手动创建,返回一个类对象 MyShinyClass = type('MyShinyClass', () ,{}) print(MyShinyClass) ...
- javascript实例——时间日期篇(包含5个实例)
本来想在网上找一些js实例来练练手,结果发现一本书<突破JavaScript编程实例五十讲>,看了下内容还不错,就下了下来: 后面又下了该书籍的源码,一看才发现这本书编的日期是2002年的 ...
- 重学JAVA基础(八):锁的基本知识
1.线程状态 如上图,当我们新建一个线程,并start后,其实不一定会马上执行,因为只有操作系统调度了我们的线程,才能真正进行执行,而操作系统也随时可以运行其他线程,这时线程又回到可运行状态.这个过程 ...
- 关于PF_RING/Intel 82599/透明VPN的一些事
接近崩溃的边缘,今天这篇文章构思地点在医院,小小又生病了,宁可吊瓶不吃药,带了笔记本却无法上网,我什么都不能干,想了解一些东西,只能用3G,不敢 开热点,因为没人给我报销流量,本周末我只有一天时间,因 ...
- 软件设计之UML—UML中的六大关系
一.UML中的六大关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation), ...
- 关于 MySQL 的 boolean 和 tinyint(1)
boolean类型MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),MySQL里有四个常量:true,false,TRUE, ...
- 转:TinyXM--优秀的C++ XML解析器
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好. TinyXML是一个开源的解 ...
- Sublime Text 使用技巧
之前就一直在用Sublime Text 来作为默认的文本编辑工具,但也只是简单的用用,一些Sublime Text本身的快捷键什么的都没研究过,今天特地在网上看了一下,快捷键比较多,要想熟练运用还得在 ...