视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Corosync实现MariaDB数据库服务的高可用
2020-11-09 12:50:55 责编:小采
文档


Corosync 实现 MariaDB 数据库服务的高可用,corosync + pacemaker 提供HA的解决方案。使用NFS共享服务器导出的共享文件系统做为

方案:

corosync + pacemaker 提供HA的解决方案。

使用NFS共享服务器导出的共享文件系统做为数据目录;

拓扑图如下:

在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP)

MariaDB Proxy读写分离的实现

MySQL+Corosync+Pacemaker+DRBD构建高可用MySQL

搭建基于Corosync+DRBD的高可用MySQL集群

分别基于NFS服务和DRBD服务利用Corosync配置高可用集群

Linux 高可用(HA)集群之Corosync详解

pacemaker + Corosync 搭建高可用集群

Corosync+pacemaker+RA实现MySQL高可用

一、配置HA高可用集群的各节点间能够基于主机名通讯。

1、设置主机名

(1)、在 192.168.60.128 主机设置

编辑/etc/sysconfig/network文件,使得主机名永久有效

[root@www ~]# vim /etc/sysconfig/network HOSTNAME=node2.linuxidc.com

使用hostname命令设置主机名,,让它即时生效

[root@www ~]# hostname node2.linuxidc.com

(2)、在 192.168.60.22 主机设置

编辑/etc/sysconfig/network文件,使得主机名永久有效

[root@stu13 ~]# vim /etc/sysconfig/network HOSTNAME=node1.linuxidc.com

使用hostname命令设置主机名,让它即时生成

[root@stu13 ~]# hostname node1.linuxidc.com

2、为了,操作方便设置节点之间能够基于密钥通讯。也就是所谓的建立信任主机。

[root@node1 ~]# ssh-keygen -t rsa [root@node1 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.60.128 [root@node2 ~]# ssh-keygen -t rsa [root@node2 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.60.22

3、节点之间基于主机名通讯,要能够解析主机名才可以。解析主机名有两种方式:

(1)、使用DNS地址解析服务器;

(2)、使用本地hosts文件解析

基于效率和安全方面考虑,这里使用hosts文件解析主机名。

[root@node1 ~]# vim /etc/hosts 192.168.60.22 node1.linuxidc.com node1 192.168.60.128 node2.linuxidc.com node2

把/etc/hosts文件复制到node2节点

[root@node1 ~]# scp /etc/hosts node2:/etc/ hosts 100% 78 0.1KB/s 00:00

4、测试两个节点能够实现基于密钥的方式进行通讯和能否基于主机名进行通讯

root@node2 ~]# ssh node1 'hostname' node1.linuxidc.com [root@node1 ~]# ssh node2 'hostname' node2.linuxidc.com [root@node1 ~]# ssh node2 'ping -c 1 node2.linuxidc.com' PING node2.linuxidc.com (192.168.60.128) 56(84) bytes of data. bytes from node2.linuxidc.com (192.168.60.128): icmp_seq=1 ttl= time=0.061 ms --- node2.linuxidc.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.061/0.061/0.061/0.000 ms [root@node1 ~]# ping -c 1 node1.linuxidc.com PING node1.linuxidc.com (192.168.60.22) 56(84) bytes of data. bytes from node1.linuxidc.com (192.168.60.22): icmp_seq=1 ttl= time=0.069 ms --- node1.linuxidc.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms

说明:

从上述可以看出,两个节点已经能够实现基于主机名的方式进行通讯。

二、配置NFS服务器

Ubuntu下搭建NFS网络文件系统服务器

Heartbeat_ldirector+LB+NFS实现HA及LB、文件共享

CentOS 5.5配置NFS服务器教程

Ubuntu 12.10下NFS的安装使用

1、提供NFS服务器共享的文件系统

使用LVM逻辑卷做为数据库的数据目录,为了使用逻辑卷的快照功能备份数据。

(1)、创建分区

[root@nsf ~]# fdisk -l /dev/sda | grep "/dev/sda3" /dev/sda3 7859 91 104446 8e Linux LVM

(2)、把该分区做成pv

[root@nsf ~]# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created

(3)、创建逻辑卷组myvg,PE大小为8E.

[root@nsf ~]# vgcreate -s 8M myvg /dev/sda3 Volume group "myvg" successfully created

(4)、创建lvm,大小为:2G

[root@nsf ~]# lvcreate -L 2G -n sharedir myvg Logical volume "sharedir" created [root@nsf ~]# mke2fs -t ext4 /dev/myvg/sharedir [root@nsf ~]# echo $? 0

(5)、创建挂载点

[root@nsf ~]# mkdir /mydata

(6)、编辑/etc/fstab文件,实现开机可以自动挂载“/dev/myvg/sharedir”

[root@nsf ~]# vim /etc/fstab /dev/mapper/myvg-sharedir /mydata ext4 defaults,acl 0 0

(7)、挂载

[root@nsf ~]# mount -a

查看是否挂载

[root@nsf ~]# mount | grep "mydata" /dev/mapper/myvg-sharedir on /mydata type ext4 (rw,acl)

2、配置挂载NFS服务器共享的文件系统的客户端中的数据库服务进程(mysql)具有共享文件系统(目录)的读写权限。

把NFS服务器导出的文件系统中,作为数据库的数据目录,根据NFS服务器的工作原理,NFS的客户端可以往NFS服务器导出的文件系统(目录)写数据要满足两个条件:

(A)、在NFS服务器级别,做访问控制时候是否授写NFS客户端写(w)的权限;

(B)、在NFS客户端发起写(W)操作的进程的属主对应的UID,在NFS服务器端所在的主机是否该UID

对应的用户。

1)、如果有的话,那么就检查该用户是否有NFS服务器导出的文件系统(目录)的写权限。如果有

写权限的话,那么NFS客户端的进程就可以往NFS服务器导出的文件系统发起写操作了。否则

的话NFS客户端是无权限往NFS服务器导出的文件系统写数据的。

2)、如果没有的话,那就就检查nobody用户是否有NFS服务器导出的文件系统(目录)的写权限。

不过在Linux系统上,nobody用户的权限是最小。

下载本文
显示全文
专题