?

虛擬化平臺下MySQL數據庫集群的搭建

2017-07-06 12:07邢志峰
中國管理信息化 2017年12期
關鍵詞:MySQL數據庫虛擬化

邢志峰

[摘 要]近年來,虛擬化技術已在企業中得到了廣泛應用,越來越多的Web應用程序使用MySQL作為數據的管理和存儲,數據庫的高可用、數據安全、負載均衡成為了企業關注的重點。本文以河鋼集團承鋼公司企業內部的虛擬化平臺為基礎,以開源的Galera Cluster for MySQL為解決方案,搭建一套基于同步復制的多主MySQL集群。其特點是使用簡單,沒有單點故障,可用性高,能很好地保證業務不斷增長時數據的安全性和集群的擴展性。

[關鍵詞]虛擬化;MySQL數據庫;集群搭建

doi:10.3969/j.issn.1673 - 0194.2017.12.086

[中圖分類號]TP311.1 [文獻標識碼]A [文章編號]1673-0194(2017)12-0-02

1 虛擬化技術和ESXI的介紹

虛擬化,是指通過虛擬化技術將一臺計算機虛擬為多臺邏輯計算機。在一臺計算機上同時運行多個邏輯計算機,每個邏輯計算機可運行不同的操作系統,且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。目前,虛擬化技術越來越成熟,企業為節約成本,只需購買配置較高的服務器安裝虛擬操作系統,就能把一臺服務器當做多臺服務器進行使用,既經濟實用,又管理方便。

ESXI是直接運行在裸機上的高性能、高可用性的系統架構,它給多臺虛擬機提供CPU、內存、存儲、網絡資源,Windows平臺的PC機可以通過vSphere客戶端軟件進行遠程訪問和管理。

ESXI的主要特性如下:

(1)可靠性和安全性,ESXI體系結構基于Linux的控制臺操作系統,實現可維護性和基于代理的合作伙伴集成,并直接在核 VMkernel中實現了必備的管理功能,消除了與通用操作系統相關的安全漏洞,提高了安全性和可靠性。

(2)簡化部署和配置,新的ESXI體系結構的配置項較少,因此可以極大地簡化部署和配置,且更容易保持一致性。

(3)減少管理開銷,ESXI體系結構采用基于API的合作伙伴集成模型,因此,不再需要安裝和管理第三方管理代理。利用遠程命令行腳本編寫環境,可以自動執行日常任務。

(4)虛擬機的備份與恢復功能,ESXI提供多種的備份與恢復功能,如快照、克隆、模板的導入和導出等。

(5)物理機、虛擬機的遷移,VMware Converter是一款能將物理電腦系統、VMware其他版本虛擬機鏡像,或第三方虛擬機鏡像轉化為一個虛擬機映像文件的工具,且生成的映像可以在該公司的VMware虛擬機軟件中使用。

2 MySQL數據庫集群的搭建

2.1 MySQL Galera Cluster 介紹

Galera Cluster是在名為WSRep(集合寫入式復制,Write Set Replication)的更通用的API基礎之上開發而成的。WSRep API是個獨立的開源項目,由Codership發起,它在數據庫服務器和數據復制插件之間定義了一個接口。MySQL-WSRep是MySQL的一個補丁,它在數據庫服務器中實現了WSRep API接口。安裝這個補丁之后,MySQL就可以啟動WSRep的插件,Galera是WSRep提供者,實現了同步多主節點數據復制功能,Galera replication特性具有同步復制主備無延遲、支持多主同時讀寫,保證數據一致性、集群中各節點保存全量數據、節點添加或刪除,自動檢測和配置、行級別并行復制、不需要寫binlog。

2.2 Galera的實現架構

Galera的實現架構,如圖1所示。

2.3 安裝前的準備

(1)需要至少三臺虛擬服務器,建議安裝Centos 6,數據庫為MySQL 5.5版本,為服務器分配好IP地址。

(2)準備好MySQL with WSRep、Galera等軟件安裝包。

(3)關閉系統防火墻Selinux和Iptables。

2.4 安裝部署

(1)第一個節點的安裝及配置,首先關閉系統防火墻,設置MySQL的yum源并安裝依賴包。

(2)安裝數據及服務組件,建立Cluster使用者,設置遠程登錄,修改主節點的配置文件,啟動集群服務,確認MySQL 3306端口和WSRep的4567端口處于監聽狀態。

(3)第二個節點安裝及配置其他節點,方法與安裝第一個節點類似,在修改從節點配置文件時,需要將WSRep_cluster_address的地址指向主節點。

(4)檢查各節點運行狀態,使用數據庫管理工具測試數據庫集群功能。

2.5 使用前的注意事項

(1)使用Galera必須要給MySQL-Server打WSRep補丁??梢灾苯邮褂霉俜教峁┑囊呀洿蚝醚a丁的MySQL安裝包,如果服務器上已經安裝了標準版MySQL,需要先卸載再重新安裝。卸載前注意備份數據。

(2)MySQL/Galera集群只支持InnoDB存儲引擎。如果數據表使用的是MyISAM,需要轉換為InnoDB,否則記錄不會在多臺復制??梢栽趥浞堇蠑祿r,為MySQLdump命令添加skip-create-options參數,這樣會去掉表結構的聲明信息,再導入集群時自動使用InnoDB引擎。不過這樣會將AUTO_INCREMENT一并去掉,已有AUTO_INCREMENT列的表,必須在導入后重新定義。

(3)MySQL 5.5及以下的InnoDB引擎不支持全文索引(FULLTEXT indexes),如果之前使用了MyISAM并建立了全文索引字段,只能安裝MySQL 5.6 with WSRep patch。

(4)所有數據表必須要有主鍵(PRIMARY),如果沒有主鍵可以建一條AUTO_INCREMENT列。

(5)MySQL/Galera集群不支持下面的查詢:LOCK/UNLOCK TABLES,不支持下面的系統變量:character_set_server、utf16、utf32及ucs2。

(6)數據庫日志不支持保存到表,只能輸出到文件(log_output = FILE),不能設置binlog-do-db、binlog-ignore-db。

(7)跟其他集群一樣,為了避免節點出現腦裂而破壞數據,建議Galera集群最低添加3個節點。

(8)在高并發的情況下,多主同時寫入時可能會發生事務沖突,此時只有一個事務請求會成功,其他的全部失敗??梢栽趯懭牖蚋率r,自動重試一次,再返回結果。

(9)節點中每個節點的地位是平等的,沒有主次,向任何一個節點讀寫效果都是一樣的。實際可以配合VIP/LVS或HA使用,實現高可用性。

(10)如果集群中的機器全部重啟,如機房斷電,第一臺啟動的服務器必須以空地址啟動。

主要參考文獻

[1]王春海.深入學習VMware vSphere 6[M].北京:人民郵電出版社,2016.

[2]張工廠.MySQL技術精粹——架構、高級特性、性能優化與集群實戰[M].北京:清華大學出版社,2015.

猜你喜歡
MySQL數據庫虛擬化
基于OpenStack虛擬化網絡管理平臺的設計與實現
對基于Docker的虛擬化技術的幾點探討
虛擬化技術在CTC/TDCS系統中的應用研究
虛擬化技術在計算機技術創造中的應用
基于android的臉部識別校園服務APP的研究與開發
Linux負載度量
充電樁狀態實時監控系統與C/S框架設計
高速公路服務器虛擬化技術應用與探討
改進的SSH框架技術在醫藥管理系統中的研究及應用
存儲虛擬化還有優勢嗎?
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合