天天看點

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

規劃

Tidb資料庫叢集伺服器規劃(說明:這是阿裡雲上買的本地SSD固态硬碟的伺服器)

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

說明:對于非系統盤,阿裡雲并未進行挂載,需要自己處理,如下針對PD與TIKV伺服器的兩塊本地SSD固态硬碟進行初始化,并做RIAD1(鏡像)陣列後進行挂載。

初始化資料磁盤并挂載

以PD02為例(其他一樣套路操作),具體指令參考截圖:

檢視磁盤挂載情況

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

初始化磁盤

/dev/vdb 與 /dev/vdc

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

安裝Linux系統 的RAID管理工具 mdadm

檢查/dev/vdb與 /dev/vdc 分區其RAID狀況

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

建立RAID 1磁盤陣列

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

再檢視RAID裝置設定結果與RAID陣列狀态

mdadm -E /dev/sd[b-c]1

mdadm --detail /dev/md0

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署
阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

在RAID1陣列上建立目錄并挂載

mkdir /data

mkfs.ext4 /dev/md0 (必須格式化為ext4, tidb隻支援并優化了這類檔案系統)

mount /dev/md0 /data/

測試挂載結果

echo “raid setup”>/data/raid.txt

cat /data/raid.txt

vim /etc/fstab 檔案,添加以下行(表示在系統啟動時自動挂載RAID磁盤陣列)

/dev/md0 /data ext4 defaults,nodelalloc,noatime 0 2

Tidb要求 資料盤需格式化為 ext4 檔案系統,挂載時必須添加 nodelalloc 和 noatime 參數。 nodelalloc 是必選參數,否則 Ansible 安裝時檢測無法通過,noatime 是可選建議參數。

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

這時,再用df –h 檢視磁盤容量,就看到/data

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

叢集NTP服務設定

目的:務必保證整個TIDB資料庫叢集時間保持一緻,與NTP時鐘源同步

說明:因為購買的是阿裡雲伺服器,環境已經配置并優化好,NTP時間同步也已配置好

詳見如下截圖:

這裡就不寫NTP時鐘源同步設定方法了

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署
阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

配置中控機&監控機monitor到叢集各個服務的SSH互信與sudo免密碼

這裡手工配置

1.以root使用者登入所有機器建立tidb使用者并設定密碼

groupadd -g 600 tidb

useradd -u 501 -g 600 -f 30 -m -d /home/tidb1 tidb

passwd tidb

說明:我這裡指定tidb家目錄為/home/tidb1是因為我在中控機上把TiDB-Ansible 項目clone到/home/tidb目錄了,而我又同時多視窗互動,操作所有伺服器,懶得為一台機器去調整,為統一操作步調而已,純粹就因為懶、懶、懶,是以不要糾結為什麼不使用預設的家目錄/home/tidb

設定tidb使用者的sudo免密碼操作,執行visudo指令,在檔案末尾添加如下條目:

tidb ALL=(ALL) NOPASSWD: ALL

2.建立中控機monitor到所有機器的ssh互信

以tidb賬戶登入到中控機monitor,生成秘鑰

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub pd01 #這裡直接寫hostname 為pd01 就能識别,是因為在所有機器的/etc/hosts檔案做了如下配置:

[[email protected] ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.18.243.6 monitor

172.18.243.171 pd01

172.18.243.172 pd02

172.18.243.173 pd03

172.18.243.44 tidb01

172.18.243.55 tidb02

172.18.243.163 tikv01

172.18.243.165 tikv02

172.18.243.164 tikv03

[[email protected] ~]#

如下截圖以monitor 傳至 pd01

其他機器一樣套路,這裡就不一一列舉了

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

3. 在中控機器上下載下傳 TiDB-Ansible 并安裝部署tidb

這裡下載下傳的是2.0 GA版本

git clone -b release-2.0 https://github.com/pingcap/tidb-ansible.git

下載下傳需要一定時間,請耐心等待

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

安裝 Ansible 及其依賴(圖太長,就不截了,主要指令見如下)

sudo yum -y install epel-release

sudo yum -y install python-pip curl

cd tidb-ansible/

sudo pip install -r ./requirements.txt

pip install --upgrade pip (裝完pip會提醒你執行此指令更新)

ansible –version

此過程也要花些時間,請耐心等待

[[email protected] tidb-ansible]# ansible --version

ansible 2.5.3

配置設定機器資源,編輯 inventory.ini 檔案

說明:我這裡下載下傳tidb項目到/home/tidb (這也是為什麼我設定的tidb使用者的家目錄是/home/tidb1,因為預設的家目錄/home/tidb有沖突,我想要差別開來)

是以inventory.ini 檔案路徑在:

/home/tidb/tidb-ansible/ inventory.ini

修改前先做備份(這是個好習慣)

cp inventory.ini inventory_bak20180528.ini

vim inventory.ini

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署
阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署
阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

實際安裝部署前,再檢查一遍中控機monitor與所有目标機器的ssh互信配置與各目标機器tidb使用者sudo免密碼配置是否成功(tidb提供了相關工具與指令,見如下)

注意:在中控機上以tidb執行指令

互信檢查

ansible -i inventory.ini all -m shell -a ‘whoami’

傳回tidb則成功

Sudo免密碼檢查

ansible -i inventory.ini all -m shell -a ‘whoami’ -b

傳回root則成功

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

開始部署

執行 local_prepare.yml playbook,聯網下載下傳 TiDB binary 到中控機

ansible-playbook local_prepare.yml

初始化系統環境,修改核心參數

ansible-playbook bootstrap.yml

部署 TiDB 叢集軟體

ansible-playbook deploy.yml

以上部署過程會檢查系統硬/軟體環境,若不符合會報錯,操作無法繼續,是以務必保證硬/軟體條件都符合要求(這也是為什麼tidb要求配置要比較出衆)

部署過程,耗時比較長,請耐心等候……

172.18.243.163 : ok=51 changed=23 unreachable=0 failed=0

172.18.243.164 : ok=51 changed=23 unreachable=0 failed=0

172.18.243.165 : ok=51 changed=23 unreachable=0 failed=0

172.18.243.171 : ok=49 changed=22 unreachable=0 failed=0

172.18.243.172 : ok=49 changed=22 unreachable=0 failed=0

172.18.243.173 : ok=49 changed=22 unreachable=0 failed=0

172.18.243.44 : ok=52 changed=24 unreachable=0 failed=0

172.18.243.55 : ok=52 changed=24 unreachable=0 failed=0

172.18.243.6 : ok=97 changed=55 unreachable=0 failed=0

localhost : ok=1 changed=0 unreachable=0 failed=0

Congrats! All goes well. ?

成功安裝完畢的提示!!!

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

sudo yum install fontconfig

啟動 TiDB 叢集

ansible-playbook start.yml

連接配接測試

mysql -u root -h 172.18.243.55 -P 4000

阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署
阿裡雲伺服器tidb-GA2.0.1資料庫叢集部署

完結!!!

繼續閱讀