TDH 集群的许可证管理机制及TDH集群的卸载与安装

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: TDH 集群的许可证管理机制及TDH集群的卸载与安装

一.背景:Tdh集群的许可证管理机制

星环的tdh执行了严格的许可证管理,当我们的tdh集群将要到期时,需要提前规划向星环官方申请许可证续期,否则一旦集群许可证过期,集群及集群中的关键服务如hdfs/inceptor等将不能再进行重启,无法正常提供服务。

不过对于依托最终客户名义,多次续期的开发或测试集群,星环官方对续期申请可能会冷处理不做任何响应。

此时,我们可选的一个方案是,将tdh集群卸载后再进行重装。当然如果原集群中还有hdfs/inceptor数据需要保存,需要通过distcp和mysqldump等工具借助一个第三方集群备份数据,待新集群安装完毕后再从第三方集群的备份数据中恢复数据。

二.Tdh集群的许可证管理机制的具体技术细节

Tdh集群的许可证管理机制,其背后技术细节如下:

l 当用户向星环官方申请许可证时需要提供集群的Server Key, 该Server Key是安装tdh集群时tdh通过集群中重要角色比如nameode节点的mac地址自动计算生成的,代表着用户的tdh集群, 是全局唯一的;

l 用户申请获得的许可证,一般星环给的有效期是2个月或3个月(用户原有license到期后,向星环申请许可证展期时会获得一个新的license Key),用户在申请获得该许可证后需要将申请获得的license key填写到tdh集群的“许可证”服务中,“许可证”服务在后台会将该license key及过期时间保存到数据库中;

l 后续集群和集群中关键服务如hdfs/inceptor等,在启动时都会首先自动校验server Key是否有变动(校验的方式是用启动时新计算出来的server Key跟后台数据库中存储的server Key进行对比, 如果用户迁移了namenode角色到其它服务器节点,此时由于namenode节点的mac地址变化了,计算获得的server Key也就变化了,所以此时namenode 启动时会因server key自检失败从而启动失败,星环就是通过这种方式限制用户tdh集群的迁移和复制的),license key是否已过期(用系统当前时间跟后台数据库中存储的license key的过期时间进行对比),如果两者有一个是的话,就会阻止相关服务进程的启动,从而达到监控和限制用户tdh集群的使用和license的续期;

l 全新安装的tdh集群,未向星环申请许可证时,星环允许有3个月的试用期,其底层逻辑是:后台数据库中找不到用户向星环官方申请获得并通过“许可证”服务填报的“license key”, 此时使用“default license”,此时集群过期时间就是数据库中存储的“集群安装时间”加上2个月或3个月。后续集群中关键服务如hdfs/inceptor等启动时会自检过期时间,如果已过期的话就阻止服务进程的启动,从而达到监控和限制为未注册tdh集群的使用;

星环就是通过用户申请许可证时上报的 ”server Key” 和星环颁发的 “license Key” 的绑定关系,来追踪和监控用户tdh集群的使用的;

三.Tdh集群的安装

TDH在全新服务器上的规划部署和安装运维,官方文档有相对比较详尽的描述,大家可以参考官方文档,链接如下,在此不再赘述:

https://www.warpcloud.cn/#/documents-support/docs?category=TDH

简要步骤如下:

  • # 解压出安装目录:tar xvzf <manager-install-pkg>
  • # 进入解压后的transwarp目录:cd transwarp
  • #执行install二进制文件:./install

四.TDH集群的卸载

tdh集群的卸载,官方文档并没有详尽的描述,只在官方的“知识分享”板块找到了一个帖子和卸载脚本,链接如下:

http://support.transwarp.cn/t/topic/1633

卸载脚本使用说明:

l 卸载脚本可重复执行;

l 卸载脚本包含两个文件,已支持 RHEL/Centos、SUSE、KYLIN 和 UOS 操作系统,支持清理shiva和argodb;

l 在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节点上执行;

l 因为manager节点需要到agent节点去执行uninstall_community_agent_instance.sh脚本,需要agent节点的密码,所以可以提前配置manager到agent节点的无秘钥登录。

l 使用该卸载脚本后如果再次安装TDH5.1.2以下版本请为docker手动分配磁盘分区;

l 经验证,该卸载脚本没有删除磁盘上存储的license相关数据,需要再手动删除下license相关数据:find / -name version-2, 可见以下license相关目录:/var/manager/zookeeper/version-2,/var/license/version-2,/var/zookeeper1/version-2。

uninstall.sh有如下参数可选:

l --keepdata 默认是false,不保留数据,如果想保留数据, uninstall.sh --keepdata=true

