OpenStack超融合部署架構
一.前言
1. 什么是超融合
三種常見的蔬菜:土豆、茄子、青椒放在一起可以烹調出永遠的經典味道—“地三鮮”。
而三大IT基礎設施組件:計算、存儲、網絡在一起也能被烹調出“超融合架構”這一概念。但是,計算、存儲、網絡要如何才能愉快地統(tǒng)一?傳統(tǒng)IT架構如何才能變得更加彈性和可擴展?而長期以來困擾傳統(tǒng)IT架構的擴容難題***的解決方案在哪里?
超融合的“超”是指“虛擬化”
想要深度剖析“超融合”生態(tài)圈,首先必須清楚“超融合”這一概念的來源。超融合架構雖然有一個“超”(Hyper)字,但也并不是什么神秘的概念, 業(yè)界普遍認為,計算與存儲一體(而非使用共享存儲,如傳統(tǒng)SAN)的融合系統(tǒng),通過分布式存儲軟件技術整合為統(tǒng)一的存儲池(如VMware的VSAN), 才可以被稱為“超融合系統(tǒng)”。
事實上,這一概念最早源于存儲初創(chuàng)廠商將Google、Facebook等互聯(lián)網廠商采用的計算存儲融合的架構用于企業(yè)應用環(huán)境(通常采用服務器虛 擬化技術,但傳統(tǒng)融合系統(tǒng)也是如此),為企業(yè)客戶提供一種將存儲做到計算服務器中的融合產品。“因此,超融合架構最核心的改變是存儲,而這一概念的最初推 動者也都是來自于互聯(lián)網背景的存儲初創(chuàng)廠商。
下面是傳統(tǒng)IT架構和基于云計算背景的超融合架構,如下圖所示:
當今,放眼世界。云計算領域最火的架構是什么?無疑,是“超融合”。
國外有Mirantis、VMware、SMARTX等領導廠商先后進入超融合領域,國內也有99Cloud、Unitedstack等云公司,使用“超融合”架構。一時間,國內超融合生態(tài)圈廠商眾多,頗有些混亂和看不清楚的感覺。
那他們又是怎么做的呢?下面且聽道來:
2.環(huán)境
在 <= 10臺物理服務器(Host)、500臺虛擬機(VM)情況下,通常使用超融合部署架構,即:
計算存儲超融合(8臺Host):計算節(jié)點和存儲節(jié)點放在同一個物理節(jié)點上,通過存儲資源池,做副本和冗余方式實現(xiàn)鏡像的高可用,針對某些特定需求的VM,做VM的HA。
網絡控制超融合(2臺Host):在這種環(huán)境下,網絡模式選擇VLAN,網絡節(jié)點和控制節(jié)點服務放在同一個物理節(jié)點上,同時提供網絡和控制服務,通過HAproxy、Corsync等實現(xiàn)心跳檢測和高可用。
目前,實現(xiàn)增大鏈路帶寬,解決交換網絡中因帶寬引起的網絡瓶頸、高可用;以及提高服務器網卡數(shù)據(jù)傳輸效率。通常我們可以用如下一些常見辦法:
1)服務器網卡做綁定
2)交換機做鏈路聚合(端口聚合)
3)使用STP(生成樹協(xié)議)
3)其他
#p#
二.網絡控制規(guī)劃
如下圖所示:
目前只有兩種節(jié)點,一種是計算存儲節(jié)點,另一種是網絡控制節(jié)點,由于網絡節(jié)點做了HA的高可用,所以任何一個計算節(jié)點宕機,只會影響其上面承載的虛 擬機,不會影響其他節(jié)點,如果是一個可以預知的宕機,你可以先將其上的虛擬機遷移到其他機器,這樣就可以將對服務的影響降到***。
另外,控制節(jié)點是主備模式,并且采用冷備的方式,但是數(shù)據(jù)庫保持實時同步。因為這種私有云的架構對控制節(jié)點的依賴非常小,控制節(jié)點宕機,在不重啟計算節(jié)點的OpenVswitch-Aagent的情況下,幾乎不會影響虛擬機的正常運行。
在網絡的架構上,虛擬機網絡通過網橋,采用Trunk模式,直接連接到交換機,具有較好的性能和極高的穩(wěn)定性。管理網絡是OpenStack各個組 件通信的網絡,包括鏡像分發(fā),虛擬機遷移等都是走這個網絡。存儲網絡是虛擬機訪問共享存儲GlusterFS或Ceph的網絡(超融合架構中,存儲網絡一 般不獨立使用)。
由于在超融合計算存儲——網絡控制架構中,使用的是基于VLAN的Neutron模式。所以淘汰了L3-Agent,L3-Agent主要有兩方面作用,即:
一是Floating ip:通過Linux Network namespace提供Fixed ip到Float ip的NAT轉換(由iptables來實現(xiàn)),從而實現(xiàn)上外網的功能。
二是qrouter:在不同內部子網中轉發(fā)數(shù)據(jù)包;通過指定內部網關做NAT。每一個子網對應router上的一個端口,這個端口的ip就是內網子網的網關。
由于VLAN數(shù)據(jù)包直接經過IP網絡,出外網,并不需要L3的虛擬路由器。同時也是為了摒棄L3-Agent的穩(wěn)定性和性能問題、L3的復雜性問 題。需要停用L3-Agent,虛擬機首先連接到br-int,,br-int連接到br-em3上,通過Trunk就可以達到外部網絡,這樣的架構解決 了兩個問題:***,能夠保證網絡的性能和穩(wěn)定性,第二,能實現(xiàn)和內網其他機器無縫互通。
基于此,我們的規(guī)劃如下面所示:
1.網絡規(guī)劃(VLAN)
在物理服務器3張網卡情況下,一般網絡規(guī)劃是:
eth0:外部網絡、業(yè)務網絡(floating ip)
eth1:數(shù)據(jù)網絡(private ip)
eth2:管理網絡、存儲網絡
Neutron,采用VLAN
IPMI網絡:172.16.99.0/24(VLAN 99)
數(shù)據(jù)網絡:172.16.100.0/24(VLAN 100)
外部網絡/業(yè)務網絡/管理網絡:
- 172.16.101.0/24(VLAN 101)
- 172.16.102.0/24(VLAN 102)
- 172.16.103.0/24(VLAN 103)
物理交換機創(chuàng)建相應的vlan,網段對應于vlan id。
2.VLAN注意事項
vlan模式下,不同租戶使用的IP地址不能重復。
由于vlan標簽的標志位是12bit,所以vlan號的范圍是1-4096,也就是系統(tǒng)中最多只能有4096個租戶,不適用于公有云(Nicira NVP作為Neutron的插件解決了這個問題)
3.網絡類型
集成OpenStack時需要考慮的幾種網絡,這種架構和環(huán)境下,我們使用VLAN。
在一個現(xiàn)有的數(shù)據(jù)中心網絡中集成OpenStack時,有四種網絡必須考慮到。這些網絡分別是:
管理網絡:部署OpenStack環(huán)境時,各種服務的配置文件均會使用這個網卡上的IP。
用于OpenStack組件之間的內部通信。這個網絡上的IP地址應該僅僅在數(shù)據(jù)中心內是可達的。
數(shù)據(jù)網絡:用來連通各個節(jié)點上的br-tun網橋,構造通信平面,這個通信層可以構建隧道[GRE],也可以構建L3通信協(xié)議層[VXLAN]。同時它也負責連通租戶虛擬網絡內的網絡設備,使虛擬機之間進行網絡通信。
Public/API網絡:一般用在控制節(jié)點和網絡節(jié)點上,需要和外部通信。
存儲網絡(可選)
由于這里是中小等私有云環(huán)境,可不考慮單獨使用存儲網絡,也沒有單獨的存儲節(jié)點。
網絡存儲技術有很多種,其中存儲區(qū)域網絡(SAN)是將服務器連接到光纖通道上與存儲設備互聯(lián),用于存儲數(shù)據(jù)流量通常情況下都比較大的情況。
存儲網絡的技術主要包括NAS、SAN和RAIDS以及iSCSI,下面分別予以介紹。
NAS (網絡連接式存儲)是通過以太網將存儲節(jié)點上的文件系統(tǒng)作為計算節(jié)點的一個網絡訪問元素來使用,存儲節(jié)點的文件系統(tǒng)可以是NFS和 CIFS。
SAN 則是將NAS 中的以太網換成了光纖(Fiber Channel)網絡,讓計算節(jié)點看來是本地的一個存儲系統(tǒng)一樣,因為光纖帶寬較高,這里需要提及的一個標準是FCoE(Fiber Channel over Ethernet),是通過增強的10Gbps 以太網技術在支持FCoE 的交換機的環(huán)境下,使用隧道協(xié)議允許將光纖通道的信息封裝到以太網信息內,將本來運行于光纖通道的交互信息和數(shù)據(jù)信息通過以太網來傳輸,融合LAN 和SAN 的數(shù)據(jù)類型,減少線纜設備及耗電、網絡收斂便于管理,但是這種技術畢竟是一種新技術,為了保證FCoE 在以太網中不丟包引入了DCB(Data CenterBridging)的概念,目前尚不成熟。
RAIDS 是將一系列物理磁盤作為一個存儲單元,數(shù)據(jù)可以在這個單元里復制和分發(fā),并且用其冗余和高可靠性能對計算節(jié)點的錯誤做到容忍。
iSCSI 并不能算是一種存儲網絡類型,只是一種基于IP 技術的接口標準,由IBM 公司研究開發(fā)的,包括一套指令集,可以與以太網技術或光纖網絡進行融合,比如SAN 就是使用了iSCSI 技術和光纖網絡,達到硬件成本低、擴展性強、操作容易和高性能的優(yōu)勢。
另外,OpenStack 存儲里需要提及的技術是Ceph(http://ceph.com/),這是一種大容量、通過負載實現(xiàn)高性能和高性能的分布式文件系統(tǒng),也是OpenStack 里寄予厚望的開源存儲解決方案,UnitedStack 的生產環(huán)境里采用了Ceph 技術。
通過VLAN來連接分散在不同物理機中不同的租戶網絡實際上和nova-network的VLANManager在想法上是一脈相承的,都是為每一個租戶網絡分配一個物理交換機上的VLAN,在連接所有節(jié)點的同時通過不同的VLAN保證了租戶網絡的隔離性。
4.fixed-ip和floating-ip區(qū)別
OpenStack 對內部的網絡管理有fixed-ip以及floating-ip兩個概念,F(xiàn)ixed-IP是由VM綁定,VM自創(chuàng)建后便不會改變,然而Floating-IP是可以隨時bind給一個VM或釋放的,依照OpenStack的文件表示,F(xiàn)loating-IP是屬于Public IP,一個VM在取得Floating-IP之前是沒有對外的連接功能的,F(xiàn)ixed-IP則是Private IP,VM之間可以用此Private-IP來互相通信,每個project會啟動一個dnsmasq來配置虛擬機的fixed ip。再借由路由器的NAT功能,實現(xiàn)上外網。
5. 網絡控制節(jié)點的高可用
OpenStack High Availability(高可用)
目前并沒有官方聲明OpenStack支持虛擬機級別的高可用性,這個特性在Folsom版本被提出,但是后續(xù)又被放棄了。目前OpenStack有一個孵化項目Evacuate, 其作用是為OpenStack提供虛擬機級別高可用支持。
網絡控制節(jié)點由于在整個環(huán)境中,提供著非常重要的各種服務,因此,實現(xiàn)HA,便及其重要。通常來說,實現(xiàn)各項服務的HA,有如下幾種:
- Mysql:Galear
- RabbitMQ、OpenStack Service:Corosync + Pacemaker
- Horizon VIP:keepalive
#p#
三.計算存儲規(guī)劃
1.磁盤規(guī)劃
注意,這里的值,是我們假設的,需要你按照自己的實際條件來設定。
1.1 控制網絡節(jié)點分區(qū)
1.2 計算存儲節(jié)點分區(qū)
2. 操作系統(tǒng)分區(qū)
2.1 控制/網絡節(jié)點
2.2計算/存儲節(jié)點
備注
云硬盤(Cinder)和Glance共用一個glance volume,如上述規(guī)劃。
SSD硬盤(RAID 0):用于系統(tǒng)盤
SATA大容量硬盤(RAID 5):用于存儲鏡像、虛擬機文件、云硬盤和其他存儲等。
3.實例和鏡像存儲規(guī)劃
計算節(jié)點之間使用glusterfs分布式文件系統(tǒng)做集群,提供共享存儲資源池,副本數(shù)為2。用于存儲云硬盤、鏡像文件、虛擬機文件、以及備份數(shù)據(jù)等。
4. 計算資源規(guī)劃
在計算方面除了CPU需要支持虛擬化技術之外,其通常是1個物理CPU虛擬化16個VCPU(1:16)。
底層的Hypervisor,使用成熟穩(wěn)定,社區(qū)推薦的KVM。
四.思考
1.怎樣實現(xiàn)虛擬機(VM)如數(shù)據(jù)庫般的高可用性、實時無縫遷移。針對云環(huán)境中某些特殊的VM,或許我們可以做VM級別的HA。
2.部署OpenStack環(huán)境相對較易,如何有效實施后期的運維、管理。
3.如何讓OpenStack實現(xiàn)企業(yè)***的期望目標。
參考資料:
1.http://docs.openstack.org/high-availability-guide/content/ch_preface.html
2.http://www.openstack.cn/?p=3663
作者簡介:徐超:畢業(yè)于成都東軟學院信息安全專業(yè),目前就職于上海九州云信息科技有限公司,從事OpenStack相關工作。個人傾向于研究OpenStack、SDN和Docker。