混合虚拟化云平台实战 基于OpenStack
背景
项目背景 客户背景 金融行业客户,自建机房 已使用VMware虚拟化与Hyper-V虚拟化 以人为主的管理模式 网络管理、虚拟机管理与存储管理分别由不同部门负责 虚拟机的生命周期管理由虚拟机管理员负责 所有的操作系统和软件部署交由人工执行
项目背景 虚拟机资源手工调度 根据业务不同将虚拟机资源分为开发和测试两个资源池 两个资源池所需要的虚拟机由管理员统一进行管理和分配 存在业务痛点:分配出去的虚拟机难以有效回收 资源统计和状态获知存在空白点 虚拟机资源无法统计 不同的虚拟化系统状态监控不统一 需要统一管理的云平台,实现自动调度,并提供服务流程管理 扩展第三类虚拟化和PaaS服务的能力
项目背景 为什么选择OpenStack 综合管理 开放,兼容,发展 为什么选择华云 基于OpenStack的公有云/私有云经验 华云PaaS产品
华云产品介绍 华云管理平台(CMP) 云管理平台的业务交付流程 统一监控体系 服务扩展 软件环境的自动化部署和管理 面向混合IT的资源接入 Cloud+架构落地为CMP 以PaaS为核心能力 以大数据平台作为特色服务 以混合IT的资源接入能力为特色能力 打造面向DevOps的业务流程 差异化能力: 构筑以混合IT为基础的最佳云实践 为业务系统提供统一环境支持,贯穿开发/测试/生产全过程 统一管理监控应用、服务和异构资源环境 将大数据架构与云架构整合,实现“大虚小”和“小虚大”有效的结合 云管理平台的业务交付流程 华云管理平台(CMP) 统一监控体系 服务扩展 软件环境的自动化部署和管理 面向混合IT的资源接入 KVM 资源池 VMWare 资源池 HyperV 资源池 2016年3月依托项目研发发布1.0版 2017年6月发布2.0版 2018年9月发布3.0 2019年12月发布4.0
华云团队介绍 PaaS团队 大数据团队 美国intel技术部Director ,中组部“千人计划”专家谢朝阳博士 SAP云计算实验室吴怀谷博士 Dell都柏林云计算中心大数据与云计算研发,闵圣捷,OpenStack贡献者 …… IaaS团队
挑战
技术难点 同时管理VMware与Hyper-V两种虚拟化 phys-server 100+/cluster 30+/vm 3000+ 资源整合,解决调度粒度的问题 反向纳管存量虚机 已存在的虚机直接纳入OpenStack管理 VMware vlan管理 原生OpenStack不支持VMware vlan管理,客户也并未购买付费插件 对虚机进行初始配置 配置静态IP(不允许使用DHCP),主机名,初始密码等
华云方案
混合管理架构 Vmware计算节点代理cluster Hyper-v计算节点代理host 用Availability-Zone均衡VMware集群 与Hyper-V集群 Vmware cluster中有多个host节点 需要解决资源碎片问题
混合管理架构 boot instance : 4 scheduler AZ1:6 AZ2:4 Nova-compute1 Cluster-A:5 Cluster-B:2 Cluster-C:4 Hosta:2 Hosta:2 Hosta:4 Hosta:3
反向纳管 VCenter 存量数据 OpenStack 1.抓取信息(Vcenter SDK) 门户 2.同步数据 3.管控存量虚机
反向纳管 抓取信息: VMware——Vcenter SDK Hyper-v——SCVMM (system center virtual machine manager) 同步数据Example: nova flavor-key set $flavor_id reversevm=True vc_uuid="50 31 fb 61 8e d9 7f e4-6a f3 28 e3 72 97 74 4e" vc_vm_uuid="5031fb61-8ed9-7fe4-6af3-28e37297744e“ nova boot --image $image_id --flavor $flavor_id --nic net-id=$net_id --availability-zone vmware:nn2.huacloud.demo $name
VMware Vlan ②VST 在虚拟交换机上打tag 原生OpenStack只支持flat网络: nova.conf integration_bridge=br-int 将虚拟网卡接入br-int端口组 Vmware vlan实现方式 ①VGT 在虚机里打tag ②VST 在虚拟交换机上打tag ③EGT 在外部物理交换机上打tag;
VMware Vlan 插件化OpenStack处理逻辑: ①创建虚机时,nova从neutron get全量的网络信息(包含pg_name,segment_id) ②虚拟网卡信息中填入指定的port-group vif['network']['bridge'] = pg_name ③创建或查找port_group session._call_method(session._get_vim(), "AddPortGroup", network_system_mor, portgrp=add_prt_grp_spec)
VMware-KVM Vlan互通示意图 vlan设置 vlan设置 以创建虚机为例,KVM虚拟化与VMWARE虚拟化对vlan网络的设置和使用流程: ****KVM****** nova执行部分 1.从neutron-server获得虚机网络信息(port_id,mac地址) 2.为每个虚拟网卡创建linux网桥,用于虚拟网卡设备(tap)接入 3.创建veth设备将linux网桥连接如ovs网桥 4.启动虚机的同时,qemu会创建相应tap设备,并设置指定的mac地址 neutron-ovs-agent执行部分 5.重复扫描ovs网桥中接入的虚拟端口,对照neutron-server中的信息,完成vlan-tag设置 (neutron-dhcp-agent执行部分 6.根据虚拟网卡的mac属性和ip属性,启动dhcp服务,为指定mac的dhcp请求反馈ip地址;这里dhcp虚拟设备的vlan也是由ovs-agent设置的) 简言之,nova负责完成虚拟链路的连接,neutron-ovs-agent负责完成vlan的设置 ***** VMWARE***** nova执行部分 1.从neutron-server获得虚机网络信息(port_id,mac地址,vlan_id) 2.修改虚机配置,把虚拟网卡放进指定的port-group(端口组,与vlan一一绑定) 3.启动虚机 (neutron-dhcp-agent执行部分 4.根据虚拟网卡的mac属性和ip属性,启动dhcp服务,为指定mac的dhcp请求反馈ip地址;这里dhcp虚拟设备的vlan也是由ovs-agent设置的) 说明:原生openstack-VCdriver不支持vlan,在步骤2中所能选取的port-group是由配置文件指定的唯一一个端口组
虚机订制 OpenStack提供对虚机操作系统内部进行配置的三种途径: ①Inject File(只适用KVM, Xen) ②Metadata Server(适用VMware/Hyper-V,依赖Neutron网络)
虚机订制 OpenStack提供对虚机操作系统内部进行配置的三种途径: ③Config Drive(适用VMware/Hyper-V,不依赖Neutron网络) Instance configdrive.iso cloud-init Example: nova boot --flavor 2 --image centos --nic net-id=$net-id --user-data /home/userdata.txt test-vm /home/userdata.txt #cloud-config ssh_pwauth: true disable_root: 0 user: root password: admin@123
未来方向
未来方向 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 一体化的监控 CMP - IaaS PaaS一体化 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 一体化的监控
未来方向 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 Linux轻量级虚拟化 速度快、性能开销低 CMP - IaaS PaaS一体化 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 Linux轻量级虚拟化 速度快、性能开销低 MySQL / Tomcat 一体化的监控 物理机 资源利用率高 Hadoop、Oracle
未来方向 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 软件安装配置 复杂编排部署 一体化的监控 CMP - IaaS PaaS一体化 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 软件安装配置 复杂编排部署 一体化的监控
未来方向 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 一体化的监控 CMP - IaaS PaaS一体化 基于BareMetal/容器技术的PaaS服务区 基于dev-ops的应用环境自动化 一体化的监控
Q&A
参考 https://wiki.openstack.org/wiki/HypervisorSupportMatrix http://cloudinit.readthedocs.org/en/latest/topics/examples.html http://www.cloudbase.it/cloud-init-for-windows-instances/ http://www.vmware.com/cn/support/support-resources/pubs/vsphere-esxi-vcenter-server-pubs https://msdn.microsoft.com/en-us/library/cc136988(v=vs.85).aspx
"Wanna be a Chinaclouder? We are Hiring!“ 联系我们 "Wanna be a Chinaclouder? We are Hiring!“ hr@chinacloud.com.cn