概要:

  一般而言,狭义的虚拟化有点类似于我们常听说到的“虚拟机”,即将一台物理机器虚拟成多台逻辑上的计算机,每个逻辑计算机相对独立,可以运行不同的操作系统,跑不同的应用,这样以达到可以更自由、灵活地分配和利用物理资源的目的。而广义的虚拟化技术是指对计算资源的抽象,这些计算资源包括CPU、内存、存储(磁盘)、网络,甚至也可以包括像GPU、FPGA这类外部设备。对计算资源做抽象的好处颇多,最显著的就是可以隐藏软硬件工作环境的复杂度,给使用方提供更简单、清晰的功能接口。

历史情况:

  在早期,业务都是基于应用(Application),如果一台服务器上运行了两个重要的应用,其中一个应用的出错可能引起系统的奔溃,导致另外一个应用也不可提供服务,因而出于稳定性和安全方面的考虑,一台服务器上通常只运行单一应用。在这样的场景下,伴随着业务发展,业务部门如果要新增一个应用或者对原有应用做扩展,就必须采购新的服务器。很少有人能准确评估出应用在不同场景下所需的服务器资源,所以采购部门采购的服务器一般都是性能较好的服务器,正常情况下运行应用都不会超过服务器额定负载的20%。这样就会带来一个问题,服务器资源被很大程序的浪费了。20世纪60年代,IBM开发了大型机CP-40系统,CP-40支持14个虚拟机同时运行,不过CP-40从未公开发售,只被用于IBM实验室里。CP-40架构被沿用到IBM之后开发的CP-67系统上,而后者是第一个支持虚拟化的商业大型机。运行在CP-67上的操作系统也被称为CMS (Console Monitor System),是IBM首个交互式的系统。在80年代末,Insignia Solutions公司发布了SoftPC,其能
够让用户在UNIX工作站上运行DOS操作系统的应用。在90年代末,VMWare公司发布了VMWare Workstation,最早版本的VMWare Workstation只能运行在windows之上,之后的版本添加了对其他操作系统的支持。

物理机操作系统与虚拟机操作系统的关系:

将物理机上的操作系统称为宿主机操作系统(Host OS),将虚拟机上的操作系统称为客户机操作系统(Guest OS),则它们的层次关系如下图:

虚拟化技术的优点:

1、提升资源的利用率
2、便于管理
3、减少不可提供服务的时间
4、快速部署
5、更高的灵活性

虚拟化技术的缺点:

1、虚拟化本身消耗计算资源
2、搭建和维护虚拟化环境消耗人力资源
3、安全问题

虚拟化分类:

对虚拟化的分类,我们可以按在硬件层上的虚拟化、操作系统层上的虚拟化、库函数层上的虚拟化和编程语言上的虚拟化来分类。平常我们所说的虚拟化,更多的是指前两种虚拟化。一般而言,虚拟机监控程序hypervisor有两种类型

裸金属 (bare metal)形式:

直接运行在机器硬件之上,使用该架构的虚拟机有Oracle VM,Microsoft Hyper-V,VMWare ESX和Xen。

宿主机(hosted) 形式:

运行在目标机器的操作系统上。使用该架构的虚拟机包括VMware Workstation,Microsoft Virtual PC、QEMU和KVM

hypervisor中裸金属形式和宿主机形式的示意图:

总结:

如果只用一句话去概括虚拟化的核心含义,那就是使一个物理机器能够同时运行多个独立的系统。虚拟机是在独立的系统资源(CPU、内存、存储、网络等)上,有操作系统及应用程序。虚拟后的资源是隔离的,也就是说操作系统是感知不到在同一台物理机上其他虚拟机的。虚拟化技术的核心组件是虚拟机监控程序(Virtual Machine Monitor),简称VMM,又称为Hypervisor,它管理的是虚拟机上操作系统的系统调用到虚拟硬件的交互,以及发生在更底层的物理机器上的实际执行。

需求描述

用脚本安装OpenStack常用组件

实现思路

编辑openstack环境变量脚本/etc/xiandian/openrc.sh
配置各组件的帐户和登录密码,以及虚拟网络。
执行各组件对应的安装脚本。

实验步骤:

一、配置网卡并实现网络互通

# controller和compute节点都要做
在上次的openrc.sh脚本后面增加以下三行

Physical_NAME=provider
minvlan=100
maxvlan=201


确认外网卡为ens33
 

INTERFACE NAME=ens33

如图所示:

二、基本配置(安装Openstack包、配置域名解析、配置防
火墙和Selinux、安装ntp服务)

# controller和compute节点都要做
执行在/usr/local/bin中的
iaas-pre-host.sh进行安装
#reboot 重启动

 三、基础服务安装

# controller
执行在/usr/local/bin中的
iaas-install-mysql.sh进行安装
#compute节点
执行命令
#yum -y installMySQL-python

 

 四、安装Keystone认证服务

# controller
执行在/usr/local/bin中的
iaas-install-keystone.sh进行安装
注意,若重启系统,需执行
sh /etc/keystone/admin-openrc.sh
重新获得访问所需访问所用的环境变量
#compute节点
无需安装

 五、安装Glance镜像服务

# controller
执行在/usr/local/bin中的
iaas-install-glance.sh进行安装

测试功能:

# source /etc/keystone/admin-openrc.sh(执行配置授权脚本)
# glance image-create --name "Cent0S7.0" --disk-format
qcow2 --container-format bare --progress <
lopt/images/CentOS_6.5_x86_64_XD.qcow2
#compute节点

 

 六、安装Nova计算服务

# controller
执行在/usr/local/bin中的
iaas-install-nova-controller.sh进行安装

 #compute节点
执行在/usr/local/bin中的
iaas-install-nova-compute.sh进行安装
验证服务时输入控制节点root的密码,如Aa123456789

七、 安装Dashboard服务

#controller节点
执行在/usr/local/bin中的
iaas-install-dashboard.sh进行安装
打开浏览器访问Dashboard
http://controller(或本机内网ip)/dashboard

注:检查防火墙规则,确保允许http服务相关端口通行,或者关闭防火墙

 # compute节点
无需操作

尝试操作:

登录系统:admin/000000
项目→资源管理→镜像
找到在Glance安装中添加的镜像,尝试熟悉管理界面

 八、安装Cinder块存储服务

# controller节点
执行在/usr/local/bin中的
iaas-install-cinder-controller.sh进行安装


#compute节点
执行在/usr/local/bin中的
iaas-install-cinder-compute.sh进行安装

实验总结:

理解什么是虚拟化技术、虚拟化技术发展的方向、AWS的关键技术。了解AWS的基础架构Dynamo、开源云平台openstack等相关技术以及原理关系,并学习基础的实验操作。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