l --nodes 指定节点进行删除,用法是uninstall.sh --nodes=hostname1

l --nopasswd 指定使用无秘钥登录方式登录各节点进行卸载,uninstall.sh –nopasswd

l --user=* 指定无秘钥登录用户名,如 uninstall.sh --nodes=transwarp

l --sshkey=* 指定无秘钥登录的私钥文件,如uninstall.sh --sshkey=/etc/transwarp/transwarp-id_rsa

五.TDH集群卸载过程中的问题说明

1. 卸载脚本执行后,如果有没有unmount成功的目录,或有没有删除成功的目录或文件,需要根据日志提示手动执行命令进行umount或删除,(日志中会有提示,类似如下:...Warning: Path transwarp/mounts supposed to be umounted, but still exists! Please re-execute the unistall script or manually execute: mount | grep transwarp/mounts | awk '{print $3}'| xargs umount;Warning: Directory /mnt/disk1/hadoop supposed to be removed, but still exists!Please re-execute the unistall script or manually execute: rm -rf /mnt/disk1/hadoop),示例命令如下:

l mount | grep transwarp/mounts | awk '{print $3}'| xargs umount

l rm -rf /mnt/disk1/hadoop

l rm -rf /transwarp/mounts/guardian

l rm -rf /transwarp/mounts/license/

2. 卸载原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即可;

3. 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);

4. 服务监控页面经常报TOS运行异常:TSO中DF Client和DF Master这两个角色,主要用于增强集群间通信,且这两个角色是比较吃服务器配置的,容易造成TOS异常。在配置不高的情况下,安装TSO时可以取消勾选这两个角色的安装。如果已经安装了,可以将这两个角色删除。

5. HDFS Namenode启动失败,报错格式化失败,原因是之前安装过没有卸载干净,解决方案: 在所有Journal Node上,清空/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。

6. Tdh中“许可证”服务背后依赖zookeeper,Zk中存储的serverKey和licenseKey, 示例如下:

image.png

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
30天前
|
Kubernetes 容器
卸载k8s集群
卸载k8s集群
77 0
|
分布式计算 安全 Hadoop
OushuDB 如何安装与升级
OushuDB 如何安装与升级
69 0
|
安全
OushuDB 管理指南系统扩容安装准备(下)
OushuDB 管理指南系统扩容安装准备
90 0
OushuDB 管理指南系统扩容安装准备(下)
|
Java 网络安全
OushuDB 管理指南系统扩容安装准备(上)
本次安装我们假设每台机器上有两个数据盘,分别mount在/data1和/data2上。在其他硬件配置下,可能有很多块盘,用户需要根据盘数的不同更改后面相应的配置信息。尤其需要注意的是HDFS的数据目录和OushuDB的临时文件目录。
136 0
OushuDB 管理指南系统扩容安装准备(上)
|
分布式计算 Hadoop
Cloudera 软件分发管理
Cloudera Manager的主要功能是安装和升级Cloudera Runtime和其他托管服务。Cloudera Manager支持两种软件分发格式:package和parcel。
Cloudera 软件分发管理
|
存储 网络虚拟化
CloudStack+XenServer详细部署方案创建高级网络资源域
CloudStack+XenServer详细部署方案(5):创建高级网络资源域 本文将根据设计文档结合和之前创建的XenServer 资源池, 介绍CloudStack高级网络资源域的创建过程。
1164 0
|
存储 关系型数据库 数据库
CloudStack+XenServer详细部署方案 CloudStack管理节点的安装和配置
CloudStack+XenServer详细部署方案 CloudStack管理节点的安装和配置 本文将根据设计文档, 安装和配置CloudStack管理节点。 本文只对配置流程和结果进行举例说明, 具体 细节和配置操作请参考 CloudStack安装文档. 实际部署架构: 管理机柜规划: Step1. 安装和配置MySQL数据库. 根据设计部署2台MySQL数据库服务器, 安装过程和配置过程请参考CloudStack管理文档. 辅DB 对主DB 采用Replication方式进行备份。
1339 0
|
存储 Ubuntu 应用服务中间件
Kubernetes建立数据中心级apt镜像站点
对于企业级开发团队,搭建软件包的镜像站点(以及Docker Images Registry镜像站点)是减少网络带宽占用、加速软件开发过程的必备措施。 本文持续更新,地址 https://my.oschina.net/u/2306127/blog/2032372 本文代码仓库,请按照自己的资源配置参数进行修改使用。
1292 0
|
运维 Ubuntu Shell
运维调试记录:Ubuntu14.04下部署Opendaylight Nitrogen集群
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/79638755 建议参考...
1558 0