此内容仅做笔记使用

1.设置网卡配置
sudo vim /etc/network/interfaces

auto enp0s3
iface enp0s3 inet static
hostname root1
address 10.10.3.45
netmask 255.255.254.0
gateway 10.10.3.254
dns-nameservers 8.8.8.8

sudo /etc/init.d/networking restart

AB服务器按照自己情况设置,注意设置hostname


2.设置时间
sudo dpkg-reconfigure tzdata 
sudo apt-get update
sudo apt-get -y install ntp


3.配置主机名与ip对应
A服务器
vim /etc/hostname
root1

B服务器
vim /etc/hostname
root2

查看主机名
uname -n

hostname


vim /etc/hosts
10.10.3.65 root1
10.10.3.66 root2

A服务器查看是否ping通B服务器
ping -c 3 root2


4.设置免密
sudo apt-get install haveged
sudo corosync-keygen

A服务器
ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub zfjia@10.10.3.66

ssh zfjia@10.10.3.66

B服务器
ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub zfjia@10.10.3.65

ssh zfjia@10.10.3.65


B服务器
chmod 777 -R /etc/corosync/

A服务器
sudo scp /etc/corosync/authkey zfjia@10.10.3.66:/etc/corosync/

B服务器
chmod 644 -R /etc/corosync/

sudo chown root: /etc/corosync/authkey
sudo chmod 400 /etc/corosync/authkey

5.安装软件
apt-get install pacemaker corosync fence-agents


6.配置corosync
vim /etc/corosync/corosync.conf

totem {
    version: 2
    secauth: off
    cluster_name: pacemaker1
    transport: udpu
}

interface {
    ringnumber: 0
    bindnetaddr: 10.10.3.255
}
aisexec {
  user:root
  group:root
}

nodelist {
    node {
        ring0_addr: root1
        nodeid: 101
    }
    node {
        ring0_addr: root2
        nodeid: 102
    }
}
logging {
  to_logfile: yes
  logfile: /var/log/corosync/corosync.log
  to_syslog: yes
  timestamp: on
}
quorum {
    provider: corosync_votequorum
    two_node: 1
    wait_for_all: 1
    last_man_standing: 1
    auto_tie_breaker: 0
    expected_votes: 2
}


sudo mkdir -p /etc/corosync/service.d 
sudo vim /etc/corosync/service.d/pcmk

然后将此脚本添加到pcmk文件中
service {
  name: pacemaker
  ver: 1
}


vim /etc/default/corosync
START=yes

重启
sudo service corosync restart

查看两个服务器是否连通
sudo corosync-cmapctl | grep members


7.启动服务
service pacemaker restart
service corosync restart


注意配置文件后是否生效
ps -ef|grep pacemaker
ps -ef|grep corosync

扩展:结束进程
ps -ef | grep pacemaker | grep -v grep | awk '{print $2}' | xargs kill -9
ps -ef | grep corosync | grep -v grep | awk '{print $2}' | xargs kill -9

8.
禁用STONITH
crm configure property stonith-enabled=false

忽略Quorum策略
crm configure property no-quorum-policy=ignore

强制集群在单个故障后移动服务
crm configure property migration-threshold=1


开机自启
sudo update-rc.d pacemaker defaults 20 01

sudo service pacemaker restart

成功监控状态
sudo crm status

9.创建sdb1磁盘

sudo fdisk -l

sudo fdisk /dev/sdb


n
p
1
输入开始字节2048
输入结束字节
p
w

lsblk


10.安装drbd

AB服务器
sudo apt-get install -y drbd8-utils


初始化磁盘文件(第一次部署时)
sudo dd if=/dev/zero of=/dev/sdb0 bs=100
sudo dd if=/dev/zero of=/dev/sdb2 bs=100
sudo dd if=/dev/zero of=/dev/sdb3 bs=100


10.配置drbd文件


vim /etc/drbd.conf

global { usage-count yes; }
common {
  syncer {rate 10M;}
}
resource r0 {
  protocol C;
  on root1 {
    device /dev/drbd0;
    disk /dev/sdb2;
    address 10.10.3.65:7788;
    meta-disk internal;
  }
  on root2 {
    device /dev/drbd0;
    disk /dev/sdb2;
    address 10.10.3.66:7788;
    meta-disk internal;
  }
}
resource r2 {
  protocol C;
  on root1 {
    device /dev/drbd2;
    disk /dev/sdb3;
    address 10.10.3.65:7789;
    meta-disk internal;
  }
  on root2 {
    device /dev/drbd2;
    disk /dev/sdb3;
    address 10.10.3.66:7789;
    meta-disk internal;
  }
}
resource r3 {
  protocol C;
  on root1 {
    device /dev/drbd3;
    disk /dev/sdb4;
    address 10.10.3.65:7790;
    meta-disk internal;
  }
  on root2 {
    device /dev/drbd3;
    disk /dev/sdb4;
    address 10.10.3.66:7790;
    meta-disk internal;
  }
}


