首页 > 代码库 > 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

wKioL1Q1533AwEVUAAQ0w1yqjnU811.jpg

二:查看当前target服务器状态

# /usr/local/tfs/bin/ssm -s 192.168.1.12:8108 
show > machine -a

wKiom1Q153CS8-mvAAL4ofughHA396.jpg

三:从source上导出当前存有数据的blockblock_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

wKiom1Q156STFzBuAAG4JaZRLQM741.jpg

wKioL1Q15_TBl96aAAIdlpom8uc475.jpg


取出block_id号
# cut -c 1-10 /tmp/2.txt  > /tmp/3.txt

wKioL1Q16CSicFthAADtC7DHH1o947.jpg


缩进空格
# for i in $(cat /tmp/3.txt);do echo $i >> /tmp/4.txt; done 
# wc -l /tmp/4.txt
119 /tmp/4.txt

wKioL1Q16ErC6ZFQAADcd25GGbU765.jpg


四:使用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

wKioL1Q16HbT3gc5AAICK7X-k3c528.jpg

通过观察日志发现成功同步文件15515个,失败个数为0,未同步的为532

# /usr/local/tfs/bin/ssm -s 192.168.1.12:8108
show > block

wKiom1Q16GbQ2QoJAARj32KzRmY735.jpg


五:数据比对

# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108
show > block

wKioL1Q16MCS0skoAALE892MctE254.jpg

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

wKioL1Q16PyyvYxgAAMlfB5AXRI249.jpg


实际上采用nginx提供的模块直接访问这些文件都是可以的。

wKiom1Q16Ofwk3wAAAFdJEyILmA935.jpg


wKioL1Q16SuwqBFBAASi-0mSKXU326.jpg

本文出自 “斩月” 博客,谢绝转载!

TFS数据迁移之sync_by_blk