首先要確定一下,你準(zhǔn)備做什么樣的服務(wù)器集群?是物理服務(wù)器高可用的集群、負(fù)載均衡的集群、分布式存儲的集群;還是虛擬化環(huán)境下的容器集群,或者大數(shù)據(jù)集群等?因每種集群的原理不同,所以采用的方法也會有所不同。
下面就以物理服務(wù)器,實(shí)現(xiàn)“高可用集群”為例,寫一個(gè)簡單教程。
高可用的物理服務(wù)器集群,是通過存儲設(shè)備、交換機(jī)設(shè)備、網(wǎng)線、集群軟件等,將兩臺以上的服務(wù)器、存儲、交換機(jī)等設(shè)備組合在一起,讓它們消除單點(diǎn)故障引起的安全的隱患。
高可用的物理服務(wù)器集群,可以實(shí)現(xiàn)當(dāng)某臺服務(wù)器出現(xiàn)故障,無法正常啟動或者運(yùn)行時(shí)。其它正常的服務(wù)器,會第一時(shí)間接手相關(guān)應(yīng)用服務(wù)。而整個(gè)過程由集群軟件自動完成,在切換過程中不會影響所有客戶端的正常訪問,消除所有存在的單點(diǎn)隱患。
想要實(shí)現(xiàn)物理服務(wù)器集群的穩(wěn)定性,需要在服務(wù)器設(shè)備的選型、網(wǎng)絡(luò)設(shè)備的選型、集群軟件的選擇、網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)等方面,做一個(gè)全面的規(guī)劃和方案。
用來做集群的服務(wù)器,必須具有高性能多核心處理器、高頻大容量內(nèi)存、高傳輸速度的網(wǎng)卡,以及冗余電源、冗余風(fēng)扇、冗余硬盤等。建議選擇大品牌和好口碑,并且性價(jià)比高的服務(wù)器品牌和型號。
2. 存儲選型:
用來做集群的存儲設(shè)備,必須具有足夠的硬盤容量,高速讀寫速度,以及高可擴(kuò)展和冗余電源、冗余控制器等。建議選擇大品牌和好口碑,并且性價(jià)比高的存儲品牌和型號。
3. 交換機(jī)選型:
用來做集群的交換機(jī)設(shè)備,必須具有足夠的背板帶寬、高速交換能力和大容量數(shù)據(jù)處理,以及冗余電源、冗余風(fēng)扇、冗余交換矩陣,和安全性功能等方面。建議選擇大品牌和好口碑,并且性價(jià)比高的存儲品牌和型號。
4. 軟件選擇:
用來配置高可用集群的軟件,必須具有快速故障轉(zhuǎn)移功能、自動恢復(fù)功能,以及可擴(kuò)展性、易于管理性,和良好的兼容性、實(shí)時(shí)監(jiān)測、預(yù)警機(jī)制等特點(diǎn)。建議選擇大品牌和好口碑,并且性價(jià)比高的集群軟件品牌和版本。
5. 集群架構(gòu):
下面的拓?fù)?,是物理服?wù)器集群的真實(shí)案例,目前已經(jīng)連續(xù)穩(wěn)定運(yùn)行將近10年。整體架構(gòu)以兩臺IBM 服務(wù)器 + EMC 存儲 + 華為交換機(jī) + windows MSCS 為基礎(chǔ),配置了 SQL Server 2008數(shù)據(jù)庫高可用集群。
最后我想說的是,隨著服務(wù)器、存儲、交換機(jī)、集群軟件的不斷更新和發(fā)展。無論是硬件的性能,還是穩(wěn)定性,都有著顯著的提升。軟件版本的各個(gè)功能,也有著實(shí)質(zhì)性的增強(qiáng)。所以,想要構(gòu)建一個(gè)穩(wěn)定的服務(wù)器集群,只需采用最新、最好的硬件和軟件,就可以實(shí)現(xiàn)。
# 安裝集群前要進(jìn)行檢查集群是否適合安裝
# 檢查指定集群的機(jī)器硬件和軟件環(huán)境是否滿足正常運(yùn)行條件
$. tiup cluster check tidb-test
$. tiup cluster check topology-use.yaml
# (部署完集群后默認(rèn)密碼為空, 用戶 root, 端口 4000)
# 部署集群的命令為 tiup cluster deploy, 一般用法為:
$. tiup cluster deploy <cluster-name> <version> <topology.yaml> [flags]
# use
$. tiup cluster deploy -p prod-cluster v7.5.1 ./topology-use.yaml
---
pd_servers:
- host: 172.16.5.134
name: pd-134
- host: 172.16.5.139
name: pd-139
- host: 172.16.5.140
name: pd-140
tidb_servers:
- host: 172.16.5.134
- host: 172.16.5.139
- host: 172.16.5.140
tikv_servers:
- host: 172.16.5.134
- host: 172.16.5.139
- host: 172.16.5.140
tiflash_servers:
- host: 172.16.5.141
- host: 172.16.5.142
- host: 172.16.5.143
grafana_servers:
- host: 172.16.5.134
monitoring_servers:
- host: 172.16.5.134
$. tiup cluster list
### 集群部署成功后, 可以執(zhí)行以下命令啟動該集群。
### 如果忘記了部署的集群的名字, 可以使用 tiup cluster list 命令查看。
$. tiup cluster start tidb-test
$. tiup cluster start prod-cluster --init # 第一次啟動執(zhí)行該命令
# 只啟動 PD 組件:
tiup cluster start ${cluster-name} -R pd
#use
tiup cluster start tidb-test -R pd
tiup cluster start tidb-test -R alertmanager
tiup cluster start tidb-test -R cdc
tiup cluster start tidb-test -R grafana
tiup cluster start tidb-test -R prometheus
tiup cluster start tidb-test -R tidb
tiup cluster start tidb-test -R tiflash
tiup cluster start tidb-test -R tikv
tiup cluster stop tidb-test -R tiflash
# 只啟動 1.2.3.4 和 1.2.3.5 這兩臺機(jī)器上的 PD 組件:
$. tiup cluster start ${cluster-name} -N 1.2.3.4:2379,1.2.3.5:2379
# 需要現(xiàn)在windows本機(jī)添加路由
route -p add 10.11.0.0 mask 255.255.255.0 192.168.31.128
訪問集群 TiDB Dashboard 監(jiān)控頁面:
http://192.168.31.126:2379/dashboard
root/L6+cR57G9*S0^V2-Jz
# 通過 {pd-ip}:{pd-port}/dashboard 登錄 TiDB Dashboard,
# 登錄用戶和口令為 TiDB 數(shù)據(jù)庫 root 用戶和口令。
# 如果你修改過數(shù)據(jù)庫的 root 密碼,則以修改后的密碼為準(zhǔn),默認(rèn)密碼為空。
# 查看 Grafana 監(jiān)控 Overview 頁面檢查 TiDB 集群狀態(tài)
# 通過 {Grafana-ip}:3000 登錄 Grafana 監(jiān)控,默認(rèn)用戶名及密碼為 admin/admin。
# 點(diǎn)擊 Overview 監(jiān)控頁面檢查 TiDB 端口和負(fù)載監(jiān)控信息。
$. tiup cluster stop tidb-test
tiup cluster restart ${cluster-name}
# use
tiup cluster restart tidb-test
tiup cluster restart prod-cluster
tiup cluster display prod-cluster
# use
tiup cluster display prod-cluster
$. tiup cluster reload prod-cluster
$. tiup cluster enable <cluster-name> [flags]
# use
$. tiup cluster enable prod-cluster
# 執(zhí)行如下命令, 打開集群配置文件
$. tiup cluster edit-config tidb-test
# 更新完成后,執(zhí)行下列命令生效
$. tiup cluster reload tidb-test
# tiup cluster reload tidb-test [-N <nodes>] [-R <roles>]
tiup cluster reload tidb-test -R pd
tiup cluster reload tidb-test -R alertmanager
tiup cluster reload tidb-test -R cdc
tiup cluster reload tidb-test -R grafana
tiup cluster reload tidb-test -R prometheus
tiup cluster reload tidb-test -R tidb
tiup cluster reload tidb-test -R tiflash
tiup cluster reload tidb-test -R tikv
tiup cluster reload tidb-test -R pd,tikv,alertmanager,cdc,grafana,prometheus,tidb
tiup cluster display tidb-test
# 不必關(guān)閉集群
# 命令 tiup cluster upgrade 用于將指定集群升級到特定版本。
tiup cluster upgrade tidb-test v6.5.0
# use
tiup cluster upgrade tidb-test v7.5.1
tiup cluster scale-out tidb-test scale.yaml
…………………………………………………………
scale.yaml內(nèi)容:
---
pd_servers:
- host: 172.16.5.140
tikv_servers:
- host: 172.16.5.140
$. tiup cluster destroy mytidb_cluster
訪問: https://docs.pingcap.com/zh/tidb/stable/user-account-management#%E5%BF%98%E8%AE%B0-root-%E5%AF%86%E7%A0%81
# 命令行登錄TIDB
mysql -u root -h ${tidb_server_host_IP_address} -P 4000
mysql -h 127.0.0.1 -P 4000 -u root -p