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 } 这里注销掉
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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
阅读 4099·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3594·2023-01-11 13:20