本文将介绍和演示部分data server故障条件下的tfs数据写入问题。
环境介绍:
Tfs name server vip: 192.168.1.229
Tfs namerver 1: 192.168.1.225
Tfs namerver 2: 192.168.1.226
Data server 1: 192.168.1.226
Data server 2: 192.168.1.227
Data server 3: 192.168.1.228
一:下列配置环境下,模拟单台data server 故障
1
2
|
max_replication = 3 #Block 最大备份数, default: 2
min_replication = 2 #Block 最小备份数, default: 2
|
修改完成后重启name server服务,本文中测试均采用一个data server 挂载点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
225服务器:
# /usr/local/tfs/scripts/tfs check_ns
nameserver is running pid: 1061
226服务器:
# /usr/local/tfs/scripts/tfs check_ns
nameserver is running pid: 32506
# /usr/local/tfs/scripts/tfs check_ds
dataserver [ 1 ] is running
227服务器:
# /usr/local/tfs/scripts/tfs check_ds
dataserver [ 1 ] is running
228服务器:
# /usr/local/tfs/scripts/tfs check_ds
dataserver [ 1 ] is running
|
使用ssm工具查看当前的状态:
1
2
|
# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108
show > server -m
|
1
2
3
4
|
写入测试:
# /usr/local/tfs/bin/tfstool -s 192.168.1.229:8108
TFS> put /etc/security/limits.conf
put /etc/security/limits.conf => T1RtZTByJT1RCvBVdK success.
|
1
2
3
4
5
6
|
关闭226的data server后再次写入测试
# /usr/local/tfs/scripts/tfs stop_ds 1
dataserver 1 exit SUCCESSFULLY
TFS> put /etc/security/limits.conf //发现写入失败
put /etc/security/limits.conf => fail.
|
1
|
show > server -m //发现找不到master块
|
二:下列配置环境下,重新测试
1
2
3
4
5
|
max_replication = 2 #Block 最大备份数, default: 2
min_replication = 2 #Block 最小备份数, default: 2
# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108
show > server -m
|
1
2
|
TFS> put /etc/security/limits.conf //可成功写入
put /etc/security/limits.conf => T1btxTByhT1RCvBVdK success.
|
上传文件成功后,tfs会返回三个重要的参数:block_id,file_id和filename。我们可以通过admintool工具查询block_id在哪些dataserver上,然后用ds_clinet工具列出对应block上的所有的file_id和filename
1
2
3
4
5
6
|
# /usr/local/tfs/bin/admintool -s 192.168.1.229:8108
TFS > listblk 1011
list block 1011 success.
------block: 1011, has 2 replicas------
block: 1011, (0)th server: 192.168.1.226:10000
block: 1011, (1)th server: 192.168.1.227:9998
|
三:总结
1: 如果想要成功写入,那么实际存活的data server的数量要大于或等于max_replication的设置值。例如3台data server存活情况下,如果max_replication参数设置为3,那么data server 宕机一台,则会写入失败。
2: 当只存在一台data server的情况下,max_replication和min_replication参数值均要设置为1,否则将会写入失败。
3: 猜想tfs的数据容灾机制
例如:3台data server服务器,每台服务器提供三个mount point,一个mount point 可写入数据为200G; max_replication和min_replication参数均设置为2。那么实际上,总的tfs可用空间应该为200G * 3 * 3 = 1.8T 。
由于max_replication和min_replication参数均设置为2,也就是说数据至少要存两份。由此得出实际tfs的可用空间为900G。
本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/1559618如需转载请自行联系原作者
ylw6006