狐狸情 发表于 2015-10-12 09:35:39

Xen虚拟机

  
  
  
  虚拟化技术是云计算实现弹性计算的核心技术。在构建云计算平台中,虚拟机的安装是基础。常用的虚拟机工具很多,如VMware、XEN、KVM、Virtual PC等,这些工具使得用户可以在单台物理PC上(称为宿主机)虚拟出多个虚拟机VM(Virtual machine),由于在每个VM上可以安装与宿主机不同的操作系统。因而可以实现在一台物理PC上模拟出多台安装有不同操作系统的“PC”。在云计算中,用户可以向云平台申请租用虚拟机,虚拟机的配置,如CPU的核数、主频,内存,存储容量等可以根据需要自己设定,并可动态修改。现有虚拟机工具多支持这些功能,然而很多工具如VMware、XEN-Server等提供的免费测试工具多只提供GUI接口,用户只能通过图形界面实现虚拟机的创建和配置,无法实现动态的配置,以至于构建的云平台退化为不具有弹性的“虚拟机平台”。
     Xen 是由剑桥大学开发的一款开放源代码虚拟机工具软件,支持虚拟机的各种配置和动态创建,最重要的是提供了丰富的用户管理接口。
  在XEN宿主机上创建客户虚拟机
  在物理PC的Fedora上安装XEN,并登录XEN后,即进入虚拟机的宿主环境Domain0,用户可在Domain0的基础上创建DomainU虚拟机,并需要在DomainU虚拟机上安装新的操作系统。例如下图,在物理宿主机Host上安装Fedora12,然后在此基础上借助与XEN虚拟机管理工具创建两台Guest虚拟机,两台Guest也安装Fedora12(当然也可以安装其他的操作系统,如Ubuntu等)

  
   Amazon EC2 占用的地理空间为美国东海岸3 个数据中心、西欧两个数据中心。你可以单独登录到Amazon 欧洲数据中心的账户上,但是,不能混搭使用美国环境和欧洲环境。在这些环境中,服务器运行的是高度定制化、使用准虚拟化技术的Open SourceXen 管理程序。该Xen 环境不但能够动态准备和撤销虚拟服务器,还能为访客服务器提供互相隔离的计算环境。
  如果想在Amazon 环境中启动一台虚拟服务器,需要启动一个基于预定义Amazon 机器映像(Amazon machine image,AMI)的节点。AMI 包含了操作系统和所有其他预先建立好的软件。多数人开始时会选用一个标准AMI,上面带着他们喜欢的操作系统,然后对其进行定制,创建出一个新映像,最后,基于定制的映像启动服务器。
  EC2 自己有两类存储方式:
  绑定到节点上的临时存储,随着节点一起消失。
  像 SAN 那样工作的块存储,能够长期保存。
  
  
  亚马逊弹性云EC2虚拟机
    亚马逊弹性云使用Xen虚拟化技术。每个虚拟机,又称作实例,能够运行小、大、极大三种能力的虚拟私有服务器。Amazon利用EC2 Compute Units去分配硬件资源。EC2系统提供以下的虚拟机实例类型:
    微型实例:默认配置了613MB的存储器,一个虚拟核心上运行两个EC2 Compute Unit,免费试用一年
    小型实例:默认配置了1.7GB的存储器,一个虚拟核心上运行一个EC2 Compute Unit
    大型实例:默认配置了7.5GB的存储器,两个虚拟核心上各运行两个EC2 Compute Units
    极大实例:默认配置了15GB的存储器,四个虚拟核心上各运行两个EC2 Compute Units
EC2实例  AMI(Amazon Machine Image)是Amazon虚拟机镜像文件,它是一个可以将用户的应用程序、配置等一起打包的加密机器镜像。用户创建好AMI后,部署在EC2平台上运行,称为一个EC2实例。每个实例自身包含一个本地存储模块(Instance Local Store),临时存放用户数据。如果EC2实例运行过程中出现故障或者实例被终止,存储在其中的数据将会丢失。因此,Amazon建议将重要的数据保存在EBS中以增强可靠性。
  
