openstack controller ha測試環境搭建記錄(一)——操做系統準備

爲了初步瞭解openstack controller ha的工做原理,搭建測試環境進行學習。




在學習該方面知識時,當前採用的操做系統版本是centos 7.1 x64。
首先在ESXi中創建2臺用於測試的虛機,最小化安裝完成centos,配置IP分別爲10.0.0.十二、10.0.0.13,主機名分別爲controller二、controller3。


關閉防火牆:
# systemctl stop firewalld
# systemctl disable firewalld

修改主機名:
# hostnamectl set-hostname controller2

升級系統至最新版本(升級至centos 7.1)並重啓:
# yum update -y

下載pacemaker組件的repo文件:
# cd /etc/yum.repos.d
# wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/network:ha-clustering:Stable.repo

安裝相關軟件:
# yum install -y wget
# yum install -y yum-plugin-priorities
# yum install -y openstack-selinux
# yum install -y ntp
# yum install -y pacemaker corosync resource-agents
# yum install -y crmsh cluster-glue
# yum install -y haproxy

配置/etc/hosts:
10.0.0.11 controller
10.0.0.12 controller2
10.0.0.13 controller3

配置NTP時間同步:
# vi /etc/ntp.conf

找到ntp.conf中指定server的部分,註釋原文,增長測試環境中的NTP服務器(10.0.0.11):
     21 #server 0.centos.pool.ntp.org iburst
     22 #server 1.centos.pool.ntp.org iburst
     23 #server 2.centos.pool.ntp.org iburst
     24 #server 3.centos.pool.ntp.org iburst
     25 server controller iburst

啓動ntp服務:
# systemctl enable ntpd.service
# systemctl start ntpd.service

驗證ntp工做正常:
# ntpq -c peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*controller      LOCAL(0)         6 u   65  128  377    0.213   -0.620   0.040
# ntpq -c assoc

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1  9233  965a   yes   yes  none  sys.peer    sys_peer  5


相關資料地址:

高可用實現官網描述地址:
http://docs.openstack.org/ha-guide/controller-ha.html

寫得很好的openstack高可用博文:
http://www.cnblogs.com/sammyliu/p/4741967.html

CRM中的幾個基本概念:
http://www.toxingwang.com/linux-unix/haorlb/1660.html

HAProxy 1.5官方文檔:
http://cbonte.github.io/haproxy-dconv/configuration-1.5.html

HAProxy + Pacemaker實現MySQL的高可用負載均衡:
http://www.zrwm.com/?cat=166

官網centos7安裝openstack文檔(非高可用):
http://docs.openstack.org/juno/install-guide/install/yum/content/neutron-controller-node.html

爲便於快速部署,本文直接粘貼已測試驗證過的配置,有些參數甚至其它擴展的內容都直接略去了。
這即是一種遺憾。故建議上述連接的資料仍是蠻看看,尤爲是官方資料。
我在學習官網資料過程當中,保留了一部分翻譯,粘貼在每篇博文的尾處,不作排版和整理。


--------------------------------------------------------------------------------------------------------
OpenStack無狀態的服務包括nova-api、nova-conductor、glance-api、keystone-api、neutron-api、nova-scheduler。
OpenStack有狀態的服務包括OpenStack數據庫和消息隊列。有狀態服務高可用性取決於你能夠選擇主動/被動(Active/Passive)或主動/主動(Active/Active)配置。
無狀態服務的高可用性,須要提供冗餘實例和負載平衡。

一、主動/被動(Active/Passive)配置
主備概念,主節點出問題時,備節點頂上。通常用VIP實現,使用Pacemaker和Corosync。

二、主動/主動(Active/Active)配置
無狀態使用VIP進行負載平衡,可使用HAProxy軟件。

OpenStack組件分紅3類:
一、使用Python語言寫的API無狀態服務
二、狀態類型服務,如SQL數據庫
三、AMQP,提供openstack內部的有狀態服務

MySQL/Galera集羣在HAproxy以後運行,HAproxy對進來請求進行負載均衡,對外只暴露一個IP地址。

MySQL使用主動/被動模式,以免死鎖的發生。
多個RabbitMQ節點使用oslo.messaging文件進行配置。當一個AMQP節點失效,應用程序自動重連下一個AMQP節點。
Memcached是分佈式緩存,用於存放時效性很短的數據,如token。

html

相關文章
相關標籤/搜索