1. 程式人生 > >OpenStack 高可用和災備方案(下)

OpenStack 高可用和災備方案(下)

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

3.1 RDO HA

這裡 有完整的 RDO HA 部署方案:

圖片描述

該配置最少需要五臺機器:

  1. 一臺(物理或者虛擬)伺服器部署 nfs server,dhcp,dns
  2. 一臺物理伺服器來作為計算節點
  3. 三臺物理伺服器組成 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:

圖片描述

其中:

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

各 HA 元件之間的關係:

圖片描述

各元件被呼叫的方式:

圖片描述

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

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

系統組成:(兩節點 HAProxy + Keepalived 叢集) + 第三個控制節點 +(RabbitMQ Cluster + Queue 映象)+(Galera + Mysql)

圖片描述

  1. OpenStack 客戶端通過 VIP:8774 訪問 nova-api
  2. HAProxy 將請求轉到 controller 0 上的 nova-api
  3. nova-api 通過 VIP:3306 訪問 Mysql DB
  4. HAProxy 將請求轉到 controller 1 上的 Mysql 例項

點評:HP 的 A/A 方案是不徹底的,甚至是有些怪異(為什麼不三個控制節點做一個A/A 叢集呢?),因為至少 Horizon、 Ceilomter 和 Neutron Agents 沒有實現 HA,它只實現了 API,DB 和 MQ 的 HA。

3.4 TCP Cloud OpenStack HA

圖片描述

特徵:

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

來源:TCP 官網

3.5 Paypal OpenStack 生產系統 HA

圖片描述

特徵:

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

3.6 Oracel OpenStack HA:A/P HA

CRM:Oracel Clusterware(Oracle Grid Infrastructure Release 12c Release 1 or later)

組成:兩個控制節點 + 兩個網路節點組成的叢集。除了網路節點上的元件外,別的元件都部署在控制節點上。

圖片描述

結論:該方案比不上前面幾個公司的方案,因為:

  • 只提供兩節點 A/P 方案,可靠性和 CTO 比不上三節點方案
  • 需要使用共享儲存比如 NFS 來實現 A/P HA 模式的 DB 和 MQ,容易腦裂
  • 不使用免費的 Pacemaker,部署成本增加。

3.7 網易 OpenStack 雲的 HA 方案

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

圖片描述

特徵:

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

    3.5 小結

  • 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

圖片描述

狀態:

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

作者資訊:劉世民(Sammy Liu),IBM 雲架構師,十餘年IT行業從業經歷,在電信、企業軟體、儲存以及雲端計算等領域做過研發、管理和架構設計等工作。從 2012 年開始學習 OpenStack,對其核心模組有較深入的瞭解;帶領過團隊開發OpenStack模組。