判斷內(nèi)網(wǎng)是不是打通,則判斷服務(wù)器的網(wǎng)絡(luò)類(lèi)型是否在同一個(gè)VPC下,不在的話需要配置
創(chuàng)新互聯(lián)成立于2013年,我們提供高端網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣、成都小程序開(kāi)發(fā)、微信公眾號(hào)開(kāi)發(fā)、seo優(yōu)化排名服務(wù),提供專(zhuān)業(yè)營(yíng)銷(xiāo)思路、內(nèi)容策劃、視覺(jué)設(shè)計(jì)、程序開(kāi)發(fā)來(lái)完成項(xiàng)目落地,為砂巖浮雕企業(yè)提供源源不斷的流量和訂單咨詢(xún)。
1.如果是同一賬號(hào)的兩臺(tái)服務(wù)器,則默認(rèn)服務(wù)器的網(wǎng)絡(luò)類(lèi)型在同一個(gè)VPC下
2.如果是不同賬號(hào)的兩臺(tái)服務(wù)器,如果地域相同,則配置就可以了。如果不同地域的情況下,需要購(gòu)買(mǎi)跨地域帶寬,以下演示的是不同賬號(hào),同一地域的兩臺(tái)服務(wù)器
]( )
以下是服務(wù)器B的信息
以下是服務(wù)器A加載服務(wù)器B的網(wǎng)絡(luò)實(shí)例
如果都在同一個(gè)阿里云賬號(hào)下面,那就好辦了。
要運(yùn)行業(yè)務(wù)的服務(wù)器關(guān)機(jī),選擇【更多】下面的更換系統(tǒng)盤(pán),選擇已經(jīng)創(chuàng)建好的系統(tǒng)鏡像,就可以了。
以騰訊云Linux服務(wù)器之間數(shù)據(jù)傳輸復(fù)制內(nèi)網(wǎng)SCP命令為例
支持騰訊云同賬號(hào)之間2臺(tái)服務(wù)器進(jìn)行相互之間的數(shù)據(jù)傳輸數(shù)據(jù)復(fù)制其實(shí)還是很簡(jiǎn)單的,直接使用SCP命令就可以。 注意一點(diǎn)的就是IP寫(xiě)內(nèi)網(wǎng)IP,同賬號(hào)同區(qū)下面的服務(wù)器才支持內(nèi)網(wǎng)IP 傳輸數(shù)據(jù),要是不同賬號(hào)的最簡(jiǎn)單的方法就是公網(wǎng)
如果是已經(jīng)配置好環(huán)境的兩臺(tái)云服務(wù)器之間傳輸文件,可以用SCP命令進(jìn)行兩臺(tái)云服務(wù)器之間的文件傳輸,同一賬號(hào)同一區(qū)域下的兩臺(tái)云服務(wù)器,你可以使用內(nèi)網(wǎng)IP進(jìn)行文件傳輸。如果是不同地區(qū)、不同賬號(hào)下把一臺(tái)配置好環(huán)境且有數(shù)據(jù)的云服務(wù)器硬盤(pán)上的數(shù)據(jù)拷貝到一臺(tái)全新云服務(wù)器上,最便捷的方法就是采用跨地域復(fù)制快照的方法。
使用MySQL雙master+keepalived是一種非常好的解決方案,在MySQL-HA環(huán)境中,MySQL互為主從關(guān)系,這樣就保證了兩臺(tái)MySQL數(shù)據(jù)的一致性,然后用keepalived實(shí)現(xiàn)虛擬IP,通過(guò)keepalived自帶的服務(wù)監(jiān)控功能來(lái)實(shí)現(xiàn)MySQL故障時(shí)自動(dòng)切換。
下面,我把即將上線的一個(gè)生產(chǎn)環(huán)境中的架構(gòu)與大家分享一下,看一下這個(gè)架構(gòu)中,MySQL-HA是如何實(shí)現(xiàn)的,環(huán)境拓?fù)淙缦?/p>
MySQL-VIP:10.10.10.21
MySQL-master1:10.10.10.17
MySQL-master2:10.10.10.18
OS版本:Redhat6.2
MySQL版本:mysql-5.1.59
Keepalived版本:keepalived-1.1.20
一、MySQL master-master配置
1、修改MySQL配置文件
兩臺(tái)MySQL均如要開(kāi)啟binlog日志功能,開(kāi)啟方法:在MySQL配置文件[MySQLd]段中加上log-bin=MySQL-bin選項(xiàng)
兩臺(tái)MySQL的server-ID不能一樣,默認(rèn)情況下兩臺(tái)MySQL的serverID都是1,需將其中一臺(tái)修改為2即可
Master1配置:
#vim /etc/my.cnf
log-bin=mysql-bin //開(kāi)啟binlog日志功能
log =/usr/local/mysql/var/mysql.log //會(huì)打印mysql的所以sql語(yǔ)句
server-id= 1 //
binlog-do-db =mysql //需要同步的庫(kù)名稱(chēng)
auto-increment-increment= 2
auto-increment-offset= 2
Master2配置:
#vim /etc/my.cnf
log-bin=mysql-bin //開(kāi)啟binlog日志功能
log =/usr/local/mysql/var/mysql.log //會(huì)打印mysql的所以sql語(yǔ)句
server-id= 2
binlog-do-db =mysql //需要同步的庫(kù)名稱(chēng)
auto-increment-increment= 2
auto-increment-offset= 2
2、建授權(quán)用戶
在10.10.10.17上新建授權(quán)用戶
grant replicationslave on *.* to test@’10.10.10.%’ identified by ‘123456’;
在10.10.10.18服務(wù)器上建授權(quán)用戶
grant replicationslave on *.* to test@’10.10.10.%’ identified by ‘123456’;
3、將10.10.10.17設(shè)為10.10.10.18的主服務(wù)器
在10.10.10.18上將10.10.10.17設(shè)為自己的主服務(wù)器
mysql show master status;(17服務(wù)器配置)
1+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000027| 106|mysql | |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
MySQL change master to master_host='10.10.10.17',master_user=’test’,master_password='123456',master_log_file='MySQL-bin.000027',master_log_pos=106;
Query OK, 0 rows affected (0.05 sec)
MySQL start slave;
Query OK, 0 rows affected (0.00 sec)
mysql show slave status \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes \\如果此2項(xiàng)都為yes,master-master配置即成功
將10.10.10.18設(shè)為10.10.10.17的主服務(wù)器 方法與上面設(shè)置一致只需將
在10.10.10.17上將10.10.10.18設(shè)為自己的主服務(wù)器
mysql show master status;(18服務(wù)器配置)
1+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000027| 106|mysql | |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
MySQL change master to master_host='10.10.10.18',master_user=’test’,master_password='123456',master_log_file='MySQL-bin.000027',master_log_pos=106;
Query OK, 0 rows affected (0.05 sec)
MySQL start slave;
Query OK, 0 rows affected (0.00 sec)
mysql show slave status \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes \\如果此2項(xiàng)都為yes,master-master配置即成功
測(cè)試是否成功:
如上述均正確配置,現(xiàn)在在任何一臺(tái)MySQL上更新數(shù)據(jù)都會(huì)同步到另一臺(tái)MySQL(僅限mysql庫(kù))
二、keepalived安裝及配置
1、10.10.10.17服務(wù)器上keepalived安裝及配置
安裝keepalived
#tar zxvfkeepalived-1.1.20.tar.gz
#cdkeepalived-1.1.20
#./configure--prefix=/usr/local/keepalived--with-kernel-dir=/usr/src/kernels/2.6.32-220.el6.x86_64
#make make install
配置keepalived
我們自己在新建一個(gè)配置文件,默認(rèn)情況下keepalived啟動(dòng)時(shí)會(huì)去/etc/keepalived目錄下找配置文件
#mkdir/etc/keepalived
#vi/etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
smtp_server 127.0.0.1 (如果本機(jī)配置的話)
smtp_connect_timeout 30
router_id MySQL-ha
}
vrrp_instance VI_1{
state BACKUP #兩臺(tái)配置此處均是BACKUP
interface p4p1 #注意網(wǎng)卡接口
virtual_router_id 51
priority 100 #優(yōu)先級(jí),另一臺(tái)改為90
advert_int 1
nopreempt #不主動(dòng)搶占資源,只在優(yōu)先級(jí)高的機(jī)器上設(shè)置即可,優(yōu)先級(jí)低的機(jī)器不設(shè)置
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.10.21
}
}
virtual_server10.10.10.21 3306 {
delay_loop 2 #每個(gè)2秒檢查一次real_server狀態(tài)
lb_algo wrr #LVS算法
lb_kind DR #LVS模式
persistence_timeout 60 #會(huì)話保持時(shí)間
protocol TCP
real_server 10.10.10.17 3306 {
weight 3
notify_down /usr/local/my/my.sh #檢測(cè)到服務(wù)down后執(zhí)行的腳本
TCP_CHECK {
connect_timeout 10 #連接超時(shí)時(shí)間
nb_get_retry 3 #重連次數(shù)
delay_before_retry 3 #重連間隔時(shí)間
connect_port 3306 #健康檢查端口
}
}
編寫(xiě)檢測(cè)服務(wù)down后所要執(zhí)行的腳本
#vi/usr/local/MySQL/bin/MySQL.sh
#!/bin/sh
pkillkeepalived
#chmod +x/usr/local/MySQL/bin/MySQL.sh
注:此腳本是上面配置文件notify_down選項(xiàng)所用到的,keepalived使用notify_down選項(xiàng)來(lái)檢查real_server的服務(wù)狀態(tài),當(dāng)發(fā)現(xiàn)real_server服務(wù)故障時(shí),便觸發(fā)此腳本;我們可以看到,腳本就一個(gè)命令,通過(guò)pkill keepalived強(qiáng)制殺死keepalived進(jìn)程,從而實(shí)現(xiàn)了MySQL故障自動(dòng)轉(zhuǎn)移。另外,我們不用擔(dān)心兩個(gè)MySQL會(huì)同時(shí)提供數(shù)據(jù)更新操作,因?yàn)槊颗_(tái)MySQL上的keepalived的配置里面只有本機(jī)MySQL的IP+VIP,而不是兩臺(tái)MySQL的IP+VIP
啟動(dòng)keepalived
#/usr/local/keepalived/sbin/keepalived–D
#ps -aux | grepkeepalived
測(cè)試
找一臺(tái)局域網(wǎng)PC,然后去ping MySQL的VIP,這時(shí)候MySQL的VIP是可以ping的通的
停止MySQL服務(wù),看keepalived健康檢查程序是否會(huì)觸發(fā)我們編寫(xiě)的腳本
1、10.10.10.18服務(wù)器上keepalived安裝及配置
安裝keepalived
#tar zxvfkeepalived-1.1.20.tar.gz
#cdkeepalived-1.1.20
#./configure--prefix=/usr/local/keepalived--with-kernel-dir=/usr/src/kernels/2.6.32-220.el6.x86_64
#make make install
配置keepalived
我們自己在新建一個(gè)配置文件,默認(rèn)情況下keepalived啟動(dòng)時(shí)會(huì)去/etc/keepalived目錄下找配置文件
#mkdir/etc/keepalived
#vi/etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MySQL-ha
}
vrrp_instance VI_1{
state BACKUP #兩臺(tái)配置此處均是BACKUP
interface p4p1 #注意網(wǎng)卡接口
virtual_router_id 51
priority 90 #優(yōu)先級(jí),另一臺(tái)改為90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.10.21
}
}
virtual_server10.10.10.21 3306 {
delay_loop 2 #每個(gè)2秒檢查一次real_server狀態(tài)
lb_algo wrr #LVS算法
lb_kind DR #LVS模式
persistence_timeout 60 #會(huì)話保持時(shí)間
protocol TCP
real_server 10.10.10.18 3306 {
weight 3
notify_down /usr/local/my/my.sh #檢測(cè)到服務(wù)down后執(zhí)行的腳本
TCP_CHECK {
connect_timeout 10 #連接超時(shí)時(shí)間
nb_get_retry 3 #重連次數(shù)
delay_before_retry 3 #重連間隔時(shí)間
connect_port 3306 #健康檢查端口
}
}
啟動(dòng)keepalived
#/usr/local/keepalived/sbin/keepalived–D
#ps -aux | grepkeepalived
測(cè)試
停止MySQL服務(wù),看keepalived健康檢查程序是否會(huì)觸發(fā)我們編寫(xiě)的腳本
三、測(cè)試
兩臺(tái)MySQL服務(wù)器都要授權(quán)允許從遠(yuǎn)程登錄
MySQL grantall privileges on *.* to andyguo@'%' identified by '123456';
Query OK, 0 rowsaffected (0.00 sec)
MySQL flushprivileges;
Query OK, 0 rowsaffected (0.00 sec)
keepalived故障轉(zhuǎn)移測(cè)試:
在windows客戶端一直去ping VIP,然后關(guān)閉10.10.10.17上的keepalived,正常情況下VIP就會(huì)切換到10.10.10.18上面去
開(kāi)啟10.10.10.17上的keepalived,關(guān)閉10.10.10.18上的keepalived,看是否能自動(dòng)切換,正常情況下VIP又會(huì)屬于10.10.10.17
注:keepalived切換速度還是非常塊的,整個(gè)切換過(guò)程只需1-3秒
MySQL故障轉(zhuǎn)移測(cè)試:
在10.10.10.17上關(guān)閉MySQL服務(wù),看VIP是否會(huì)切換到10.10.10.18上
開(kāi)啟10.10.10.17上的MySQL和keepalived,然后關(guān)閉10.10.10.18上的MySQL,看VIP是否會(huì)切換到10.10.10.17上
如果都沒(méi)問(wèn)題,到此整個(gè)配置即已完成。
備注(在測(cè)試的過(guò)程中遇到了一些問(wèn)題,解決方法)
Keepalived_healthcheckers:IPVS: Can't initialize ipvs: Protocol not available
起初重裝了ipvsadm和keepalived,但故障依舊,隨后突然想到是否lvs模塊加載異常,于是lsmod|grep ip_vs發(fā)現(xiàn)果然沒(méi)有相應(yīng)的模塊,而正常情況下應(yīng)該是有的
e、手動(dòng)加載ip_vs模塊
modprobe ip_vs
modprobe ip_vs_wrr
f、重啟keepalived服務(wù),故障排除,此時(shí)轉(zhuǎn)發(fā)正常,從服務(wù)器的ip_vs加載正常,主從切換也正常
g、將modprobeip_vs、modprobe ip_vs_wrr添加進(jìn)/etc/rc.local開(kāi)機(jī)自動(dòng)加載
網(wǎng)頁(yè)名稱(chēng):兩臺(tái)阿里云服務(wù)器嗎 兩臺(tái)云服務(wù)器怎么互聯(lián)
文章出自:http://vcdvsql.cn/article48/ddoijhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、虛擬主機(jī)、網(wǎng)站內(nèi)鏈、網(wǎng)站導(dǎo)航、定制網(wǎng)站、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容