作者: CuteRay
前言
其实 TiDB 的阿里云试用活动其实也过去一段时间了,之前一直没有整块整块的时间慢慢地折腾,只能趁着闲暇之余慢慢体验,这篇文章也就写的很慢了,可惜错过了文章征文活动,错过好多礼物(咱们写文章是为了奖品的吗?肤浅!!!)。行话不多说,直入正题。
部署
部署没什么太多需要讲的,无非就是在提供的可视化界面上填写一些基础信息,然后根据需要勾选一些配置,然后确认订单(当然,试用期是免费的),然后点击部署,等待部署完成就好了,相信大家都会。
说点额外的,此次活动,云数据库 TiDB 的试用规格还是挺高的,在自定义套餐里面,TiFLash、TiKV 节点最高配置能选到64C、128G,PD 节点能选到4C、8G,TiDB 节点最高能选到8C、16G,可谓诚意满满了,土豪味儿十足。
在部署的时候,能够自定义 TiKV 节点、TiDB 节点的个数,其中 TiKV 最少三个,最多五个,TiDB 最少两个,最多同样五个,而 PD 节点数量只有两个选择,要么三个,要么五个,这也是非常符合官网提到的生产环境最佳实践的。需要注意的是,默认部署的 TiDB 集群是不包含 TiFlash 节点的,等集群部署完成之后,可以通过扩容的方式增加 TiFlash 节点。
确定完机器配置有两个选项十分重要,一个是 TiDB 负载均衡是否绑定EIP,第二个是设置登录密码。
先说第一个,EIP,全称是阿里云的弹性公网 IP(Elastic IP Address),说白了,就是为你提供一个 TiDB 负载均衡的公网 IP 地址,让你能够通过公网连接上 TiDB 数据库,否则只能通过 部署TiDB 集群的机器去访问了。该配置默认是否,当然得是否的啦,流量很贵的,当然,试用嘛,直接勾上勾上。
第二个,设置登录密码,这个密码可以说是十分重要,因为这一个密码是部署 TiDB 集群的机器 root 用户的密码,同样也是 TiDB 数据库 root 用户的初始密码,更是 Grafana 监控组件 admin 用户的密码。一个密码三个地方用,不可谓不重要。
还有一点,此次试用的 TiDB 只有 v6.5.0 -release20230217这一个版本可以选,不过这个 release 版本我在 Github 的仓库中上并未找到,查了日志,才知道这个版本其实就是 v6.5.0 去年12月底发版的那个最初的版本 ,仓库地址在这儿:pingcap/tidb at v6.5.0 (github.com)。这个版本后续还打了些许补丁,修复了一部分 BUG(TiDB 6.5.1 Release Notes | PingCAP 文档中心)不过对于试用体验而言,已然足够。
使用
部署完成之后,正式进入试用,点进服务实例,几个选项卡界面一目了然,概览、资源、监控、运维、日志,十分齐全,一点点来看。
概览
概览界面展示的就是集群的基础信息,从主要资源的数量、集群的基本信息、云数据库 TiDB 的服务商信息、此服务的配置基础信息,以及资源拓扑图,十分详细。其中最主要的就是集群的基本信息,里面有 TiDB 集群连接的 endpoint(公网、私网),如果在部署的时候没有勾上 TiDB 负载均衡绑定 EIP,此处就只有私网连接的endpoint 。除此之外,还有 Dashboard 以及 Grafana 的公网地址,点击就能直接跳转。
资源
资源界面,就是查看此云数据库 TiDB 所有资源的位置,资源包含 ECS、SLB、VPC等,最常用的就是 ECS 了。对于 TiDB 集群,中控机 TiUP 的重要性相信不需要我做过多阐述了吧,在这里,中控机就是那个唯一拥有一公一私两个 IP 的机器,十分特别,但是这个公网 IP 只开放了 3000 与 2379 端口,ssh 端口不通,意味着只能在这个界面,点击远程连接,才能连接上机器(稍微吐槽下,这个远程连接的ssh 客户端工具真的不算好用,也许单纯是我不习惯吧)。另外几个小功能,诸如诊断健康状态、执行命令(就是执行一段内容自定义的 shell 脚本,能实时返回输出,还蛮好用)、停止、重启等等,就不需要多说了吧,懂得都懂。
监控
监控界面的功能也十分丰富,包含有对机器CPU、内存、磁盘、网络等各个方面的监控,以及弹性公网IP、负载均衡等资源的监控,甚至还能根据喜好自定义监控指标,谁懂啊,真的好爱。
运维管理
重点来咯,在运维管理界面中,就包含一些基础的运维功能。包括发送执行远程命令、上传文件、清理磁盘、启停 ECS 实例等基础运维选项,还包括与 TiDB 集群息息相关的弹性扩缩容。弹性扩缩容允许用户弹性扩缩容 TiDB、TiKV、TiFlash 这三个组件,别问为什么没有PD,因为伸缩组 ID 中只有这仨,目前还不支持自定义伸缩组 ID,想必是做了限制。然后弹性扩缩容也是有限制的,仔细看下图,里面有一些说明,但是,这里有一个小 BUG 哦,这个允许我留到总结里面去说,嘿嘿,因为挺有意思的,耐心看。
其次弹性扩缩容允许调整的资源类型只有 ESS,选 ACK 的话,会报错,因为这是 ESS 实例部署的 TiDB 集群,又不是 kubernetes 部署的,当然会报错啦,但即便如此,出现这个 ACK 选项还是显得怪怪的。
部署日志 & 运维项 & 操作日志
部署日志这个界面没啥用,就是展示云数据库 TiDB 这个实例部署的生命周期,创建了哪些资源,做了哪些编排等等,除此之外就没了,也不会更新。
此外,运维项以及操作日志这个界面我至今都没明白是用来干嘛的,因为确实啥内容都没有。
运维
运维这个云数据库 TiDB 跟普通部署的并无太大区别,毕竟这还是ECS 部署的TiDB 集群,只要能用 TiUP,意味着就能使用 tiup cluster
,与普通的没差。包括扩缩容,启停,升级等等,对,我没说错,可以升级。在前面提到的运维管理中可是没有升级这一选项的喔,事实上,我也确实这么干了,从 v6.5.0 升级到了v6.5.1 ,嘿嘿。不过扩容的话,就用不到阿里云的新的机器咯,因为这是一个机器一个组件,在扩容操作时是自动分配的。缩容也类似,如果使用 tiup cluster scale-in
命令去缩容,只是在集群中把相应组件移除,但是并不会告诉阿里云,相应的机器不用了,机器还会留在那,所以,对集群进行弹性扩缩容的操作,还是建议使用运维管理中的弹性扩缩容来操作。
如果真的使用 tiup 命令来缩容,那我只能恭喜你,这些机器就会一直躺在你的账户上咯,开玩笑的,别紧张,此时去运维管理中,选择弹性扩缩容,缩容的时候选择指定机器就好了,问题不大。
其次,说起扩容,我前面不是说了,有个 BUG 嘛,还记得,在部署的时候,运行部署的 TiDB 组件的最大数量是 5个,TiKV也是,想必 TiFlash 最多也应该是5个,但是,在做弹性扩容操作时,运行调整的 ECS 实例数量竟然最多高达 100个,嘶,其实作为试用而言,这 100 个真的有点太多了,太多了。。。
起初我觉着做扩容操作时,察觉到 TiDB、TiKV或者 TiFlash 组件数量大于5,会报错,然鹅,事实它竟然扩容成功了,成功了( 别问为什么我的TiDB 集群是 v6.5.1 版本的,那是因为我升级了)!!!!
嘶,作为试用体验而言,我觉着这应该算是一个大 BUG了,当然,不差这点钱,那咱们另说。。。。
接着就是监控部分了,以往无非就是使用 Grafana、Dashboard 来监控 TiDB 集群,但是,云数据库多了一个选择,就是使用自带的资源监控,这个对于熟悉阿里云但是不熟悉 TiDB 的小伙伴来说,监控集群机器很有帮助,但是,最好还是要熟悉 Grafana 与 Dashboard,这两个能很直观对数据库的一些指标做到实时监控,毕竟我们运维的还是一款数据库产品。
问题
- 上传文件显示成功,但实际上是失败,呃,我不好评价。
- 选择导出机器资源的时候,会报错,也许是权限不足支持我导出,但是再次点击导出资源时,这确定按钮竟然变成一只转圈圈的状态,只能将页面刷新才能恢复,阿里云,不应该啊。
- 试用的 EIP 真的只能仅仅作为连接访问来用,限速真的好严重哦。tpcc prepare的时候,连接 EIP 来跑,跑了一天,就造了200GB不到的数据,而且直接给我将 Grafana 的登录页也给干到打不开了,直接吃满了所有带宽,但也能理解,而且也没有找到调整带宽的位置,果然只是试用。
- 监控四件套的另外两个大哥没有公网访问地址。Alertmanager 、Prometheus 这两都没有公网访问地址,包括 Dashboard 中的两个链接,也只是链接到内网地址,而不是公网地址,包括Grafana。Alertmanager 也没法配置,不过只有平替,那就是监控面板,在其中也可以配置报警信息。
总结
总体来说,阿里云 TiDB 数据库体验还是十分不错的。云数据库 TiDB 是用户云上私有化部署的方式,最主要是将操作系统权限下放,对运维和 DBA 来说自由度相当高,但是有一点遗憾,就是目前并不是所有的操作,都能在通过 可视化界面上“点点点” 的方式来实现。对比 Tidb Cloud ,这个不太像是的DBaaS,更像RDS。总之,对于在阿里云平台上需要 TiDB 原厂技术支持保障的用户来说,阿里云云数据库 TiDB 目前是一个非常棒的选择。
此外附上 TiKV 节点的磁盘 IO 测试结果,以及集群 V6.5.0 与V6.5.1 的 TPCC 测试结果,仅供参考。