TFS的安装,部署请参考[TFS文档-安装篇][1]、[TFS文档-部署篇][2],本文主要介绍如何使用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

ref:
2014-01-05
blog.yunnotes.net

0 回复
需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。