TIDB官方文檔建議最低使用centos7.3操作系統進行部署,磁盤SSD200G,網卡千兆以上,內存要8G。日常虛擬機可沒有這么高的內存配置,所以部署按照虛擬機最低配置進行安裝,創建4臺TIDB虛擬機,1G內存,20G磁盤做數據盤。
官方建議使用ansible進行在線部署,虛擬機可配置一臺中控機進行外網互通,其他機器為內網互通。
我的機器環境:
IP | 角色 | 系統 |
192.168.37.128 | TiKV | Centos7.6 |
192.168.37.129 | TiKV | Centos7.6 |
192.168.37.130 | TiKV | Centos7.6 |
192.168.37.132 | 中控機 | Centos7.6 |
注意:使用Ansible 方式部署時,TiKV及 PD節點數據目錄所在磁盤請使用SSD 磁盤,否則無法通過檢測
1、中控機安裝所需要的依賴包
yum -y installepel-release git curl sshpass &&
yum -y installpython2-pip
2、創建用戶,生成ssh key
創建用戶并修改密碼:
useradd -m -d/home/tidb tidb
passwd tidb
配置tidb用戶免sudo
visudo
tidb ALL=(ALL)NOPASSWD: ALL
切換到tidb用戶下生成sshkey
su – tidb
ssh-keygen -t rsa
3、中控機下載ansible并安裝及其依賴包
切換到tidb用戶,執行以下命令(如果無git命令,使用yum安裝)
git clone -b $taghttps://github.com/pingcap/tidb-ansible.git
注意:
$tag 替換為選定的TAG 版本的值,例如v3.0.2。
部署和升級TiDB 集群需使用對應的tidb-ansible 版本,通過改inventory.ini 文件中的版本來混用可能會產生一些錯誤。請務必按文檔操作,將tidb-ansible 下載到/home/tidb 目錄下,權限為tidb 用戶,不要下載到/root 下,否則會遇到權限問題。
安裝ansible
在安裝ansible之前,先升級pip,使用pipinstall --upgrade pip進行升級如果通過以下方式安裝的ansible有問題,使用pipuninstall ansible卸載,再使用yum–y install ansible安裝
cd/home/tidb/tidb-ansible &&
sudo pip install -r./requirements.txt &&
ansible –version
4、配置互信及sudo
配置內網TiKV機器互信及sudo
cd/home/tidb/tidb-ansible &&
vi hosts.ini
[servers]
192.168.37.128
192.168.37.129
192.168.37.130
192.168.37.132
[all:vars]
username = tidb
ntp_server =pool.ntp.org
執行互信操作
ansible-playbook -ihosts.ini create_users.yml -u root –k
5、配置NTP
cd/home/tidb/tidb-ansible &&
ansible-playbook -ihosts.ini deploy_ntp.yml -u tidb -b
6、配置CPUfreq模式
首先查看系統是否支持CPUfreq模式,顯示NotAvailable則為不支持則可跳過操作
cpupowerfrequency-info --governors
analyzing CPU 0:
available cpufreqgovernors: Not Available
如果支持該模式,則執行
cpupowerfrequency-set --governor performance
或者批量配置互信下的機器
ansible -i hosts.iniall -m shell -a "cpupower frequency-set --governor performance"-u tidb –b
7、掛載文件數據盤
Tidb的數據盤格式需要為ext4,如果不是,則需要重新格式化并掛載,我是每臺機器掛載了一個20G的數據盤。
使用fdisk命令對盤進行劃分
fdisk /dev/sdb
進行格式化
mkfs.ext4 /dev/sdb
查看UUID號
編輯/etc/fstab文件,把掛載加入到系統啟動
UUID=fa569af4-f8e7-4647-9085-07af255d3a07 /data1 ext4defaults,nodelalloc,noatime 0 2
創建數據盤
mkdir /data
進行掛載
mount –a
劃分完及掛載后如下所示:
8、創建配置文件inventory.ini
主要修改以下地方,一臺tidb作為中控機,三臺tikv,一臺pd。如果安裝官方建議,為6臺機器,2個 TiDB 節點,3個 PD 節點,3個 TiKV 節點,第一臺TiDB 機器同時用作監控機
cat >inventory.ini
## TiDB Cluster Part
[tidb_servers]
192.168.37.132
[tikv_servers]
192.168.37.128
192.168.37.129
192.168.37.130
[pd_servers]
192.168.37.132
## Monitoring Part
# prometheus andpushgateway servers
[monitoring_servers]
192.168.37.132
[grafana_servers]
192.168.37.132
# node_exporter andblackbox_exporter servers
[monitored_servers]
192.168.37.128
192.168.37.129
192.168.37.130
192.168.37.132
9、運行配置文件進行部署
互信檢查,返回創建的用戶tidb為成功
ansible -iinventory.ini all -m shell -a whoami
sudo檢查,返回root為成功
ansible -iinventory.ini all -m shell -a whoami -b
執行local_prepare.yml playbook,聯網下載TiDB binary 到中控機
ansible-playbooklocal_prepare.yml
初始化系統環境,修改內核參數
ansible-playbookbootstrap.yml
部署TiDB 集群軟件
ansible-playbookdeploy.yml
10、啟動及測試集群
啟動TiDB 集群
ansible-playbookstart.yml
關閉TiDB集群
ansible-playbookstop.yml
測試連接
mysql -u root -h192.168.37.132 -P 4000
通過圖形界面登陸GrafanaDashboard監控平臺
地址:http://192.168.37.132:3000 默認帳號密碼是:admin/admin
至此,TIDB集群部署完成
1、最常見的問題就是NTP的問題,會導致互信出現問題,部署不成功
Ansible FAILED!
Start to adjust timewith pool.ntp.org
ntpdate[50809]:noserver suitable for synchronization found
解決方式:
查看一下/etc/ntp.conf里面的server,如果里面server 為ntp02.intstg.sfdc.com.cn
然后把tidb_ansible_master/hosts.ini里面的ntp_server改成一致的,即ntp02.intstg.sfdc.com.cn
2、磁盤檢測問題
Tidb要求SSD磁盤,虛擬機安裝的話達不到安裝要求,可修改/home/tidb/tidb-ansible/roles/machine_benchmark/defaults/main.yml文件,如IOPS修改小一些,可檢測通過
3、部署過程中出現做互信操作非常慢,需要在/etc/hosts下添加IP,主機名進行解析
4、提示:Ansible FAILED! => playbook: bootstrap.yml; TASK: check_system_optional : Preflight check - Check TiDB servers CPU; message: {"changed": false, "msg": "This machine does not have sufficient CPU to run TiDB, at least 8 cores."}
處理方法:
vim bootstrap.yml 修改該文件并注釋掉以下的內容
- name: check system
hosts: all
any_errors_fatal: true
roles:
- check_system_necessary
# - { role: check_system_optional, when: not dev_mode } 這里注銷掉
5、如果是非SSD測試的話 ,最好將如下的內容注釋掉
- name: tikv_servers machine benchmark
hosts: tikv_servers
gather_facts: false
roles:
# - { role: machine_benchmark, when: not dev_mode } 這里注銷掉
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130169.html
摘要:愛奇藝,中國高品質視頻娛樂服務提供者,年月日正式上線,推崇品質青春時尚的品牌內涵如今已深入人心,網羅了全球廣大的年輕用戶群體,積極推動產品技術內容營銷等全方位創新。邊控中心是愛奇藝第一個在線業務使用的項目,所以我們制定了詳細的上線計劃。 愛奇藝,中國高品質視頻娛樂服務提供者,2010 年 4 月 22 日正式上線,推崇品質、青春、時尚的品牌內涵如今已深入人心,網羅了全球廣大的年輕用戶群...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20