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


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




在學習該方面知識時,當前采用的操作系統版本是centos 7.1 x64。
首先在ESXi中建立2台用於測試的虛機,最小化安裝完成centos,配置IP分別為10.0.0.12、10.0.0.13,主機名分別為controller2、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)配置。
無狀態服務的高可用性,需要提供冗余實例和負載平衡。

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

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM