mysql挂载到iscsi_corosync+pacemaker+iscsi磁盘实现mysql高可用
實驗用主機:
提供iscsi磁盤:172.16.103.1,提供iscsi磁盤
高可用主機:172.16.103.2,172.16.103.3
實驗拓撲:
實驗步驟:
一、配置172.16.103.1,輸出iscsi磁盤,創建的磁盤分區為/dev/sda3,在實際的使用環境中的通常為整個磁盤而非分區。
#?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網段的主機訪問。
二、配置前端的高可用節點,發現并使用該磁盤設備:
#?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
此時在磁盤信息中可以查看到新的磁盤信息,顯示的新磁盤為未創建分區的新磁盤:
[root@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,所有的容量都分配給該磁盤分區,執行格式化操作:
#?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
#?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配置時的具體步驟為:
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
配置完成后查看資源啟動的狀態:
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測試數據庫是否可用。
[root@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
[root@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模式,資源是否會轉移,測試結果為:
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上。
總結
以上是生活随笔為你收集整理的mysql挂载到iscsi_corosync+pacemaker+iscsi磁盘实现mysql高可用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 19岁的网红餐厅新元素突然破产:曾经几亿
- 下一篇: 《蜘蛛侠》系列影片B站上线:三代同框了