[連載型] Neutron系列(22):OpenStack 高可用和災備方案 [OpenStack HA and DR]【下】

問題導讀:







1.RDD HA的部署方案都有哪些?
2.什麼是A/A 方案?
3.網易 OpenStack 雲的 HA 方案是什麼?











3. 部分 OpenStack 方案提供者的 HA 方案

3.1 RDO HA


sql

這裏  有完整的 RDO HA 部署方案:
 
<ignore_js_op>



該配置最少須要五臺機器:
 
  • 一臺(物理或者虛擬)服務器部署 nfs server,dhcp,dns
  • 一臺物理服務器來做爲計算節點
  • 三臺物理服務器組成 pacemaker 集羣,建立多個虛機,安裝各類應用

 

特徵:
 
  • 每一個集羣使用三個節點,所有采用 A/A 模式,除了 cinder-volume 和 LBaas。RedHat 不認爲 A/P 模式是真正的 HA。
  • 提供使用 Pacemaker 或者 Keepalived 兩套方案。
  • 將 API 和內部無狀態組件按功能組分佈到各個專有集羣,而不是放在一個集羣上。
  • Cinder 這裏標識爲 A/A HA,可是不包括 cinder-volume。
  • 計算節點 HA 使用 2.4 部分描述的 HA 方式。

 

Service Process
Mode
HA stragegy
Support services MariaDB - Galera
A/A
HAProxy / app cluster
Support services RabbitMQ
A/A
App cluster / service config
Support services HAProxy
A/A
Keepalived
Support services MongoDB
A/A
App cluster (ceilometer 和 heat 會使用)
Support services Memcached
A/A
Service configuration
Keystone openstack-keystone
A/A
HAProxy
Glance openstack-glance-api
A/A
HAProxy
Glance openstack-glance-registry
A/A
HAProxy (向 glance-api 提供 REST API)
Nova openstack-nova-api
A/A
HAProxy
Nova openstack-nova-cert
A/A
 
Nova openstack-nova-compute
A/A
參見 2.4 部分描述
Nova openstack-nova-scheduler
A/A
 
Nova openstack-nova-conductor
A/A
 
Nova openstack-nova-novncproxy
A/A
HAProxy
Cinder openstack-cinder-api
A/A
HAProxy
Cinder openstack-cinder-scheduler
A/A
 
Cinder openstack-cinder-volume
A/P
No HA (RH 不把 A/P HA 看成HA!)。參考這裏
Cinder openstack-cinder-backup
A/A
 
Neutron neutron-server
A/A
HAProxy
Neutron neutron-dhcp-agent
A/A
Multiple DHCP agents
Neutron neutron-l3-agent
A/A
L3 HA
Neutron neutron-metadata-agent
A/A
 
Neutron neutron-lbaas-agent
A/P
目前的設計不容許 A/A
Neutron neutron-openvswitch-agent
A/A
 
Neutron neutron-metering-agent
A/A
 
Horizon httpd
A/A
HAProxy
Ceilometer openstack-ceilometer-api
A/A
HAProxy
Ceilometer openstack-ceilometer-central
A/A
Workload partitioning: tooz + Redis
Ceilometer openstack-ceilometer-compute
A/A
 
Ceilometer openstack-ceilometer-alarm-notifier
A/A
 
Ceilometer openstack-ceilometer-evaluator
A/A
 
Ceilometer openstack-ceilometer-notification
A/A
 
Heat openstack-heat-api
A/A
HAProxy

 

關於 MariaDB:
 
  • 它是數據庫管理系統 MySQL 的一個分支,主要由開源社區在維護,採用 GPL 受權許可。開發這個分支的緣由之一是:甲骨文公司收購了 MySQL 後,有將 MySQL 閉源的潛在風險,所以社區採用分支的方式來避開這個風險。
  • MariaDB 的目的是徹底兼容MySQL,包括 API 和命令行,使之能輕鬆成爲 MySQL 的代替品。除了做爲一個Mysql的「向下替代品」,MariaDB包括的一些新特性使它優於MySQL。這篇文章 有 Mysql 和 MariaDB 對比分析。

 

不禁得贊一下 RDO 的文檔!想起來以前去拜訪一個 OpenStack 初創公司,CTO 說他們基本上是參考 RDO 作方案,看起來是頗有道理的。
 

3.2 Mirantis OpenStack 6.0 HA 方案:A/A 方案

數據庫

Mirantis 推薦在生產環境中使用帶至少三個控制節點的 HA:
 
<ignore_js_op>

 

其中:
 
  • 使用 Pacemaker 控制 Neutron Agent,實現 A/P HA
  • API 服務運行在多個節點上,使用 HAProxy 實現負載均衡,提供 VIP
  • RabbitMQ A/A
  • Mysql A/A

 

各 HA 組件之間的關係:
 
<ignore_js_op>

 

各組件被調用的方式:
 