启用模块
sudo modprobe drbd

查看可用块设备信息
lsblk

创建资源
sudo drbdadm create-md r0
sudo drbdadm create-md r2
sudo drbdadm create-md r3


启动资源
sudo drbdadm up r0
sudo drbdadm up r2
sudo drbdadm up r3

查看资源链接情况
sudo drbd-overview


A服务器设置为主节点,继续执行下面的操作,B服务器为子节点只执行上面的命令就行了
设置主节点
文件
sudo drbdadm -- --overwrite-data-of-peer primary r0/0
drbdadm primary r0

mysql
sudo drbdadm -- --overwrite-data-of-peer primary r2/0
drbdadm primary r2

redis
sudo drbdadm -- --overwrite-data-of-peer primary r3/0
drbdadm primary r3

修改磁盘类型、挂载
文件
sudo mkfs.ext4 /dev/drbd0
sudo mount /dev/drbd0 /mydata

mysql
sudo mkfs.ext4 /dev/drbd2
sudo mount /dev/drbd2 /var/lib/mysql/

redis
sudo mkfs.ext4 /dev/drbd3
sudo mount /dev/drbd3 /var/lib/redis/

增加apache2监控的服务
crm configure primitive apache2 service:apache2 op monitor interval=120s

增加虚拟ip的监控
sudo crm configure primitive virtual_public_ip \
ocf:heartbeat:IPaddr2 params ip="10.10.3.67" \
cidr_netmask="24" op monitor interval="10s" \
meta migration-threshold="2" failure-timeout="60s" resource-stickiness="100"


文件设置监控
sudo crm configure
> property stonith-enabled=false
> property no-quorum-policy=ignore
> primitive drbd_res ocf:linbit:drbd params drbd_resource=r0 op monitor interval=29s role=Master op monitor interval=31s role=Slave
> ms drbd_master_slave drbd_res meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
> primitive fs_res ocf:heartbeat:Filesystem params device=/dev/drbd0 directory=/mydata fstype=ext4
> colocation fs_drbd_colo INFINITY: fs_res drbd_master_slave:Master
> order fs_after_drbd mandatory: drbd_master_slave:promote fs_res:start
> commit
> show
> quit


mysql设置监控
sudo crm configure
> property stonith-enabled=false
> property no-quorum-policy=ignore
> primitive mysql_res ocf:linbit:drbd params drbd_resource=r2 op monitor interval=29s role=Master op monitor interval=31s role=Slave
> ms mysql_master_slave mysql_res meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
> primitive mysql_fs_res ocf:heartbeat:Filesystem params device=/dev/drbd2 directory=/var/lib/mysql fstype=xfs
> colocation mysql_drbd_colo INFINITY: mysql_fs_res mysql_master_slave:Master
> order mysql_after_drbd mandatory: mysql_master_slave:promote mysql_fs_res:start
> commit
> show
> quit


redis设置监控
sudo crm configure
> property stonith-enabled=false
> property no-quorum-policy=ignore
> primitive redis_res ocf:linbit:drbd params drbd_resource=r3 op monitor interval=29s role=Master op monitor interval=31s role=Slave
> ms redis_master_slave redis_res meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
> primitive redis_fs_res ocf:heartbeat:Filesystem params device=/dev/drbd3 directory=/var/lib/redis fstype=xfs
> colocation redis_drbd_colo INFINITY: redis_fs_res redis_master_slave:Master
> order redis_after_drbd mandatory: redis_master_slave:promote redis_fs_res:start
> commit
> show
> quit


增加到ha-group组里
crm configure modgroup ha-group add apache2 before virtual_public_ip
crm configure modgroup ha-group add mysql_fs_res before apache2
crm configure modgroup ha-group add fs_res before mysql_fs_res
crm configure modgroup ha-group add redis_fs_res before fs_res


扩展:脑裂

A服务器
drbdadm primary r0


B服务器
drbdadm secondary r0
drbdadm -- --discard-my-data connect r0

A服务器
drbdadm connect r0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值