Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3388683
  • 博文数量: 251
  • 博客积分: 11197
  • 博客等级: 上将
  • 技术积分: 6852
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-05 14:41
个人简介

@HUST张友东 work@taobao zyd_com@126.com

文章分类

全部博文(251)

文章存档

2014年(10)

2013年(20)

2012年(22)

2011年(74)

2010年(98)

2009年(27)

分类: LINUX

2014-01-09 09:50:43

作者:zyd_com@126.com
博客:ydzhang.blog.chinaunix.net | blog.yunnotes.net
微博:http://weibo.com/zhangyoudong/

TFS的安装,部署请参考TFS文档-安装篇TFS文档-部署篇,本文主要介绍如何使用TFS提供的工具来管理、运维、诊断集群,主要包括tfstool、ssm、ds_client、admintool等,安装tfs后,所有的工具都在tfs-home/bin目录下,每个命令都包含help命令,用于打印帮助信息。

tfstool

提供写文件、读文件、删除文件的命令支持,使用方式如下:

tfstool -s ns-ip:port 进入TFS命令行  tfstool -s ns-ip:port -i "command"执行某个命令

put

用法:put local_file [tfs_name] [suffix] 描述:上传文件到TFS, TFS会返回为上传文件生成的文件名;如果是新建文件tfs_name可省略,如果是更新文件则需带上待更新文件的tfs_name

get

用法:get tfs_name local_file 描述:从TFS下载tfs_name对应的文件到本地local_file

rm

用法:rm tfs_name 描述:从TFS删除文件

stat

用法:stat tfs_name 描述:获取tfs文件的状态信息,包括大小、创建时间、修改时间等 

statblk

用法:statblk block_id 描述:获取block的元信息,如block里的文件数,删除文件数等

listblock

用法:listblock block_id 描述:列出该block所在DataServer列表

lsf

用法:lsf block_id [detail] 描述:列出指定block上的所有文件名,detail代表列出文件的详细元信息

batch

用法:batch file_name 描述:将所有需要执行的命令放到一个文件,使用batch命令可以批量执行文件里的所有命令

ssm

提供获取集群所有block、server、machine的工具,使用方式如下:

ssm -s ns-ip:port 进入TFS命令行  ssm -s ns-ip:port -i "command"直接执行某条命令。

block

用法:block [-d block_id] [-s] [-c] [-i]
描述:获取集群上所有block的信息
     -d block_id 指定获取某个block的状态
     -s 获取block副本对应的server信息
     -c 指定获取block信息的总次数 -i 指定多次获取的时间间隔 

server/machine server以DS为单位展示信息,machine以物理机器为单位展示

用法:server [-n num] [-r server_ip] [-b] [-w] [-m] [-c] [-i]
描述:获取集群内DS的信息
     -b 列出每个DS所有的block
     -w 列出每个DS上可写的block
     -m 列出每个DS上自身为master副本的block 

batch

使用方式与tfstool相同

admintool

提供针对TFS集群的管理工具,使用方式如下:

admintool -s ns-ip:port 进入TFS命令行  admintool -s ns-ip:port -i "command"直接执行某条命令

param

用法:param [param_name] [set value]
描述:在线获取、修改nameserver的配置项。直接param会列出所有可修改的参数;param param_name会列出对应配置项的值;param param_name set value会将param_name项的值设置为value。

其中有个特殊的项是plan_run_flag,是用于控制NS后台开启哪些任务,通过位图来控制。1代表复制任务、2代表迁移任务、4代表压缩任务、8代表删除任务,默认为15,也就是开启所有的任务。除了复制任务必须开启保证数据安全,迁移和压缩都可以在必要时临时关掉。

enum PlanRunFlag                                                                                               {   
  PLAN_RUN_FLAG_NONE = 0,
  PLAN_RUN_FLAG_REPLICATE = 1,
  PLAN_RUN_FLAG_MOVE = 1 << 1,
  PLAN_RUN_FLAG_COMPACT = 1 << 2,
  PLAN_RUN_FLAG_DELETE = 1 << 3
};   

clearsystemtable

用法:clearsystemtable type [1, 2, 4, 8] 描述:1: 清空NS任务列表; 2:清空正在写的block列表【很少用】 3:清空汇报队列; 4. 清空待删除block列表