<ignore_js_op>

 

點評:與 RDO 方案同樣,該 HA 也是一個完全的 HA 方案,消除了整個系統的 SPOF。可是,與 RDO 相比分散式控制節點相比,Mirantis 的集中式控制節點上運行的服務較多,可能會影響其性能,可是在小規模雲環境中節省了硬件成本。
 

3.3 HP Helion 的 HA 方案:A/A方案

api

系統組成:(兩節點 HAProxy + Keepalived 集羣) +  第三個控制節點 +(RabbitMQ Cluster + Queue 鏡像)+(Galera + Mysql)
 
<ignore_js_op>

 

  • OpenStack 客戶端經過 VIP:8774 訪問 nova-api
  • HAProxy 將請求轉到 controller 0 上的 nova-api
  • nova-api 經過 VIP:3306 訪問 Mysql DB
  • HAProxy 將請求轉到 controller 1 上的 Mysql 實例

 

點評:HP 的 A/A 方案是不完全的,甚至是有些怪異(爲何不三個控制節點作一個A/A 集羣呢?),由於至少 Horizon、 Ceilomter 和 Neutron Agents 沒有實現 HA,它只實現了 API,DB 和 MQ 的 HA。
 

3.4 TCP Cloud OpenStack HA

服務器

<ignore_js_op>

 

特徵:
 
  • 系統組成:Pacemaker, Corosync, HAProxy, Galera + IBM 硬件好比 Storwize V7000
  • 使用三階段集羣 A/A 集羣
  • 提供 99.99% 的服務可靠性
  • 沒看到虛機 HA


3.5 Paypal OpenStack 生產系統 HA

網絡

<ignore_js_op>

 

特徵:
 
  • 使用硬件負載均衡 F5
  • 使用商業 SDN
  • 使用 Monit 監控和重啓各服務
  • 使用 Pacemaker
  • 用在生成系統,優化進行中


3.6 Oracel OpenStack HA:A/P HA

app

CRM:Oracel Clusterware(Oracle Grid Infrastructure Release 12c Release 1 or later)
 
組成:兩個控制節點 + 兩個網絡節點組成的集羣。除了網絡節點上的組件外,別的組件都部署在控制節點上。
 
<ignore_js_op>

 

結論:該方案比不上前面幾個公司的方案,由於:
 
  • 只提供兩節點 A/P 方案,可靠性和 CTO 比不上三節點方案
  • 須要使用共享存儲好比 NFS 來實現 A/P HA 模式的 DB 和 MQ,容易腦裂
  • 不使用免費的 Pacemaker,部署成本增長。


3.7 網易 OpenStack 雲的 HA 方案

負載均衡

好不容易找到一個國內公司的方案,來源在 這裏:

 

<ignore_js_op>

 

特徵:
 
  • 使用 keepalived 管理的 HAProxy
  • 控制節點應該是 A/A HA 方案
  • 沒有看到計算節點和網絡控制節點的 HA 方案,彷佛沒有用 neutron,而是用 nova-network
  • 高可用 RabbitMQ 集羣和主備 MySQL,以及 memcache 集羣是額外部署的


3.8 小結

性能

  • RDO > Mirantis > HP >> Oracel
  • HA 是生產環境中的部署必須有的
  • HA 模式方面,A/A HA 方案爲主流
  • 數據庫方面,Mysql Galera 爲主流
  • MQ 方面,RabbitMQ 集羣 + 鏡像消息隊列爲主流
  • CRM 方面,Pacemaker 三節點集羣是主流
  • 負載均衡方面,HAProxy 是主流
  • 網絡方面,Neutron 新的 HA 方案包括 VRRP 和 DVR 還未成熟,還沒有真正進入生產環境
  • 存儲方面,OpenStack 須要解決 cinder-volume 的 A/A 實現
  • 計算方面,OpenStack 須要原生的虛機 HA 實現


4. OpenStack DR

優化

目前,OpenStack 上沒有實現 DR。 IBM 和 RedHat 聯合發起的 DRaas 提議:

 

<ignore_js_op>

 

狀態:
 
  • 目前沒有詳細的方案,只有一個概要設計,還處於 Gap 識別和補齊階段。
  • 具體的實現主要集中在cinder 側元數據(Juno IBM 實現了部分的 Volume Replication 功能)、業務數據同步相關,可是目前進展不樂觀。

 

能夠參考 RedHat 的更多文檔,包括 Preparing for the Worst Case Scenario: A Vision for OpenStack Disaster Recovery 和 Disaster Recovery Enablement in OpenStack。



參考連接和文檔:
  • deepdiveintohighlyavailableopenstackarchitecture-openstacksummitvancouver2015-150520154718-lva1-app6891.pdf
  • RDO 官網
  • OpenStack 官網
  • Mirantis-OpenStack-6.0-ReferenceArchitecture (1).pdf
相關文章
相關標籤/搜索