drbd

針對lvs高可用集羣的方法:
heartbeat+ldirectord
生成規則
健康狀態檢查
corosync+ldirectord
keepalived+ipvs

server:rsync+inotify
client:rsync,sersync

das
nas
san

SCSI:initator
target:

分佈式複製塊設備:drbd(distributed replicated block device)
raid1:mirror

drbd:主從
primary:可執行讀、寫操作
secondary:文件系統不能掛載

A:primary
B:secondary

drbd:dual primary(雙主模型)

DLM:distributed lock manager
GFS2/OCFS2

磁盤調度器:合併讀請求,合併寫請求

procotol:
A(async):異步
B(seml sync):半同步
C(sync):同步

drdb source(drdb資源):
資源名稱:可以是除了空白字符外的任意acsii碼字符
drdb設備名稱(可以簡單理解爲磁盤陣列取得的名字md0等):在雙方節點上,此drdb設備的設備文件,一般爲/dev/drdbN,其主設備號爲147,
磁盤:在雙方節點上,各自提供的存儲設備
網絡配置:雙方數據同步時所使用的網絡屬性

drdb:2.6.33起,整合進內核
下載網站
官方網站www.linbit.com
http://mirros.souhu.com/

drdb配置(這種配置方式只能手動切換主輔節點)

命令:
drbdam
drbdsetup
drbdmeta

for i in {1..2}
do
ssh node$i 'wget ftp://172.16.0.1/pub/sources/drbd/a.rpm'
done

node1:
yum install drbd kmod-drbd

for i in {1..2}
do
ssh node$i 'yum install drdb kmod-drbd'
done

rpm -ql drdb

fdisk /dev/sda -->/dev/sda5
cp /usr/share/drbd.conf /etc/drbd.conf

node2:
yum install drbd komd-drbd
fdisk /dev/sda -->/dev/sda5

兩臺節點上都要安裝上yum install drdb knod
兩臺節點上都要進行分區做成drdb設備:fdisk並且不要格式化

drdb的配置文件:兩臺節點配置一樣
/etc/drdb.conf(定義資源)
/etc/drdb.d/gloabl_common.conf(定義資源信息)
/etc/drdb.d/resource.d/

vim /etc/drdb.d/gloabl_common.conf
handlers {
pri-on-incon-degr這行的註釋拿掉
pri-on-incon-sb註釋拿掉

    local-io-error註釋拿掉

}

disk {
on-io-error detach;
}

net {
cram-hmac-alg ”sha1“;
shaerd-secret“mydrb7tj45”;
}

syncer {
rate 200M;
}

vim /etc/drbd.d/mydrbd.res
resource mydrbd {
on node1.chenjiao.com {
device /dev/drdb0;
disk /dev/sda5;
address 172.16.100.6:7789;
meta-disk internal;
}

on node2.chenjiao.com {
device    /dev/drbd0;
    disk      /dev/sda5;
    address   172.16.100.7:7789;
    meta-disk internal;

}
}

scp -r /etc/drbd.* node2:/etc

初始化:
node1:drbdadm create-md mydrdb
node2:drbdadm create-md mydrbd

啓動:
node1:/etc/init.d/drdb start
node2:/etc/init.d/drdb start
cat /proc/drdb
drbd-overview

node1:(只能在一個節點上面執行,用來定義主節點)drbdadm -- --overwrite-data-of-peer primary mydrbd

watch -n 1 cat /proc/drbd

只能主節點格式化,掛載
mkfs -t ext2 -j /dev/drdb0
mkdir /mydata
mount /dev/drbd0 /mydata
cp /etc/inittab /mydata
umount /mydata
drbdadm secondary mydrbd
drbd-overview
在另一節點上面執行drbd-overview
mkdir /mydata
mount /dev/drbd0 /mydata

drdb+corosync+pacemaker配置(實現主從自動切換)兩節點配置一樣
讓drdb配置成爲集羣資源

node1:
service drbd stop

yum install corosync corosynclib cluster-glue cluster-glue-libs heartbeat heartbeat-libs pacemaker pacemaker-cts pacemaker-libs resource-agents libesmtp

mkdir /var/log/cluster

cp corosync.conf.example corosync.conf

vim corosync.conf
secauth:on
threads:2
bindnetaddr:172.16.0.0
mcastaddr:239.212.16.19
logging {
to_syslog:no
}

service {
ver:0
name:pacemaker
}

aisexec {
user:root
group:root
}

corosync-Keygen

scp -p authkeys corosync node2:/etc/corosync/

service corosync start

ssh node2 ‘service corosync start’

查看正常啓動見其他文檔

crm configure
crm(live)configure# verify
crm(live)configure# property stonith-enable=false
crm(live)configure# verify
crm(live)configure# commit
crm(live)confugure# properfy no-quorum-policy=ignore
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# rsc_defaults resource-stickiness=100
crm(live)configure# verify
crm(live)configure# commit
crm(live)ra# provides drbd
crm(live)ra# classes
crm(live)ra# meta ocf:linbit:drbd
crm(live)configure# primitive mysqldrbd ocf:heartbeat:drbd params drbd_resource=mydrbd op start timeout=240 op stop timeout=100 op monitor role=Master interval=20s timeout=30s op monitor role=Slave interval=30s timeout=30s
crm(live)configure# verify
crm(live)configure# ms ms_mysqldrbd mysqldrbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notity=true
crm(live)configure# commit

drbd-overview

crm node standby
crm node online

crm(live)configure# primitive mystore ocf:heartbeat:Filesystem params device=/dev/drbd0 directory=/mydata fstype=ext3 op start timeout=60 op stop timeout=60
crm(live)configure# verify
crm(live)configure# colocation mystore_with_ms_mysqldrbd inf:mystore ms_mysqldrbd:Master
crm(live)configure# order mystore_after_ms_mysqldrbd mandatory:ms_mysqldrbd:promote mystore:start

mkdir /mydata/data
chown -R mysql.mysql /mydata/data

scripts/mysql_install_db --user=mysql --datadir=/mydata/data/

vim /etc/my.cnf
datadir=/mydata/data

crm(live)configure# primitive mysqld lsb:mysqld
crm(live)configure# verify
crm(live)configure# colocation mysqld_with_mystore inf:mysqld mystore
crm(live)configure# order mysqld_after_mystore mandatory:mystore mysqld
crm(live)configure# verify
crm(live)configure# show xml
crm(live)configure# commit
crm(live)configure# primitive myip ocf:heartbeat:IPaddr params ip=172.16.100.1 nic=eth0 cidr_netmask=255.255.0.0
crm(live)configure# colocation myip_with_ms_mysqldrbd inf:ms_mysqldrbd:Master myip
crm(live)configure#commit

node2:
drbd-overview
umount /mydata

drbdadm secondary mydrbd
service drbd stop

yum install corosync corosynclib cluster-glue heartbeat pacemaker resource-agents libesmtp

mkdir /var/log/cluster

DLM:Distributed lock manager(分佈式鎖管理器)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章