阿里云服务器tidb-GA2.0.1数据库集群部署

规划
Tidb数据库集群服务器规划(说明:这是阿里云上买的本地SSD固态硬盘的服务器)
阿里云服务器tidb-GA2.0.1数据库集群部署_第1张图片
说明:对于非系统盘,阿里云并未进行挂载,需要自己处理,如下针对PD与TIKV服务器的两块本地SSD固态硬盘进行初始化,并做RIAD1(镜像)阵列后进行挂载。

初始化数据磁盘并挂载
以PD02为例(其他一样套路操作),具体命令参考截图:
查看磁盘挂载情况
阿里云服务器tidb-GA2.0.1数据库集群部署_第2张图片
初始化磁盘
/dev/vdb 与 /dev/vdc
阿里云服务器tidb-GA2.0.1数据库集群部署_第3张图片
安装Linux系统 的RAID管理工具 mdadm
检查/dev/vdb与 /dev/vdc 分区其RAID状况
阿里云服务器tidb-GA2.0.1数据库集群部署_第4张图片
创建RAID 1磁盘阵列
阿里云服务器tidb-GA2.0.1数据库集群部署_第5张图片
再查看RAID设备设置结果与RAID阵列状态
mdadm -E /dev/sd[b-c]1
mdadm --detail /dev/md0
阿里云服务器tidb-GA2.0.1数据库集群部署_第6张图片
阿里云服务器tidb-GA2.0.1数据库集群部署_第7张图片
在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数据库集群部署_第8张图片这时,再用df –h 查看磁盘容量,就看到/data
阿里云服务器tidb-GA2.0.1数据库集群部署_第9张图片
集群NTP服务设置
目的:务必保证整个TIDB数据库集群时间保持一致,与NTP时钟源同步
说明:因为购买的是阿里云服务器,环境已经配置并优化好,NTP时间同步也已配置好
详见如下截图:
这里就不写NTP时钟源同步设置方法了
阿里云服务器tidb-GA2.0.1数据库集群部署_第10张图片
阿里云服务器tidb-GA2.0.1数据库集群部署_第11张图片
配置中控机&监控机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文件做了如下配置:

[root@pd01 ~]# 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
[root@pd01 ~]#
如下截图以monitor 传至 pd01
其他机器一样套路,这里就不一一列举了
阿里云服务器tidb-GA2.0.1数据库集群部署_第12张图片
3. 在中控机器上下载 TiDB-Ansible 并安装部署tidb
这里下载的是2.0 GA版本
git clone -b release-2.0 https://github.com/pingcap/tidb-ansible.git
下载需要一定时间,请耐心等待
阿里云服务器tidb-GA2.0.1数据库集群部署_第13张图片
安装 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
此过程也要花些时间,请耐心等待

[root@monitor 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数据库集群部署_第14张图片
阿里云服务器tidb-GA2.0.1数据库集群部署_第15张图片阿里云服务器tidb-GA2.0.1数据库集群部署_第16张图片

实际安装部署前,再检查一遍中控机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数据库集群部署_第17张图片
开始部署
执行 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. ?

成功安装完毕的提示!!!
在这里插入图片描述
sudo yum install fontconfig

启动 TiDB 集群
ansible-playbook start.yml

连接测试
mysql -u root -h 172.18.243.55 -P 4000
阿里云服务器tidb-GA2.0.1数据库集群部署_第18张图片
阿里云服务器tidb-GA2.0.1数据库集群部署_第19张图片
完结!!!

你可能感兴趣的:(IT)