getbpr/setbpr

获取和设置NS上的blance percent,假设为0.050000,代表DS的容量偏离平均值的5%就认为需要均衡了;该值越小,负载均衡越敏感。
用法:getbpr | setbpr value1 value2  【bpr是blance pecent的缩写,value1为整数部分,value2为小数部分(6位)】
描述:要将blance percent设置为0.010000,使用setbpr 0 010000

removeblk

用法:removeblk block_id 描述:从集群中删除block_id对应的block

replblk、compactblk

这两个命令主要用于开发过程中手动发起复制、迁移、压缩任务,运维过程中很少用到。

batch

使用方式与tfstool相同

convert_name/reverse_name

TFS的文件名是由cluster_id、block_id、file_id编码而成,从文件名里是可以解析出block_id、file_id。

convert_name将(block_id, file_id)转化为TFS文件名; reverse_name从TFS文件名解析出(block_id,file_id)。

convert_name block_id file_id
reverse_name tfs_name

ds_client

提供直接从指定dataserver获取block,文件信息的接口,使用方式如下:

ds_client -s ds-ip:port 进入TFS命令行  ds_client -s ds-ip:port -i "command"直接执行某条命令

list_block

用法:list_block type [1, 2, 4] 描述:1 - 获取DS上所有的blockid列表; 2 - 获取DS上逻辑块==>物理块的映射关系表; 4 - 获取DS上所有block的详细元信息

get_block_info

用法:get_block_info block_id 描述:获取block的元信息

remove_block

用法:remove_block block_id

描述:删除指定的block

list_file

用法:list_file block_id 描述:获取block上所有的文件列表

read_file_info

用法:read_file_info block_id file_id 描述:读取有(block_id, file_id)表示的文件元信息

read_file_data

用法:read_file_data block_id file_id local_file 描述:读取(block_id, file_id)表示的文件数据,存储到本地local_file文件

unlink_file

用法:unlink_file block_id file_id 描述:删除(block_id, file_id)表示的文件

batch

使用方式与tfstool相同

format_file_system/clear_file_system/read_super_block

format_file_system/clear_file_system/read_super_block格式化TFS、清除TFS格式化的数据、读取格式化后的超级块信息

format_file_system -f ds_conf_path -i index
clear_file_system -f ds_conf_path -i index
read_super_block -f ds_conf_path -i index
阅读(11750) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

fortfs2016-09-29 15:09:07

fortfs:东哥,专门注册了chinaunix的会员来向你取经~。
最近在搭建tfs,使用tfstool上传put 文件的时候总是出错
ERROR process_success_response (tfs_file.cpp:672) [140529788323648] get zero response. client id: 0x826630, phase: 3  
INFO ient_manager.cpp:222 [140566001997568] client not found, id: 5, pcode: 1
但是通过查看block能找到刚才上传的文件,而且,也可以get下来
另外使用ssm工具show的时候总是抛出buffer overflow detected 的bug,不管输入任何东西都会抛出这个错误,求指点~,谢谢  。另外,tfs的阿里旺旺账号多少呢,方便告知吗

put 的问题已经解决了,犯了个“高级”错误~,ns.conf 里的ip_addr 配错了,而下面的ip_addr_list配正确了,可能就会出现我上面说的put问题吧。
另外,ssm工具还是有buffer overflow detected的bug啊,这个是编译器的原因吗,我用的gcc 4.6编译的

回复 | 举报

fortfs2016-09-29 11:42:26

东哥,专门注册了chinaunix的会员来向你取经~。
最近在搭建tfs,使用tfstool上传put 文件的时候总是出错
ERROR process_success_response (tfs_file.cpp:672) [140529788323648] get zero response. client id: 0x826630, phase: 3  
INFO ient_manager.cpp:222 [140566001997568] client not found, id: 5, pcode: 1
但是通过查看block能找到刚才上传的文件,而且,也可以get下来
另外使用ssm工具show的时候总是抛出buffer overflow detected 的bug,不管输入任何东西都会抛出这个错误,求指点~,谢谢  。另外,tfs的阿里旺旺账号多少呢,方便告知吗

piaobo1342016-05-17 15:31:47

请问一下有没有recover_disk_data_to_cluster这个工具的使用方法介绍一下,我是新手,约详细越好,谢谢东哥!