概要说明
第一,什么是挂载链
首先阅读文档:
TDH 5.x / TDH 6.x数据盘挂载原理
其中pod的/vdir目录 、到物理机的根目录的/transwarp目录、再到物理机的/mnt下的数据磁盘目录 ,这个过程一般就称为挂载链
后面那一步是用类似这样的mount –bind这样的操作:
mount --bind /mnt/disk1/hadoop/data /transwarp/mounts/hdfs1/mnt/disk1/hadoop/data
第二,什么是挂载链断裂
当服务的数据盘损坏、重新挂载等操作之后,应确保bind mount的重新正确建立,请参考这个帖子http://support.transwarp.cn/t/tdh5-x/2097。
如果bind mount建立不正确,会导致容器里写的数据实际写入了主机的根分区。
详细说明
1、挂载链断裂问题排查方法
TDH集群中,findmnt 命令可以看到实际的挂载信息
举个例子:
下图中,findmnt | grep kmq 命令可以看到,kafka的数据目录/transwarp/mounts/kafka1/mnt/disk2/hadoop/kmq 被挂到了 /dev/mapper/centos-root上,也就是根分区上
表明kafka的挂载链出了问题

再比如findmnt | grep search 可以看到,search的挂载链也有问题

正常情况下应该是挂载到数据盘上:

2、挂载链断裂问题解决方案
1、停止所有挂载链有问题的服务;
2、查看哪些目录是误挂载到根目录,备份这些目录的数据;
3、umount掉这些错误的挂载链;
4、manager界面配置一下挂载有问题的服务,然后还需要检查下fstab文件;
5、确认各个节点数据目录挂载链更新正确的情况下,把原有备份数据拷贝进各自目录;
6、界面启动服务;
第五步中,目前yarn/search/slipstream/kafka/inceptor/hdfs/txsql 等这些服务都可以采用下面的方案来直接将备份的数据恢复:
PS: 应该用cp -rp
![Uploading file…]()
holodesk目前不确定是否可以这样操作