自动缩放
  自动缩放(Auto Scaling)可以根据用户自定义的条件,自动调整EC2的计算能力。多个EC2实例组成一个自动缩放组(Auto Scaling Group),当组内的实例负载过高,比如CPU平均使用率超过70%时,可以定义缩放规则自动增加EC2实例;同样地,当组内的实例负载过低时,可以自动缩小EC2实例规模以降低成本。
  EC2根据计算能力将实例分为多种类型,如下表:
  
  资源
  Small
  Large
  Extra Large
  High-CPU Medium
  High-CPU Extra Large
  平台
  32位
  64位
  64位
  64位
  64位
  CPU
  1ECU
  4ECU
  8ECU
  5ECU
  20ECU
  内存
  1.7GB
  7.5GB
  15GB
  1.7GB
  7GB
  存储容量
  160GB
  850GB
  1690GB
  350GB
  1690GB
  
  
  EC2的一个计算单元称为一个ECU(EC2 Compute Unit),其计算能力相当于1个1.0GHz 2007 Xeon处理器。EC2平台不支持虚拟机实例在线迁移,如果用户需要调整实例类型,EC2内部实现时逻辑上分为两步:a) 终止原有的EC2实例;b) 根据一定的策略(比如负载)动态选择新的服务器节点启动新的EC2实例。自动缩放功能一般会配合弹性负载均衡功能一起使用,弹性负载均衡组件能够自动将流量转发给新实例。
  
网络路由
  
  
  通过自动缩放技术,当EC2平台检测到某个实例出现故障时,将动态选择新的节点启动新实例,每个实例重新启动后它的公共IP地址都会发生变化。Internet用户通过域名访问EC2实例,然而,需要一段比较长的时间才能更新公共IP地址与DNS之间的映射关系。为了解决这个问题,EC2提供了两种方式:

[*]弹性负载均衡:EC2新实例重启后通知弹性负载均衡组件,弹性负载均衡组件能够自动将流量切换到新实例。
[*]弹性IP地址:弹性IP地址和用户账号而不是和某个特定的实例绑定,EC2用户可以将DNS域名设置为指向弹性IP地址。新实例启动时,EC2用户只需要使用管理工具将弹性IP地址与新的实例关联起来,Internet用户感觉不到任何差异。
[*]EC2存储
EC2本地存储是实例自带的磁盘空间,但它并不是持久的,也就是说这个实例所在的节点出现故障时,相应的磁盘空间也会随之清空,本地存储上的数据随时有丢失的风险。
为了解决本地存储不可靠问题,EC2推出了EBS,数据在EBS中自动在同一个可用区域内复制多份。EBS通过卷来组织数据,每个EBS卷只能挂载到一个EC2实例。EBS卷并不与实例绑定,而是与用户帐号绑定。当EC2实例发生故障时,用户可以在新启动的EC2实例上重新挂载EBS卷。另外,EBS能够以快照的形式将数据增量备份到S3,而S3的数据分布在多个可用区域,进一步增强了可靠性。EBS的设计原理如下:


如上图,EBS包含两个部分:EBS控制层(EBS control plane)及EBS存储节点。EBS客户端通过EBS control plane创建逻辑卷,获取逻辑卷每个副本所在的EBS存储节点位置,然后请求EBS存储节点读写逻辑卷数据。每个逻辑卷存储在多个EBS节点上,多个副本之间数据强同步,其中有一个副本为Primary,其它的为Secondary。当Primary往Secondary传输数据失败时,将请求EBScontrol plane选取新的EBS节点增加副本,这个过程称为重新镜像(re-mirroring)。EBS control plane负责每个逻辑卷的Primary副本选取,如果Primary出现故障,将选择某个Secondary副本为新的Primary。EC2实例通过EBS客户端访问EBS系统,它们之间遵守一定的协议,比如网络块设备(Network Block Device,NBD)协议,从而EC2实例访问远程EBS节点上的逻辑卷与访问本地的块设备没有差别。
  

  
         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Xen虚拟机