站在风暴中的男 发表于 2015-10-13 13:37:41

CloudStack 系统虚拟机

转载地址:blog.iyunv.com/rumenxinshou/article/details/18838669



系统虚拟机:
  Ø 二级存储虚拟机(Secondary Storage VM):主要用来管理二级存储。
  Ø 控制台代理虚拟机(Console Proxy VM):用于在 web 界面上展示控制台。
  Ø 虚拟路由器vRoute:实现虚拟网络功能。
  

SSVM:
  
  二级存储虚拟机(Secondary Storage VM):下载上传模板、下载镜像,第一次创建虚拟机时从二级存储拷贝模板到一级存储并且自动创建快照等。
  SSVM主要用来管理二级存储,二级存储存放模板,ISO,快照,volume等信息,对这些资源的管理都是通过SSVM进行的。每一个资源域可以有多个SSVM,当SSVM被删除或停止,它会自动被重建并启动。
  ·      实现二级存储相关功能
  ·      每zone至少一个
  ·      网络配置
  –   Public
  –   Control
  –   Management
  –   storage
  ·      自动扩展
  

  

SSVM的四个网卡介绍
  SSVM拥有四块网卡:
  Ø eth0:用于CloudStack配置CPVM的local-link网络(KVM和XenServer)或管理网络(VMware)
  Ø eth1:用于管理网络
  Ø eth2:用于公共网络
  Ø eth3:用于存储网络
上传模板时SSVM工作流程
  1.      用户发起上传模板请求到mgmt server
  2.      mgmt srv选择合适的SSVM,发送命令进行下载
  3.      SSVM通过外网NIC下载指定的模板
  4.      SSVM 通过storagenetwork mount上二级存储,写入模板。SSVM下载的同时会向mgmtsrv报告下载的进度(百分比)

    Vmwar snapshot时SSVM工作流程
  1.      用户发起卷快照请求到mgmt server,
  2.      Mgmt server发送请求到对应的ESXI,对虚拟机进行快照;mgmtsrv选择合适的SSVM,发送命令备份快照
  3.      SSVM调用ESXI(VC) API导出虚拟机快照的卷为OVF
  4.      SSVM 通过storagenetwork mount上二级存储,写入快照。

   CPVM介绍
  控制台代理虚拟机(Console Proxy VM):用于在 web 界面上展示控制台。
  
  ·      Web VNC console 后端
  ·      每zone至少一个
  ·      网络配置
  –   Public
  –   Control
  –   Management
  ·      自动扩展

  

   CPVM工作流程
  1.    用户发起请求到mgmt server,查看web console,mgmt server选择合适的CPVM,返回public ip
  2.    用户浏览器访问CPVM
  3.    CPVM向mgmt server 发请求进行验证
  4.    验证通过,CPVM访问VM所在的hypervisor对应的端口,获取console信息
  5.    经CPVM转换成浏览器可接受的格式,返回用户浏览器图像数据
  

  

vRoute介绍
  虚拟路由器vRoute:实现虚拟网络功能。CloudStack作为一个虚拟化平台,提供了计算资源、网络资源和存储资源的虚拟化管理和使用。在网络虚拟化上,vRouter起到了至关紧要的作用。几乎所有虚拟网络功能,都是vRouter来实现的,比如:IPAM (DHCP)、DNS、NAT、Source NAT、防火墙、端口转发、负载均衡、VPN等等。也有些功能可以借助外部设备来实现。
  每个来宾网络(客户网络)对应至少一个vRouter,当启动某个网络的第一台客户虚拟机时,vRouter会自动创建出来,若一个客户网络长时间不存在启动的虚拟机,该网络的vRouter会自动关闭。

  ·      实现网络相关功能
  –   DHCP/DNS/防火墙
  –   端口转发NAT
  –   负载均衡
  –   VPN
  –   VPC
  ·      每network至少一个
  ·      网络配置
  –   Public (adv.)
  –   Control
  –   Guest

VPN即虚拟专用网络。
虚拟专用网络(Virtual Private Network,简称VPN)指的是在公用网络上建立专用网络的技术。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台,如Internet、ATM(异步传输模式)、FrameRelay(帧中继)等之上的逻辑网络,用户数据在逻辑链路中传输。它涵盖了跨共享网络或公共网络的封装、加密和身份验证链接的专用网络的扩展.VPN属于专业网络虚拟通信设备。  CloudStack提供了虚拟专用网络(Virtual Private Network)功能,可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。
  点击【网络】,选择网络,然后点击【IP地址】,选择外网IP;
  点击启动VPN按键;确认点击“是”;
  这样该外网IP的VPN就启动了,可以看到,除了详细信息、配置,多出来一个VPN标签,里面记录了IP地址、共享密钥等信息。然后添加该连接的用户,就可以通过这个VPN连接访问内网的虚机了。
  CloudStack的VPN功能使用了IPSec技术,当启动VPN服务后,管理服务器会去启动vRouter内的IPSec服务,并进行相关的配置,上文所提到的外网IP实际就是vRouter的IP地址,所有VPN连接都是以vRouter为中转连到内部环境虚拟机的。

VPC:研究数据中心功能时发现CISCO有一个虚拟化技术叫vPC的技术,今天就把我研究的成果分享出来。什么是vPC(virtualport channel)?研究了大半天,其实它就是一个可以跨不同设备的port-channel技术。它的作用:可以实现网络冗余,可以跨设备进行端口聚合,增加链路带宽,当链路故障时比生成树协议收敛时间还快。
http://www.net130.com/CMS/Files/Uploadimages/vpc1.jpg
如上图所示,在传统的网络拓扑中要实现网络的冗余,一般都会使用双链路上连的方式,而这种方式明显有一个环路,在这种拓扑下都会开起生成树协议,这时就会有一种链路是block状态的。所以这种方式实现冗余,并不会增加网络带宽。如果想用链路聚合方式来做双链路上连到两台不同的设备,port-channel功能又不支持跨设备聚合。所以在这种背景下就出现了vPC的概念,和port-channel功能相比区别是:vPC功能解决了传统聚合端口不能跨设备的问题。和传统跨设备方案相比的区别是:即增强网络冗余又能增加网络带宽。

vRoute工作流程
  1.      用户发起请求到mgmt server,例如添加端口转发规则
  2.      mgmt srv选择合适的VR,通过controlnetwork发送命令,执行VR上的sh脚本,更新iptables,端口转发规则生效

  

  系统虚拟机
  网络:所有系统虚拟机所在的主机的网卡都关联到同一个网桥,从而保证了系统虚拟机的安全通讯。
  

系统虚拟机模板
·      Spec (CS 4.2)
  –   Debian Linux 7.0
  –   只装需要的工具, SSHd, Apache, iptables, ipsec, haproxy…
  –   SSH通过3922访问
  –   预装JRE
  ·      所有的系统虚拟机使用同一个模板
  –   不同hypervisor不同的模板VMware/Xenserver/KVM/HyperV
  –   格式不同,但内容完全一样
  
  系统虚拟机模板一般在安装过程中导入,可以进行在线导入,也可以将虚拟机模板下载到本地后进行导入。
系统虚机为 Debian 32 位操作系统,CloudStack 管理员可以在系统VM所在主机上用用 SSH 进行登录。
  ssh -i /root/.ssh/id_rsa.cloud169.254.1.33 -p 3922
  IP来源于页面看到的“链接本地IP地址”
页: [1]
查看完整版本: CloudStack 系统虚拟机