TDH 集群的许可证管理机制及TDH集群的卸载与安装
Posted michaelli916
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TDH 集群的许可证管理机制及TDH集群的卸载与安装相关的知识,希望对你有一定的参考价值。
点击上方蓝色“明哥的IT随笔”,关注并选择“设为星标”,keep striving!
一.背景:Tdh集群的许可证管理机制
星环的tdh执行了严格的许可证管理,当我们的tdh集群将要到期时,需要提前规划向星环官方申请许可证续期,否则一旦集群许可证过期,集群及集群中的关键服务如hdfs/inceptor等将不能再进行重启,无法正常提供服务。
不过对于依托最终客户名义,多次续期的开发或测试集群,星环官方对续期申请可能会冷处理不做任何响应。
此时,我们可选的一个方案是,将tdh集群卸载后再进行重装。
当然如果原集群中还有hdfs/inceptor数据需要保存,需要通过distcp和mysqldump等工具借助一个第三方集群备份数据,待新集群安装完毕后再从第三方集群的备份数据中恢复数据。
二.Tdh集群的许可证管理机制的具体技术细节
Tdh集群的许可证管理机制,其背后技术细节如下:
当用户向星环官方申请许可证时需要提供集群的Server Key, 该Server Key是安装tdh集群时tdh通过集群中重要角色比如nameode节点的mac地址自动计算生成的,代表着用户的tdh集群, 是全局唯一的;
用户申请获得的许可证,一般星环给的有效期是2个月或3个月(用户原有license到期后,向星环申请许可证展期时会获得一个新的license Key),用户在申请获得该许可证后需要将申请获得的license key填写到tdh集群的“许可证”服务中,“许可证”服务在后台会将该license key及过期时间保存到数据库中;
后续集群和集群中关键服务如hdfs/inceptor等,在启动时都会首先自动校验server Key是否有变动(校验的方式是用启动时新计算出来的server Key跟后台数据库中存储的server Key进行对比, 如果用户迁移了namenode角色到其它服务器节点,此时由于namenode节点的mac地址变化了,计算获得的server Key也就变化了,所以此时namenode 启动时会因server key自检失败从而启动失败,星环就是通过这种方式限制用户tdh集群的迁移和复制的),license key是否已过期(用系统当前时间跟后台数据库中存储的licensekey的过期时间进行对比),如果两者有一个是的话,就会阻止相关服务进程的启动,从而达到监控和限制用户tdh集群的使用和license的续期;
全新安装的tdh集群,未向星环申请许可证时,星环允许有3个月的试用期,其底层逻辑是:后台数据库中找不到用户向星环官方申请获得并通过“许可证”服务填报的“license key”, 此时使用“defaultlicense”,此时集群过期时间就是数据库中存储的“集群安装时间”加上2个月或3个月。后续集群中关键服务如hdfs/inceptor等启动时会自检过期时间,如果已过期的话就阻止服务进程的启动,从而达到监控和限制为未注册tdh集群的使用;
星环就是通过用户申请许可证时上报的 ”server Key” 和星环颁发的“license Key” 的绑定关系,来追踪和监控用户tdh集群的使用的。
三。Tdh集群的安装
TDH在全新服务器上的规划部署和安装运维,官方文档有相对比较详尽的描述,大家可以参考官方文档,链接如下,在此不再赘述:
https://www.warpcloud.cn/#/documents-support/docs?category=TDH
四.TDH集群的卸载
tdh集群的卸载,官方文档并没有详尽的描述,只在官方的“知识分享”板块找到了一个帖子和卸载脚本,链接如下:
http://support.transwarp.cn/t/topic/1633
卸载脚本使用说明:
卸载脚本可重复执行;
卸载脚本包含两个文件,已支持 RHEL/Centos、SUSE、KYLIN和 UOS 操作系统,支持清理shiva和argodb;
在manager节点执行chmod +x uninstall.sh (非root用户执行sudo chmod +x uninstall.sh),然后执行sh uninstall.sh 开始卸载TDH,其内部执行流程是:uninstall.sh读取manager安装的节点和服务信息,将uninstall_community_agent_template.sh渲染成uninstall_community_agent_instance.sh,然后在agent节点上执行;
因为manager节点需要到agent节点去执行uninstall_community_agent_instance.sh脚本,需要agent节点的密码,所以可以提前配置manager到agent节点的无秘钥登录。
使用该卸载脚本后如果再次安装TDH5.1.2以下版本请为docker手动分配磁盘分区;
经验证,该卸载脚本没有删除磁盘上存储的license相关数据,需要再手动删除下license相关数据:find / -name version-2, 可见以下license相关目录:/var/manager/zookeeper/version-2,/var/license/version-2,/var/zookeeper1/version-2。
uninstall.sh有如下参数可选:
--keepdata 默认是false,不保留数据,如果想保留数据, uninstall.sh --keepdata=true
--nodes 指定节点进行删除,用法是uninstall.sh--nodes=hostname1
--nopasswd 指定使用无秘钥登录方式登录各节点进行卸载,uninstall.sh–nopasswd
--user=* 指定无秘钥登录用户名,如 uninstall.sh--nodes=transwarp
--sshkey=* 指定无秘钥登录的私钥文件,如uninstall.sh--sshkey=/etc/transwarp/transwarp-id_rsa
五.TDH集群卸载过程中的问题说明
卸载脚本执行后,如果有没有unmount成功的目录,或有没有删除成功的目录或文件,需要根据日志提示手动执行命令进行umount或删除,(日志中会有提示,类似如下:...Warning: Path transwarp/mounts supposed to be umounted, but stillexists! Please re-execute the unistall script or manually execute: mount | greptranswarp/mounts | awk '{print $3}'| xargs umount;Warning:Directory /mnt/disk1/hadoop supposed to be removed, but still exists!Pleasere-execute the unistall script or manually execute: rm -rf /mnt/disk1/hadoop),示例命令如下: mount | grep transwarp/mounts | awk '{print $3}'| xargs umountl;rm -rf /mnt/disk1/hadoopl;rm -rf /transwarp/mounts/guardianl;rm -rf /transwarp/mounts/license/;
卸载原tdh集群后,重装的新tdh集群中,HDFS启动失败,报错License过期: 问题原因是之前机器安装过TDH,License信息没有清理干净,需要清空下Manager节点/var/license/version-2中的内容(保留目录),然后重启License:find / -name version-2, 可见以下目录:/var/manager/zookeeper/version-2,/var/license/version-2,/var/zookeeper1/version-2,严格来讲,只需要删除/var/license/version-2即可;
Tdh安装时底层会安装haproxy,且tdh的正常运行依赖haproxy的正常运行,如果haproxy运行失败 ,需要卸载haproxy并重新安装的话,需要确认下haproxy的配置文件使用的不是默认的/etc/haproxy/haproxy.cfg,而是/etc/tos/conf/haproxy.cfg:(卸载和安装命令:yum erase-y haproxy && yum install -y haproxy --disablerepo=os ,指定配置文件方法:修改/usr/lib/systemd/system/haproxy.service,将配置文件改为/etc/tos/conf/haproxy.cfg);
服务监控页面经常报TOS运行异常:TSO中DF Client和DFMaster这两个角色,主要用于增强集群间通信,且这两个角色是比较吃服务器配置的,容易造成TOS异常。在配置不高的情况下,安装TSO时可以取消勾选这两个角色的安装。如果已经安装了,可以将这两个角色删除。
HDFS Namenode启动失败,报错格式化失败,原因是之前安装过没有卸载干净,解决方案: 在所有JournalNode上,清空/hadoop/journal 中的所有内容(清空指删除目录中的所有内容,但保留目录,下同);在所有Name Node上,清空dfs.namenode.name.dir配置的相应目录的所有内容(默认是/hadoop/namenode_dir,/mnt/disk1/hadoop/namenode_dir);在所有Name Node上,清空/var/namenode_format/目录的所有内容;在所有Data Node上,清空dfs.datanode.data.dir配置的相应目录的所有内容(默认是/mnt/disk1/hadoop/data);然后重新安装HDFS。
Tdh中“许可证”服务背后依赖zookeeper,Zk中存储的serverKey和licenseKey, 示例如下:
tdh集群卸载脚本, 也可从我的百度网盘下载:
链接:https://pan.baidu.com/s/17ENH7WEXU1y9qAsktXNxQw
提取码:8kjd
复制这段内容后打开百度网盘手机App,操作更方便哦
!关注不迷路~ 各种福利、资源定期分享!欢迎有想法、乐于分享的小伙伴们一起交流学习。
你点的每个在看,我都认真当成了喜欢!
以上是关于TDH 集群的许可证管理机制及TDH集群的卸载与安装的主要内容,如果未能解决你的问题,请参考以下文章