设为首页 收藏本站
查看: 1577|回复: 0

[经验分享] heatbeat-gui实现基于nfs的mysql高可用集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-21 12:44:55 | 显示全部楼层 |阅读模式
一、简述HA高可用集群

    高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务。以实现减少业务中断时间,为用户提供更可靠,更高效的服务。

二、基于nfs实现mysql的高可用集群配置

     环境准备接上文 heartbeat-gui部署

     实验环境:
    wKioL1gwZJGREhRLAAAhpP38qyw735.jpg
nfs server准备
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
1、在nfs server准备LVM存储空间
[iyunv@node3 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x61284c6a.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +10G
Value out of range.
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +5G

Command (m for help): t
Selected partition 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[iyunv@node3 ~]# partx -a /dev/sdb

[iyunv@node3 ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created
[iyunv@node3 ~]# vgcreate myvg /dev/sdb3
  Volume group "myvg" successfully created
[iyunv@node3 ~]# lvcreate -L 5G -n mydata myvg
  Logical volume "mydata" created.
[iyunv@node3 ~]# mke2fs -t ext4 /dev/myvg/mydata
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


2、开机自动挂载,并nfs导出
[iyunv@node3 ~]# mkdir  /mydata
[iyunv@node3 ~]# vim /etc/fstab
/dev/myvg/mydata        /mydata                 ext4    defaults        0 0
[iyunv@node3 ~]# mount -a
[iyunv@node3 ~]# mount | grep /mydata
/dev/mapper/myvg-mydata on /mydata type ext4 (rw)

[iyunv@node3 ~]# vim /etc/exports
/mydata         192.168.0.0/24(rw,no_root_squash)
#共享给192.168.0.0/24网段,可读可写,允许root用户登录便于初始化,配置结束可取消root用户登录


3、导出nfs共享目录
#创建mysql用户,指明uid,gid。各节点的mysql用户uid,gid一致。
[iyunv@node3 ~]# groupadd -r -g 306 mysql
[iyunv@node3 ~]# useradd -r -g 306 -u 306 mysql

#创建共享目录,并修改属主属组。
[iyunv@node3 ~]# mkdir /mydata/data
[iyunv@node3 ~]# chown -R mysql.mysql /mydata/data

#导出nfs共享目录
[iyunv@node3 ~]# exportfs -arv
exporting 192.168.0.0/24:/mydata




各节点准备mysql,并测试nfs。以下步骤,各节点一致。

node1配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
[iyunv@node1 ~]# mkdir /mydata

[iyunv@node1 ~]# showmount -e 192.168.0.20
Export list for 192.168.0.20:
/mydata 192.168.0.0/24
[iyunv@node1 ~]# mount -t nfs 192.168.0.20:/mydata /mydata
[iyunv@node1 ~]# mount | grep /mydata
192.168.0.20:/mydata on /mydata type nfs (rw,vers=4,addr=192.168.0.20,clientaddr=192.168.0.15)

[iyunv@node1 ~]# groupadd -r -g 306 mysql
[iyunv@node1 ~]# useradd -r -g 306 -u 306 mysql

#验证mysql用户是否拥有共享目录权限
[iyunv@node1 ~]# su - mysql
su: warning: cannot change directory to /home/mysql: No such file or directory
-bash-4.1$
-bash-4.1$
-bash-4.1$ cd /mydata/data
-bash-4.1$ touch node1.txt
-bash-4.1$ ls
node1.txt
-bash-4.1$ rm node1.txt
-bash-4.1$ exit
logout


#在nfs server端验证
[iyunv@node3 ~]# cd /mydata/data
[iyunv@node3 data]# ll
total 0
-rw-rw-r--. 1 mysql mysql 0 Nov 19 19:59 node2.txt

#验证root用户对目录是否有权限
[iyunv@node2 ~]# touch /mydata/data/node.txt
[iyunv@node2 ~]# ll /mydata/data
total 0
-rw-r--r--. 1 root root 0 Nov 19 20:02 node.txt

#安装mariadb
[iyunv@node1 ~]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local
[iyunv@node1 ~]# cd /usr/local
[iyunv@node1 local]# ln -sv mariadb-5.5.46-linux-x86_64 mysql
`mysql' -> `mariadb-5.5.46-linux-x86_64'
[iyunv@node1 local]# cd mysql/
[iyunv@node1 mysql]# chown -R root.mysql ./*


#初始化mysql至nfs,此步骤只需一个节点操作即可,本文node1执行,那么node2就不需要执行
#初始化操作后,可以将nfs server的共享选项中的no_root_squash移除了
[iyunv@node1 mysql]# ./scripts/mysql_install_db --datadir=/mydata/data/ --user=mysql

#nfs server验证
[iyunv@node3 data]# ls
aria_log.00000001  aria_log_control  mysql  performance_schema  test


#为mysql节点准备配置文件
[iyunv@node1 mysql]# mkdir /etc/mysql
[iyunv@node1 mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
#编辑配置文件,加入以下三行
[iyunv@node1 mysql]# vim /etc/mysql/my.cnf
datadir = /mydata/data
innodb_file_per_table = on
skip_name_resolve = on


#为mysql节点准备服务脚本,并禁止mysqld开机自启
[iyunv@node1 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[iyunv@node1 mysql]# chkconfig --add mysqld
[iyunv@node1 mysql]# chkconfig mysqld off

#启动mysql,创建mydb数据库
[iyunv@node1 mysql]# service mysqld start
[iyunv@node1 mysql]# /usr/local/mysql/bin/mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.46-MariaDB-log MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE mydb;
Query OK, 1 row affected (0.03 sec)

MariaDB [(none)]> exit
Bye

[iyunv@node1 mysql]# service mysqld stop




node2配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[iyunv@node2 ~]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz  -C /usr/local
[iyunv@node2 ~]# cd /usr/local/
[iyunv@node2 local]# ln -sv mariadb-5.5.46-linux-x86_64 mysql
`mysql' -> `mariadb-5.5.46-linux-x86_64'
[iyunv@node2 local]# cd mysql/
[iyunv@node2 mysql]# chown root.mysql ./*

#将node1的mysql配置文件复制给node2
[iyunv@node1 mysql]# scp /etc/mysql/my.cnf node2:/etc/mysql/
#准备服务脚本,并禁止开机自启
[iyunv@node2 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[iyunv@node2 mysql]# chkconfig --add mysqld
[iyunv@node2 mysql]# chkconfig mysqld off

#启动服务并查看共享数据库
[iyunv@node2 mysql]# service mysqld start
[iyunv@node2 mysql]# /usr/local/mysql/bin/mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.46-MariaDB-log MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.02 sec)

MariaDB [(none)]> EXIT
Bye

#授权root用户远程访问mysql
[iyunv@node2 ~]# /usr/local/mysql/bin/mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.46-MariaDB-log MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all on *.* to 'root'@'192.168.%.%' identified by '123456';
Query OK, 0 rows affected (0.06 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

[iyunv@node2 mysql]# service mysqld stop



在node1和node2卸载共享目录
1
[iyunv@node1 mysql]# umount /mydata




三、在heartbeat-gui界面配置
1、添加组资源,以及ip资源

wKiom1gwUpPjPeESAAC4LqjgjRw030.jpg

2、添加共享文件系统资源
wKioL1gwU_eSQjafAAC1zfD5c24481.jpg


3、添加mysql-server资源
wKioL1gwUy-wA25fAACkAzq0tq4511.jpg

注意:定义的次序就是启动的次序。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303451-1-1.html 上篇帖子: heartbeat 编译安装配置 下篇帖子: HA高可用集群 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表