环境信息说明
共三台服务器:s150,s151,s152
s150: 作为NS s151: 作为DS s152: 作为DS
DS 准备工作
- 首先要准备好独立的磁盘(s151和s152),磁盘空间至少要有4G以上
Disk /dev/sda: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 652 5237158+ 83 Linux
- 格式化磁盘
mkfs.ext4 /dev/sda1
- 配置环境信息
运行时,提示:error while loading shared libraries: libjemalloc.so.1: cannot open shared object file: No such file or directory
vi ~/.bash_profile //添加如下内容 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH
NS配置与启动
主要调整如下参数
[public] log_level=warn port = 8108 work_dir=/home/yuyj/tfs dev_name=eth0 ip_addr = 192.168.168.150 //本将IP [nameserver] ip_addr_list = 192.168.168.150|192.168.168.153 //其中153作为备NS group_mask = 255.255.255.255 block_max_size = 83886080 //这个单位是字节,表示80MB max_replication = 2 min_replication = 2
配置完成后,通过如下命令启动:
./scripts/tfs start_ns
通过如下命令查看是否正常:
[root@s150 tfs]# netstat -nap | grep -e '8108' tcp 0 0 0.0.0.0:8108 0.0.0.0:* LISTEN 11242/nameserver
DS配置与启动
配置ds.conf参数
[public] log_level=warn port = 9998 //本机DS端口 work_dir=/home/yuyj/tfs dev_name=eth0 ip_addr = 192.168.168.151 //本机IP [dataserver] ip_addr = 192.168.168.150 //NS对应的IP ip_addr_list = 192.168.168.150|192.168.168.153 //NS对应的IP list port = 8108 //NS对应的端口 backup_type = 1 backup_path = /home/yuyj/mnt/tfs/data/tfs mount_name = /home/yuyj/mnt/tfs/data/tfs mount_maxsize = 3145728 //单位KB,挂载的容量,必须要小于实际的/dev/sda1容量,但需要大于2.5G,这里配置为3G(磁盘总量为5G) base_filesystem_type = 1 mainblock_size = 83886080 //单位字节,即80MB,需要配<=NS中的block_max_size,但最好配置相同
配置ads.conf参数
[public] log_level=warn work_dir=/home/yuyj/tfs dev_name= eth0 ip_addr = 192.168.168.151 //本机器IP [adminserver] ds_index_list = 1 //根据自己实际部署的磁盘数量来定义 [nameserver] ip_addr = 192.168.168.150 //NS对应IP port = 8108 //NS对应端口 [dataserver] port = 9998 //监控DS对应端口 lock_file = /home/yuyj/tfs/logs/dataserver mount_name = /home/yuyj/mnt/tfs/data/tfs //监控DS对应挂载点
格式化TFS文件系统及启动:
如果你是第一次启动DS,需要确保对应的挂载点已经格式化,详细命令:
./scripts/stfs format 1 //其中的1对应挂载点索引![]()
启动
./scripts/tfs admin_ns [root@s151 tfs]# netstat -nap | grep -e '9998' tcp 0 0 0.0.0.0:9998 0.0.0.0:* LISTEN 16994/dataserver
监控
TFS自带了./bin/ssm命令可以监控集群机器状态
ssm -s 192.168.168.150:8108 >help show > h supported command: block [-n num] [-d block_id] [-s] [-c] [-i] [> filename] show block info. -n the number of one fetch, default 1024, optional. -d block id, optional. -s print server list, optional. -c execute times, default 1, optional. -i interval time, default 2, optional. > redirect to file, optional. server [-n num] [-r server_ip] [-b] [-w] [-m] [-c] [-i] [> filename] show server info. -n the number of one fetch, default 1024, optional. -r server ip string, when parameter -n is invalid. -b print block list, optional. -w print writable block list, optional. -m print master block list, optional. -c execute times, optional. -i interval time, optional. > redirect to file, optional. machine [-a] [-p] [-f] [-c] [-i] [> filename] show machine info. -a print all info, optional. -p print part of infos, optional. -f print stat of certain infos, for monitor, optional. -c execute times, optional. -i interval > redirect to file, optional. batch exec cmd in batch quit(q) quit exit exit help(h) show help info
下图显示了当前集群中DS的部署情况:
show > machine -a SERVER_IP NUMS UCAP / TCAP = UR BLKCNT LOAD TOTAL_WRITE TOTAL_READ LAST_WRITE LAST_READ MAX_WRITE MAX_READ --------------- ---- ------------------ -------- ---- ----------- ---------- ---------- --------- -------- --------- 192.168.168.151 1 727.2M 2.92G 24% 9 10 0 0 0 0 0 0 0 0 0 0 0 0 192.168.168.152 1 1.66G 2.92G 56% 21 10 0 0 0 0 0 0 0 0 0 0 0 0 Total : 2 2 2.37G 5.84G 40% 30 10 0 0 0 0 0 0 0 0
文件操作
- 上传
./bin/tfstool 命令,提供了常规的文件测试操作
./bin/tfstool -s 192.168.168.150:8108 上传文件 TFS> cd /home/yuyj TFS> put test.jpg
- 下载
根据上图可知,文件被上传至192.168.168.151:9998,对应的blockid:253
./bin/ds_client -d 192.168.168.151:9998 DataServer>list_file 253 read_file_data 253 1 /tmp/test.jpg //其中253为blockid,1为fileId