OpenStack 每個新版本都能實現一些需求和解決一些問題。其中被企業用戶問的最多的一個問題是:同一個 OpenStack 集群能同時支持多種虛擬化技術么(Mutil-Hypervisor)?
答案當然是 Yes!在說明如何配置 Mutil-Hypervisor 前,我們需要了解什么是 Mutil-Hypervisor。
Mutil-Hypervirsor 簡介
對很多用戶來說,僅采用一種虛擬化技術難以滿足他們的需求,所以用戶可能會同時采用其它虛擬化技術。比如:1.用戶不想被某個虛擬化廠商綁定限 制;2. 某些虛擬化產品要求高額的 License,無疑加重了用戶的財政開銷;3.單個虛擬化產品的功能不滿足用戶所有的需求。隨著虛擬化技術越來越成熟,Mutil- Hypervisor 的需求場景變得越來越常見,但是往 OpenStack 集群增添其它虛擬化技術前,需要慎重全面的考慮它帶來的困難及更為復雜的架構。
Openstack 設計之初,重點支持的是 Qemu-Kvm 虛擬化平臺。但是大量的企業已經采用了其它的虛擬化平臺,比如:Xen,ESXI 等。并且企業不愿意去更改已有的 IT 架構設施,因此 OpenStack 需要支持 Mutil-Hypervirsor。
OpenStack 支持哪些虛擬化平臺
OpenStack nova-compute 支持多種虛擬化平臺,如下所示:
KVM-Qemu – Kernel-based Virtual Machine. The virtual disk formats that it supports is inherited from QEMU since it uses a modified QEMU program to launch the virtual machine. The supported formats include raw images, the qcow2, and VMware formats.
LXC– Linux Containers (through libvirt), use to run Linux-based virtual machines.
QEMU– Quick EMUlator, generally only use for development purposes.
UML– User Mode Linux, generally only use for development purposes.
VMware vSphere 4.1 update 1 and newer, runs VMware-based Linux and Windows images through a connection with a vCenter server or directly with an ESXi host.
Xen– XenServer, Xen Cloud Platform (XCP), used to run Linux or Windows virtual machines. You must install the nova-compute service in a para-virtualized VM.
Hyper-V – Server virtualization with Microsoft’s Hyper-V, use to run Windows, Linux, and FreeBSD virtual machines. Runs nova-compute natively on the Windows virtualization platform.
Ironic– Not a Hypervisor in the traditional sense, this driver provisions physical hardware through pluggable sub-drivers (for example, PXE for image deployment, and IPMI for power management).
Docker- use to manage container.
關于更多 Hypervisor 詳情,請參見 http://wiki.openstack.org/HypervisorSupportMatrix
OpenStack 配置 Mutil-Hypervisor
我們以 VMware ESXI Hypervisor 為例,闡述如何配置 OpenStack 使之在采用 KVM Hypervisor 的場景下再支持 VMware ESXI Hypervisor。在配置 Mutil-Hypervisor 環境前,我們假定您已經部署了一套采用 KVM 的 OpenStack 集群(Havana及以后版本) 和 一套管理任意數量 ESXI 主機的 Vcenter 5.5 集群。OpenStack 支持 VMware vSphere 系列產品,并且能夠使用它的一些高級功能,比如:vMotion, 高可用,動態資源調度。下為 Mutil-Hypervisor 的架構圖:
從上圖可知:VMware vCentor 并不能被直接添加到 openstack 集群中,我們需要新增一個 compute-node 節點,通過 compute-node 節點管理 vCentor 節點。一個 nova-compute 只能管理一個 vCentor 集群,我們可以往單個 vCentor 添加任意數量的 ESXI host,如果你想管理兩個不同的 vCentor 集群,你需要兩個 nova-compute 節點,分別管理對于的 vCentor 集群。
注:
和像 KVM 等這些基于 Linux 內核的 Hypervisors 不同,vSphere 集成到 OpenStack 時需要一個 vCenter Server 管理 ESXI host,其管理的虛擬機運行在 ESXI host 上,而非 nova-compute 節點上。
雖然 OpenStack 集群可以支持多種虛擬化平臺,但是每一個 nova-compute 節點之能夠支持一種虛擬化平臺,因此 Mutil-Hypervirsor 需要多個 nova-compute 節點。
前提和局限
DRS(Dynamic Resource scheduler ): 開啟 DRS 功能,支持虛擬機自動調度。
Shared storage: vCentor 集群必須支持共享存儲
Clusters and data stores: vCenter 下虛擬機的存儲必須由 vCenter 管理的集群提供。
Networking: VMware 支持通過 nova-network 或者 neutron 管理 vCenterr 下的虛擬機網絡。
Security groups. 若采用 nova-network,security groups 的特別將丟失;采用 neutron,可以保留該特性。
VNC. KVM 默認 5900 – 6000 端口用于虛擬機 vnc。ESX 則采用 5900-6105 端口。
SSH Keys: vCenter 不支持 SSH keys 注入虛擬機。
配置 Openstack Mutil-Hypervisor
1.計算節點(novavmware1)安裝 nova-compute
“apt-get install nova-compute nova-compute-vmware python-suds”
2.配置計算節點novavmware nova.conf文件
wsdl_location=file:///vmware-sdk/SDK/vsphere-ws/wsdl/vim25/vimService.wsdl #(optional)
3.完成 nova.conf 里 vnc、AMQP 等配置項
4.計算節點novavmware1安裝 nova-network
“apt-get install nova-network nova-api-metadata”
5.制作 vmdk 鏡像,并上傳至 glance
$ qemu-img convert -f qcow2 /Downloads/ubuntu.img -O vmdk ubuntu.vmdk
$ glance image-create –name ubuntu –is-public=True –container-format=bare –disk-format=vmdk –property vmware-disktype=”sparse” –property vmware-adaptertype=”lsiLogic” –property Hypervisor_type=”vmware” < ubuntu.vmdk
至此,Openstack Mutil-Hypervisor 環境配件完畢,試試在 ESX node 創建第一個虛擬機~