云计算 vShpere Hyper-V KVM Openstack
Hypervisor
hypervisor 之于操作系统 类似于 操作系统之于进程。
虚拟化 就是通过某种方式隐藏底层物理硬件的过程,从而让多个操作系统可以透明地使用和共享它。
Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor)
服务器虚拟化
服务器虚拟化技术日渐成熟,越来越多的企业开始考虑将应用程序和操作系统的部署从底层硬件分离出来,进而简化繁琐的运维操作。当前最普遍的模式,便是通过VMware虚拟化基础架构平台,为不同的业务应用分配专有计算资源,将硬件服务器作为资源池进行管理,从而构建架构灵活、管理便捷、处理高效的虚拟化数据中心。
常见的hypervisor
1、VMWare
VMWare 虚拟化:
VMWare 虚拟化架构:
2、Hyper-V
Hyper-V与VMware的ESXi
微软的Hyper-V与VMware的ESXi在架构上有众多不同,然而很多虚拟化管理员并未意识到这些差异。而且很多管理员同样对Hyper-V是在主机操作系统上运行感到困惑。
有关微软Hyper-V的一个常见的误解就是安装Hyper-V需要使用Windows操作系统,Hyper-V运行在主机操作系统之上而不是直接安装在裸机上。有必要指出一旦Hyper-V角色通过Server Manager启用,hypervisor代码实际上是被配置为在Windows 内核空间内启动。运行在内核空间的组件能够直接访问硬件,这同样适用于Hyper-V。另一方面,VMware的ESXi采用了完全不同的方式,ESXi hypervisor被封装为一个单独的ISO文件,它实际上是一个Linux内核操作系统。
Hyper-V和ESXi都是 Type 1 hypervisor。 Type 1 hypervisor直接运行在硬件之上,从设计上能够将Type 1 hypervisor进一步划分为两类:microkernelized和monolithic。microkernelized设计与monolithic设计有一些细微的差异。两类设计唯一的差异就是设备驱动的位置以及控制功能。
在monolithic设计中,驱动被作为hypervisor的一部分包括在内。VMware ESXi使用monolithic设计实现所有的虚拟化功能,包括虚拟化设备驱动。自从首次推出虚拟化产品起,VMware一直在使用monolithic设计。由于设备驱动包含在了hypervisor中,在hypervisor代码的帮助下,运行ESXi主机之上的虚拟机能够与物理硬件直接通信,不再依赖中间设备。
微软Hyper-V 架构使用了microkernelized设计,hypervisor代码运行时没有包括设备驱动。设备驱动安装在主机操作系统内,虚拟机访问硬件设备的请求交由操作系统处理。换句话说由主机操作系统控制对硬件的访问
3、KVM
kvm基本结构有2个部分构成:
kvm 驱动,现在已经是linux kernel的一个模块了。其主要负责虚拟机的创建,虚拟内存的分配,VCPU寄存器的读写以及VCPU的运行。
另个组成是Qemu,用于模拟虚拟机的用户空间组件,提供I/O设备模型,访问外设的途径。
左侧部分是一个标准的Linux操作系统,可以是RHEL、Fedora、Ubuntu等。KVM内核模块在运行时按需加载进入内核空间运行。KVM本身不执行任何设备模拟,需要用户空间程序QEMU通过/dev/kvm接口设置一个虚拟客户机的地址空间,向它提供模拟的I/O设备,并将它的视频显示映射回宿主机的显示屏。
4、OpenStack
DashBoard | Horizon | 提供WEB界面 |
---|---|---|
Computer | Nova | 计算也就是虚拟机 |
Networking | Neutron | 提供给nova网络支持 |
Object Storage | Swift | 提供对象存储 |
Block Storage | Cinder | 提供云硬盘给nova,同时备份到Swift |
Identity Sservice | Keystone | 提供所有组件的认证 |
Image Service | Glance | 提供给nova镜像服务 |
Telemetry Service | Cellometer | 监控 |
cinder,neutron,nova,glance | ||
Orchestration Service | Heat | 与AWS cloud兼容 |
整个OpenStack由控制节点,计算节点,网络节点,存储节点四大部分组成
控制节点负责了对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等
计算节点负责了虚拟机运行
网络节点负责了对外网络与对内网络之间的通信
存储节点负责了对虚拟机的额外存储管理等等