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

[经验分享] corosync+pacemaker+iscsi磁盘实现mysql高可用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-19 08:37:51 | 显示全部楼层 |阅读模式
                      实验用主机:
提供iscsi磁盘:172.16.103.1,提供iscsi磁盘

高可用主机:172.16.103.2,172.16.103.3
实验拓扑:
wKiom1Qa8Z6QBYVFAACQiQAFS9w430.jpg

实验步骤:
一、配置172.16.103.1,输出iscsi磁盘,创建的磁盘分区为/dev/sda3,在实际的使用环境中的通常为整个磁盘而非分区。
1
2
3
4
5
6
7
# yum install -y scsi-target-utils
# service tgtd start
# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2014-09.com.iscsi:t1  创建target
# tgtadm --lld iscsi --mode target --op show  #查看创建的target
# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sda3
# tgtadm --lld iscsi --mode target --op show   #查看lun创建的结果
# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 172.16.0.0/16 #基于IP地址做访问控制,授权给172.16.0.0/16网段的主机访问。



二、配置前端的高可用节点,发现并使用该磁盘设备:
1
2
3
# yum install -y iscsi-initiator-utils
# iscsiadm -m discovery -t st -p 172.16.103.1
# iscsiadm -m node -T iqn.2014-09.com.iscsi:t1 -p 172.16.103.1 -l



此时在磁盘信息中可以查看到新的磁盘信息,显示的新磁盘为未创建分区的新磁盘:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[iyunv@node1 ~]# fdisk -l /dev/sd[a-z]
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000652c0
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sda3            7859        7990     1059291   83  Linux
/dev/sda4            7991       15665    61649437+   5  Extended
/dev/sda5            7991        8122     1060258+  83  Linux
Disk /dev/sdb: 2154 MB, 2154000384 bytes
67 heads, 62 sectors/track, 1012 cylinders
Units = cylinders of 4154 * 512 = 2126848 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000



将该磁盘分区创建为/dev/sdb1,所有的容量都分配给该磁盘分区,执行格式化操作:

1
2
3
4
5
6
# mke2fs -t ext4 /dev/sdb1
# mkdir /mydata/data  #作为数据库存储数据的目录
# groupadd -g 3306 mysql
# useradd -u 3306 -g mysql -s /sbin/nologin -M mysql
# chown -R mysql.mysql /mydata/data
# mount /dev/sdb1 /mydata/data



三、使用二进制格式的MariaDB安装mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# tar xf mariadb-5.5.39-linux-x86_64.tar.gz -C /usr/local
# ln -sv mariadb-5.5.39-linux-x86_64/ mysql
# cd mysql
# chown -R root.mysql ./
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# mkdir /etc/mysql
# cp support-files/my-large.cnf /etc/mysql/my.cnf
# vim /etc/mysql/my.cnf
datadir = /mydata/data
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# mount /dev/sdb1 /mydata/data
# service mysqld start  
# /usr/local/mysql/bin/mysql  #连接数据库测试
> CREATE DATABASE tdb; #创建一个数据库用于验证其他节点挂载同一磁盘时是否可以使用相同的数据



另一个节点的数据库安装方式相同,就不在重复了。
四、使用ansible安装corosync+pacemaker+crmsh:
在配置高可用集群之前一定要先确定数据库和iscsi磁盘未挂载!
使用crmsh配置时的具体步骤为:
1
2
3
4
5
6
7
8
9
crm(live)configure# property stonith-enabled=false
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# primitive myip ocf:heartbeat:IPaddr params ip=172.16.103.25
crm(live)configure# primitive mystore ocf:heartbeat:Filesystem params device=/dev/sdb1 directory=/mydata/data fstype=ext4 op start timeout=60s op stop timeout=60s
crm(live)configure# primitive  mysql lsb:mysqld
crm(live)configure# group myservice myip mystore mysql
crm(live)configure# order myip_before_mystore_before_mysql mandatory: myip mystore mysql
crm(live)configure# verify
crm(live)configure# commit



配置完成后查看资源启动的状态:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
crm(live)# status
Last updated: Sun Sep  7 18:09:00 2014
Last change: Sun Sep  7 18:08:47 2014 via crm_attribute on node2.cluster.com
Stack: classic openais (with plugin)
Current DC: node1.cluster.com - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured, 2 expected votes
3 Resources configured
Node node2.cluster.com: standby
Online: [ node1.cluster.com ]
Resource Group: myservice
     myip(ocf::heartbeat:IPaddr):Started node1.cluster.com
     mystore(ocf::heartbeat:Filesystem):Started node1.cluster.com
     mysql(lsb:mysqld):Started node1.cluster.com



当前资源运行在node1上,使用ifconfig命令可以查看ip地址配置的结果以及测试连接MySQL测试数据库是否可用。
1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@node1 ~]# ip addr show
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:
mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:e1:37:51 brd ff:ff:ff:ff:ff:ff
    inet 172.16.103.2/16 brd 172.16.255.255 scope global eth0
    inet 172.16.103.25/16 brd 172.16.255.255 scope global secondary eth0
    inet6 fe80::20c:29ff:fee1:3751/64 scope link
       valid_lft forever preferred_lft forever



1
2
3
4
5
6
7
8
9
10
[iyunv@node1 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.1.71 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>



可以看到IP地址172.16.103.25配置在eth0上,mysql数据库连接也正常。如果切换node1为standby模式,资源是否会转移,测试结果为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
crm(live)# status
Last updated: Sun Sep  7 18:14:33 2014
Last change: Sun Sep  7 18:14:27 2014 via crm_attribute on node1.cluster.com
Stack: classic openais (with plugin)
Current DC: node1.cluster.com - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured, 2 expected votes
3 Resources configured
Node node1.cluster.com: standby
Online: [ node2.cluster.com ]
Resource Group: myservice
     myip(ocf::heartbeat:IPaddr):Started node2.cluster.com
     mystore(ocf::heartbeat:Filesystem):Started node2.cluster.com
     mysql(lsb:mysqld):Started node2.cluster.com



可以看到资源都运行在了node2上。
                    


运维网声明 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.iyunv.com/thread-25042-1-1.html 上篇帖子: MySQL双方配置实验步骤 下篇帖子: debian5.0.1下安装mysql5.6 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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