1. 程式人生 > >openstack HA配置-Mysql

openstack HA配置-Mysql

概念

環境準備

兩個控制節點

host: controller1
IP: 192.168.0.20

host: controller2
IP: 192.168.0.21

hosts檔案

分別在controller1和controller2節點的hosts檔案中新增如下

192.168.0.20    controller1
192.168.0.21    controller2

ssh互信

在controller1節點執行如下

# ssh-keygen -t rsa -P ''
# ssh-copy-id -i  /root/.ssh/id_rsa.pub controller2

在controller2節點執行如下

# ssh-keygen -t rsa -P ''
# ssh-copy-id -i  /root/.ssh/id_rsa.pub controller1

時間同步

# apt-get install ntp

安裝和配置 corosync+pacemaker

安裝 corosync+pacemaker

# apt-get install pacemaker
# apt-get install corosync

配置 corosync+pacemaker

配置檔案兩個

配置檔案:/etc/corosync/corosync.conf

# /etc/corosync/corosync.conf
totem {                           #心跳資訊傳遞層
    version: 2                    #版本
    secauth: on                   #認證資訊  一般on
    threads: 0                    #執行緒
    interface {                   #定義心跳資訊傳遞的介面
        ringnumber: 0
        bindnetaddr: 172.16.0.0   #繫結的網路地址,寫網路地址
mcastaddr: 226.94.1.1 #多播地址 mcastport: 5405 #多播的埠 ttl: 1 #生存週期 } } logging { #日誌 fileline: off to_stderr: no #是否輸出在螢幕上 to_logfile: yes #定義自己的日誌 to_syslog: no #是否由syslog記錄日誌 logfile: /var/log/cluster/corosync.log #日誌檔案的存放路徑 debug: off timestamp: on #時間戳是否關閉 logger_subsys { subsys: AMF debug: off } } amf { mode: disabled } service { ver: 0 name: pacemaker # pacemaker作為corosync的外掛進行工作 } aisexec { user: root group: root }

把節點controller1的配置檔案copy到controller2中

# scp /etc/corosync/corosync.conf controller2:/etc/corosync/

認證檔案

節點controller1上的操作

# corosync-keygen

注意:
Corosync Cluster Engine Authentication key generator.
Gathering 1024 bits for key from /dev/random.
Press keys on your keyboard to generate entropy (bits = 152).
遇到這個情況,表示電腦的隨機數不夠,各位朋友可以不停的隨便敲鍵盤,或者安裝軟體也可以生成隨機數

把認證檔案也複製到controller2主機上

# scp /etc/corosync/authkey controller2:/etc/corosync/

開啟服務和檢視叢集中的節點資訊 (在controller1和controller2上的操作)

開啟叢集

# service corosync start

檢視叢集狀態

# crm status

注意:
如果啟動corosync時無反應也不報錯,修改/etc/default/corosync檔案,把START=no改為START=yes

安裝和配置drbd

安裝drbd

# apt-get install drbd8-utils

注意:
在 ubuntu 14.04 下執行 service drbd start 很可能會出現如下錯誤.
node already registered
* Starting DRBD resources
DRBD module version: 8.4.5
userland version: 8.4.4
you should upgrade your drbd tools!
這是由於 linux 核心版本升級到, 而於自帶的 drbd 軟體不相容導致的. 可以通過 ppa 來安裝第三方提供的高版本的 drbd 解決, 命令如下:

# apt-get install -y python-software-properties
# add-apt-repository ppa:icamargo/drbd
# apt-get update
# apt-get install -y drbd8-utils

之後應該就可以啟動 drbd 了

# service drbd start

配置drbd

配置檔案兩個

全域性配置檔案: /etc/drbd.d/global_common.conf
資源配置檔案: /etc/drbd.d/mydata.res (沒有需要自己建立)

全域性配置檔案: /etc/drbd.d/global_common.conf

#  /etc/drbd.d/global_common.conf

global {
        usage-count no; # 是否參加DRBD使用者統計,預設是yes
        # minor-count dialog-refresh disable-ip-verification
}
common {
        protocol C;  # DRBD支援三種協議,預設是C 協議
        handlers {
                pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
                pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
                local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
                # fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
                # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
                # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
                # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
                # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
        }
        startup {
                #wfc-timeout 120; # 啟動時連線其他節點的超時時間
                #degr-wfc-timeout 120;
        }
        disk {
                on-io-error detach; # 當磁碟有錯誤時,不連線
                #fencing resource-only;
        }
        net {
                cram-hmac-alg "sha1"; # 該選項可以用來指定HMAC演算法來啟用對等節點授權。drbd強烈建議啟用對等節點授權機制。可以指定/proc/crypto檔案中識別的任一演算法。必須在此指定演算法,以明確啟用對等節點授權機制。
                shared-secret "mydrbdlab"; # 該選項用來設定在對待節點授權中使用的密碼,最長64個字元
        }
        syncer {
                rate 1000M; # 設定主備節點同步時的網路速率最大值
        }
}

資源配置檔案: /etc/drbd.d/mydata.res

# /etc/drbd.d/mydata.res

resource mydata { # 資源組的名稱,mydata 
  on controller1 { # 節點主機名
    device    /dev/drbd0; # 今後使用的裝置
    disk      /dev/sda3; #  # 該節點上的用於存放資料的分割槽號,配置的先前已經建立的分割槽,sda3修改為建立的分割槽
    address   192.168.0.20:7789; # 該節點的IP地址
    meta-disk internal; # meta data資訊存放的方式
  }
  on controller2 { # 節點主機名
    device    /dev/drbd0; # 今後使用的裝置
    disk      /dev/sda3; #  # 該節點上的用於存放資料的分割槽號,配置的先前已經建立的分割槽,sda3修改為建立的分割槽
    address   192.168.0.21:7789; # 該節點的IP地址
    meta-disk internal; # meta data資訊存放的方式
  }
}

在controller1節點上操作

建立drbd的資源

# drbdadm create-md mydata # mydata前面建立的資源組名稱

(如果出現如下錯誤:

md_offset21467942912

al_offset21467910144

bm_offset21467254784

Foundext3 filesystem

20964792kB data area apparently used

20964116kB left usable by current configuration

Devicesize would be truncated, which

wouldcorrupt data and result in’access beyond end of device’ errors.

You needto either

  • useexternal meta data (recommended)

  • shrinkthat filesystem first

  • zeroout the device (destroy the filesystem)

Operationrefused.

Command ‘drbdmeta 1 v08 /dev/sdb1 internal create-md’terminated with exit code 40

drbdadm create-md r0exited with code 40 )

執行如下命令:


# dd if=/dev/zero bs=1M count=1of=/dev/sdb1;sync

再次執行drbdadm create-md r0看到success則表示成功。

啟動服務

# service drbd start

在controller2節點上操作

建立drbd的資源

# drbdadm create-md mydata # mydata前面建立的資源組名稱

啟動服務

# service drbd start

在controller1上執行,設定controller1為drbd的主節點

# drbdadm primary --force mydata

在controller2上執行,設定controller2為drbd的備用節點

# drbdadm  secondary mydata  #把此節點改為drbd的備用節點

檢視同步進度

# cat /proc/drbd

此命令可以動態的檢視同步進度

# watch -n1 'cat /proc/drbd'

在controller1上,格式化drdb分割槽並掛載drbd的分割槽

格式化分割槽

# mke2fs -t ext4 /dev/drbd0

建立掛載的檔案

# mkdir /mnt/mysqldata

掛載檔案

# mount /dev/drbd0    /mnt/mysqldata

修改檔案許可權

# chown -R mysql:mysql /mnt/mysqldata/

安裝和配置mysql

安裝(同時在controller1和controller2上執行)

# apt-get install mysql-server

配置(同時在controller1和controller2上執行)

配置檔案兩個
/etc/mysql/my.cnf
vim /etc/apparmor.d/usr.sbin.mysqld

配置檔案/etc/mysql/my.cnf

datadir 目錄指向預掛載 drbd0目錄

# /etc/mysql/my.cnf
... ...
datadir = /mnt/mysqldata/data
... ...

配置檔案 vim /etc/apparmor.d/usr.sbin.mysqld

#/var/lib/mysql/ r,行修改為如下
 /mnt/mysqldata/data/ r,
#/var/lib/mysql/** rwk,,行修改為如下
/mnt/mysqldata/data/** rwk,

初始化mysql資料庫(只在controller1上執行)

# /usr/bin/mysql_install_db --user=mysql --datadir=/mnt/mysqldata/data/  --basedir=/usr

啟動mysql資料庫(只在controller1上執行)

# service mysql start

設定mysql管理員密碼(只在controller1上執行)

# /usr/bin/mysqladmin -u root password 'root'

整體測試

由以上步驟可以得到mysql資料庫在controller1節點上可以正常執行,現在關閉controller1上的資料庫,將啟動controller2上的資料庫。

在controller1上執行如下

停止controller1上的資料庫

# service mysql stop

解除安裝drbd0的掛載點

# umount    /dev/drbd0

將controller1改為備用節點

# drbdadm  secondary mydata

在controller2上執行

將controller2改為主節點

# drbdadm primary mydata

建立掛載的檔案

# mkdir /mnt/mysqldata

掛載檔案

# mount /dev/drbd0    /mnt/mysqldata

修改檔案許可權

# chown -R mysql:mysql /mnt/mysqldata/

開啟controller2上的mysql資料庫

# service mysql start

進入資料庫,檢視是否一樣

# mysql -uroot -proot
> show databases;

相關推薦

openstack HA配置-Mysql

概念 環境準備 兩個控制節點 host: controller1 IP: 192.168.0.20 host: controller2 IP: 192.168.0.21 hosts檔案 分別在controller1和controll

Mysql Fabric HA配置測試

MySQL Fabric是Oracle官方推出的原生mysql高可用性系統,它可以簡化管理MySQL資料庫群,它提供兩大特性,一是通過故障檢測和故障轉移功能提供了高可用性,一是通過自動資料分片功能實現可擴充套件性。本文件只說明自動故障轉移-高可用性的實現。 一、測試環境

VCSA 6.5 HA配置 之三 :準備工作

vmware vcenter ha 高可用 vcsa 接著上一篇文章部署完成VCSA 6.5後,還需要做一些準備工作才能開啟高可用功能,本篇文章主要就講述如何為vCenter 高可用進行準備工作配置vCenter HA網絡從vCenter HA的架構圖中可以看出對於vCenter HA的高

VCSA 6.5 HA 配置之五:故障轉移測試

center style justify 接著上篇文章配置完成VCSA的高可用後,其是否真的能實現高可用的效果,本篇文章將會一探究竟手動故障切換在vCenter HA配置頁面可以看到當前的主動節點、被動節點和見證節點;在例行維護或者其他時候可以手動執行故障切換通過右上方的"啟動故障切換" ,在一般

CentOS 7 yum安裝配置mysql

service 軟件包 search 源文件 傳送門 首先去官網下載要用的yum源 傳送門:http://dev.mysql.com/downloads/repo/yum/ yum源文件:/home/mysql57-community-release-el7-8.noarch.rpm 是一

CentOS安裝配置MySql數據庫

ima 16px 必須 eas 方式 temp grep 5.7 leg CentOS版本7.2,MySql版本5.7 1、下載MySql安裝源 wget https://dev.mysql.com/get/mysql57-community-release-el

Java學習筆記——Linux下安裝配置MySQL

code names 刪掉 set 影響 per install nod 設置 山重水復疑無路,柳暗花明又一村               ——遊山西村 系統:Ubuntu 16.04LTS 1\官網下載mysql-5.7.18-linux-glibc2.5-x86

Linux CentOS下安裝、配置mysql數據庫

config 得到 操作 program except naconda 服務端 強力 fig 假設要在Linux上做j2ee開發。首先得搭建好j2ee的開發環境。包含了jdk、tomcat、eclipse的安裝(這個在之前的一篇隨筆中已經有具體解說了Linux學習之Ce

openstack newton 配置glusterfs 作cinder backend

glusterfs cinder newton 一、搭建gluster1、節點準備hostnameip數據盤vdbg0192.168.10.1010Gg1192.168.10.1110Gg2192.168.10.1210G2、安裝glusterfsyum install centos-releas

配置mysql的主從復制

ati 測試 進程 file com repl 同步 sta oca mysql版本:5.6 主服務器的ip:192.168.134.178 從服務器的ip:192.168.134.180 現在主從機器分別安裝mysql的5.6版本,安裝過程省略; 1  修改主服務器的

MySQL配置MySQL安裝和遠程訪問步驟

image 新建 oar 最新 rest word clas 字段 sql安裝 以遠程服務器為例,安裝Mysql到Linux並配置遠程訪問,步驟如下: 1.下載安裝最新的rpm文件 方法一: rpm -Uvh http://repo.mysql.com/mysql-co

ubuntu16.04服務器配置mysql,並開啟遠程連接

service ber word width 試驗 alt images 沒有 and ubuntu16.04mysql安裝就不說了; 直接重點 這裏我用的是阿裏雲的ecs服務器,ubuntu16.04系統 1授權用戶,並允許遠程登錄; 默認的MySQL只有一個root賬

Linux下安裝Python3的django並配置mysql作為django默認數據庫(轉載)

make lba del log pri ica www src rim 我的操作系統為centos6.5 1 首先選擇django要使用什麽數據庫。django1.10默認數據庫為sqlite3,本人想使用mysql數據庫,但為了測試方便順便要安裝一下sqlite開發

window配置 mysql 詳細步驟

安裝路徑 開始 詳細 詳細步驟 root 註意 nbsp 5.7 初始密碼 1、配置環境變量:右擊“我的電腦”-->"高級"-->"環境變量" 3)在(系統變量)path變量(已存在不用新建)添加變量值:G:\MySQL\mysql-5.7.12-winx6

Mac 安裝配置Mysql

nes text 裝配 tex alias markdown 什麽 又一 shu Mac下安裝配置Mysql By 白熊花田(http://blog.csdn.net/whiterbear) 轉載需註明出處,謝謝。 下載安裝 去官網下載Co

Hadoop-HA配置詳細步驟

eno col ice nbsp 版本 files tab des frame 1. HA服務器配置 對hdfs做高可用 1.1服務器詳情 服務器:centos7 Hadoop:2.6.5 Jdk:1.8 共四臺服務器 192.168.1.111 node1 192

python django 站點管理 配置mysql數據庫

各種功能 mysql manage 編輯 ont code min sqlit migration 運行命令mysql -uroot -p進入mysql 新建一個數據庫mydatabase 在/mysite/mysite目錄下 編輯settings.py文件: 默認數據庫為

openstack安裝配置—— compute node配置

安裝配置nova客戶端 安裝配置neutron客戶端 openstack compute節點配置 計算節點需要配置的主要是nova和neutron的客戶端,控制節點在進行資源調度及配置時需要計算節點配合方能實現的,計算節點配置內容相對較少,實際生產環境中,需要配置的計算節點數量相當龐大,那

openstack安裝配置—— dnshboard安裝配置

openstack dnshboard安裝配置 openstack實驗環境搭建 openstack vnc網面訪問 做為專業運維人員,使用命令行工具去管理雲主機是沒有問題的,但如果雲要提供給客戶使用,就不可能讓用戶命令行工具去管理自己的雲主機了,此時,就需要一個簡單易用的管理頁面提供給用戶

四、cent OS安裝配置mysql

cnblogs 允許 ins wget linu date log 裝配 獲得 下載mysql的repo源$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 安裝mysql-commu