首页 > 代码库 > TFS数据迁移之sync_by_blk
TFS数据迁移之sync_by_blk
本文档记录了两套tfs 2.2.16系统之间的数据迁移过程。
Source环境介绍:
Tfs 主nameserver: 192.168.1.225/24 (vip 229)
Tfs 从nameserver: 192.168.1.226/24
Tfs data server 1: 192.168.1.226/24 (启动三个挂载点,每个挂载点分配20G空间)
Tfs data server 1: 192.168.1.227/24 (启动三个挂载点,每个挂载点分配20G空间)
Tfs data server 1: 192.168.1.228/23 (启动三个挂载点,每个挂载点分配20G空间)
Target环境介绍:
Tfs namserver: 192.168.1.12/24 (未配置vip)
Tfs dataserver: 192.168.1.12/24 (启动三个挂载点,每个挂载点分配20G空间)
一:查看当前source服务器状态
# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108 show > machine -a
二:查看当前target服务器状态
# /usr/local/tfs/bin/ssm -s 192.168.1.12:8108 show > machine -a
三:从source上导出当前存有数据的block的block_id号
# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108 show > block > /tmp/1.txt show > exit # wc -l /tmp/1.txt 8406 /tmp/1.txt 通过观察,过滤掉version, filecount, size, del_file, del_size这几个字段全部为0的那些block_id,剩下的block上都存有实际的数据。 # grep -v ‘0 0 0 0 0‘ /tmp/1.txt > /tmp/2.txt
取出block_id号 # cut -c 1-10 /tmp/2.txt > /tmp/3.txt
缩进空格 # for i in $(cat /tmp/3.txt);do echo $i >> /tmp/4.txt; done # wc -l /tmp/4.txt 119 /tmp/4.txt
四:使用tfs自带的sync_by_blk进行数据迁移
# /usr/local/tfs/bin/sync_by_blk -s 192.168.1.229:8108 -d 192.168.1.12:8108 -f /tmp/4.txt
通过观察日志发现成功同步文件15515个,失败个数为0,未同步的为532
# /usr/local/tfs/bin/ssm -s 192.168.1.12:8108 show > block
五:数据比对
# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108 show > block
Source上的filecount总数为16349
Target上的filecount总数为15515
16349-15515=834
感觉上少了834个文件,834减去未同步的532等于302,再减去删除掉的3个文件,还是少了299个文件。当然这个可能只是统计信息,说明不了什么问题。
六:日志分析
# cd logs/ # wc -l sync_unsync_file 532 sync_unsync_file
通过分析日志,发现未同步的532个文件里面,文件名除重后实际上只有16个文件而已
# uniq sync_unsync_file |wc -l 16
实际上采用nginx提供的模块直接访问这些文件都是可以的。
本文出自 “斩月” 博客,谢绝转载!
TFS数据迁移之sync_by_blk