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