tfs分布式文件系统集群

两台存储节点(4个DS进程)为例,部署拓扑图发下所示:

安装tfs(centos7.6)

安装依赖的软件包

  • automake TFS基于automake工具构建
  • libtool automake需要使用libtool
  • realine 用于命令行编辑的库
  • libz-devel 用于数据压缩/解压缩
  • uuid-devel 用于生成全局唯一ID
  • tcmalloc google的内存管理库
    • 下载源码安装
    • apt-get install libgoogle-perftools-dev
    • yum install google-perftools.x86_64

下载源码

安装git工具

yum install git

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# git clone https://github.com/yage99/tfs.git
[root@localhost src]# cd tfs/

安装tb-common-utils

TFS使用tb-common-utils软件包,tb-common-utils包含淘宝使用的基础系统库tbsys和网络库tbnet两个组件;安装tb-common-utils前需要设置环境变量TBLIB_ROOT,tbsys和tbnet将会被安装TBLIB_ROOT对应的路径(必须是绝对路径)下,TFS会在这个路径下查找tbsys、tbnet头文件和库。

设置TBLIB_ROOT环境变量

在~/.bash_profile文件中加入,export TBLIB_ROOT=path_to_tbutil , 然后执行source ~/.bash_profile
[root@localhost tb-common-utils]# vi /root/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export TBLIB_ROOT=/usr/local/src/tfs/tb-common-utils

 [root@localhost tb-common-utils]# source ~/.bash_profile
[root@localhost tb-common-utils]# echo $TBLIB_ROOT
/usr/local/tfs/tb-common-utils

编译安装

[root@localhost tb-common-utils]# sh build.sh 

提示以下错误,没有安装c++编译器

安装c++编译器

[root@localhost tb-common-utils]# yum install gcc-c++

重新运行[root@localhost tb-common-utils]# sh build.sh 

安装TFS

编译安装

[root@localhost tfs]# scripts/install_centos7.sh 

默认安装在/root/tfs_bin/目录下。

布署

修改nameserver ns.conf配置文件

[public]
#log file size default 1GB
log_size=1073741824

#log file num default 64
log_num = 64 

#log file level default debug
log_level=info

#main queue size default 10240
task_max_queue_size = 10240

#listen port
port = 8100

#work directoy
work_dir=/root/tfs_bin

#device name
dev_name= ens33

#work thread count default 4
thread_count =32 

#ip addr(vip)
ip_addr = 192.168.0.201

[nameserver]

safe_mode_time = 360

ip_addr_list = 192.168.0.201|192.168.0.2

group_mask = 255.255.255.255

#second
max_write_timeout = 3

#max_task_in_machine_nums = 14

#cleanup_write_timeout_threshold = 40960

# cluster id defalut 1
cluster_id = 1 

# block use ratio
block_max_use_ratio = 98

# bytes
block_max_size = 75497472 

#
max_replication = 2 

# block lost, replicate ratio
replicate_ratio = 50

max_write_filecount = 64 

# use capacity ratio
use_capacity_ratio = 96

#heart interval time(seconds)
heart_interval = 4

# object dead max time(seconds) default
object_dead_max_time = 300

#
object_clear_max_time = 180 

heart_thread_count = 4 

heart_max_queue_size = 2048

report_block_thread_count = 6

report_block_max_queue_size = 32

report_block_hour_range = 2~4

#day
report_block_time_interval = 1

#heart_interval * 2
#report_block_expired_time = 4

#replicate block wait time
repl_wait_time = 180

compact_delete_ratio =  10  

compact_max_load = 200

compact_hour_range = 1~10

dump_stat_info_interval = 60000000 

balance_percent = 0.05

add_primary_block_count = 3

task_percent_sec_size = 200 

oplog_sync_max_slots_num = 1024

oplog_sync_thread_num = 1

group_count = 1

group_seq  = 0

discard_newblk_safe_mode_time = 360 

choose_target_server_random_max_num = 128

#task_expired_time = 120

dataserver1的ds.conf配置文件

[public]
#log file size default 1GB
log_size=1073741824

#log file num default 64
log_num = 64 

#log file level default debug
log_level=info

#main queue size default 10240
task_max_queue_size = 10240

#listen port
port = 8200 

#work directoy
work_dir=/root/tfs_bin

#device name
dev_name= ens33

#work thread count default 4
thread_count = 32 

#ip addr
ip_addr = 192.168.0.203

[dataserver]

#nameserver ip addr(vip)
ip_addr = 192.168.0.201

ip_addr_list = 192.168.0.201

#nameserver port
port = 8100

# slave cluster ns ip:port
# slave_nsip = 192.168.0.10:8100

#heart interval time(seconds)
heart_interval = 2

check_interval = 2

#expire_datafile_time = 90

#expire_clonedblock_time = 180

#expire_compactblock_time = 600

replicate_threadcount = 1

#write_sync_flag = 1

block_max_size = 75497472 

dump_visit_stat_interval = 60

#max_io_warning_time = 0

backup_type = 1

#backup_path = /home/admin/tfs

#max_data_file_nums = 50

#max_crc_error_nums = 4

#max_eio_error_nums_ = 6

#expire_checkblock_time = 86000

#max_cpu_usage = 60

#dump_stat_info_interval = 60000000

mount_name = /data/disk

# KB
mount_maxsize = 9000000

base_filesystem_type = 1

superblock_reserve = 0

# bytes
avg_file_size = 15360

# bytes
mainblock_size = 75497472 

# bytes
extblock_size = 4194304

block_ratio = 0.5

hash_slot_ratio = 0.5

 

# cd ~/tfs_bin
# ./script/tfs start_ns  或者 ./bin/nameserver -f conf/ns.conf -d

 如果没有提示错误,则NS就已经在后台开始运行了,可通过ps查看相应进行,或进入logs下,查看nameserver.log,如包含“nameserver running”则说明启动正常

 dataserver2的ds.conf配置文件和dataserver1相同

在两台机器上分别进行如下操作,准备好数据目录

# cd ~/tfs_bin
# ./script/stfs format 1  // 结果会在命令行提示
# ./script/stfs format 2
 以上两条命令也可合并为 ./script/stfs format 1-2 或 ./script/stfs format 1,2
 如果要清理格式化产生的数据,将上述命令中format换成clear即可

格式化成功后,会发现/data/disk1,/data/disk2下面产生了一堆以数字命名的文件(1-n),因为TFS的block文件是以数字命名的,从1开始递增编号。 

[root@dataserver1 ~]# ll -h /data/disk1/
total 7.7G
-rw-r--r--. 1 root root  72M Feb 23 19:57 1
-rw-r--r--. 1 root root  72M Feb 22 01:30 10
-rw-r--r--. 1 root root  72M Feb 22 01:32 100
-rw-r--r--. 1 root root  72M Feb 22 01:32 101
-rw-r--r--. 1 root root  72M Feb 22 01:32 102
-rw-r--r--. 1 root root  72M Feb 22 01:32 103
-rw-r--r--. 1 root root  72M Feb 22 01:32 104
-rw-r--r--. 1 root root  72M Feb 22 01:32 105
-rw-r--r--. 1 root root  72M Feb 22 01:32 106
-rw-r--r--. 1 root root  72M Feb 22 01:32 107
-rw-r--r--. 1 root root  72M Feb 22 01:29 108
-rw-r--r--. 1 root root  72M Feb 22 01:29 109
-rw-r--r--. 1 root root  72M Feb 23 22:18 11
-rw-r--r--. 1 root root  72M Feb 22 01:30 12
-rw-r--r--. 1 root root  72M Feb 22 01:30 13
-rw-r--r--. 1 root root  72M Feb 22 01:30 14
-rw-r--r--. 1 root root  72M Feb 22 01:30 15
-rw-r--r--. 1 root root  72M Feb 22 01:30 16
-rw-r--r--. 1 root root  72M Feb 22 03:55 17
-rw-r--r--. 1 root root  72M Feb 22 04:18 18
-rw-r--r--. 1 root root  72M Feb 23 22:33 19
-rw-r--r--. 1 root root  72M Feb 23 19:54 2
-rw-r--r--. 1 root root  72M Feb 22 04:20 20
-rw-r--r--. 1 root root  72M Feb 22 01:30 21
-rw-r--r--. 1 root root  72M Feb 22 04:23 22
-rw-r--r--. 1 root root  72M Feb 22 01:30 23
-rw-r--r--. 1 root root  72M Feb 22 01:30 24
-rw-r--r--. 1 root root  72M Feb 22 01:30 25
-rw-r--r--. 1 root root  72M Feb 22 01:30 26
-rw-r--r--. 1 root root  72M Feb 22 01:30 27
-rw-r--r--. 1 root root  72M Feb 22 01:30 28
-rw-r--r--. 1 root root  72M Feb 22 01:30 29
-rw-r--r--. 1 root root  72M Feb 22 01:30 3
-rw-r--r--. 1 root root  72M Feb 22 01:30 30
-rw-r--r--. 1 root root  72M Feb 22 01:30 31
-rw-r--r--. 1 root root  72M Feb 22 01:30 32
-rw-r--r--. 1 root root  72M Feb 22 01:30 33
-rw-r--r--. 1 root root  72M Feb 22 01:30 34
-rw-r--r--. 1 root root  72M Feb 22 01:30 35
-rw-r--r--. 1 root root  72M Feb 22 01:30 36
-rw-r--r--. 1 root root  72M Feb 22 01:31 37
-rw-r--r--. 1 root root  72M Feb 22 01:31 38
-rw-r--r--. 1 root root  72M Feb 22 01:31 39
-rw-r--r--. 1 root root  72M Feb 23 04:39 4
-rw-r--r--. 1 root root  72M Feb 22 01:31 40
-rw-r--r--. 1 root root  72M Feb 22 01:31 41
-rw-r--r--. 1 root root  72M Feb 22 01:31 42
-rw-r--r--. 1 root root  72M Feb 22 01:31 43
-rw-r--r--. 1 root root  72M Feb 22 01:31 44
-rw-r--r--. 1 root root  72M Feb 22 01:31 45
-rw-r--r--. 1 root root  72M Feb 22 01:31 46
-rw-r--r--. 1 root root  72M Feb 22 01:31 47
-rw-r--r--. 1 root root  72M Feb 22 01:31 48
-rw-r--r--. 1 root root  72M Feb 22 01:31 49
-rw-r--r--. 1 root root  72M Feb 23 20:04 5
-rw-r--r--. 1 root root  72M Feb 22 01:31 50
-rw-r--r--. 1 root root  72M Feb 22 01:31 51
-rw-r--r--. 1 root root  72M Feb 22 01:31 52
-rw-r--r--. 1 root root  72M Feb 22 01:31 53
-rw-r--r--. 1 root root  72M Feb 22 01:31 54
-rw-r--r--. 1 root root  72M Feb 22 01:31 55
-rw-r--r--. 1 root root  72M Feb 22 01:31 56
-rw-r--r--. 1 root root  72M Feb 22 01:31 57
-rw-r--r--. 1 root root  72M Feb 22 01:31 58
-rw-r--r--. 1 root root  72M Feb 22 01:31 59
-rw-r--r--. 1 root root  72M Feb 22 01:30 6
-rw-r--r--. 1 root root  72M Feb 22 01:31 60
-rw-r--r--. 1 root root  72M Feb 22 01:31 61
-rw-r--r--. 1 root root  72M Feb 22 01:31 62
-rw-r--r--. 1 root root  72M Feb 22 01:31 63
-rw-r--r--. 1 root root  72M Feb 22 01:31 64
-rw-r--r--. 1 root root  72M Feb 22 01:31 65
-rw-r--r--. 1 root root  72M Feb 22 01:31 66
-rw-r--r--. 1 root root  72M Feb 22 01:31 67
-rw-r--r--. 1 root root  72M Feb 22 01:31 68
-rw-r--r--. 1 root root  72M Feb 22 01:31 69
-rw-r--r--. 1 root root  72M Feb 23 21:43 7
-rw-r--r--. 1 root root  72M Feb 22 01:31 70
-rw-r--r--. 1 root root  72M Feb 22 01:31 71
-rw-r--r--. 1 root root  72M Feb 22 01:31 72
-rw-r--r--. 1 root root  72M Feb 22 01:31 73
-rw-r--r--. 1 root root  72M Feb 22 01:31 74
-rw-r--r--. 1 root root  72M Feb 22 01:31 75
-rw-r--r--. 1 root root  72M Feb 22 01:31 76
-rw-r--r--. 1 root root  72M Feb 22 01:32 77
-rw-r--r--. 1 root root  72M Feb 22 01:32 78
-rw-r--r--. 1 root root  72M Feb 22 01:32 79
-rw-r--r--. 1 root root  72M Feb 23 22:32 8
-rw-r--r--. 1 root root  72M Feb 22 01:32 80
-rw-r--r--. 1 root root  72M Feb 22 01:32 81
-rw-r--r--. 1 root root  72M Feb 22 01:32 82
-rw-r--r--. 1 root root  72M Feb 22 01:32 83
-rw-r--r--. 1 root root  72M Feb 22 01:32 84
-rw-r--r--. 1 root root  72M Feb 22 01:32 85
-rw-r--r--. 1 root root  72M Feb 22 01:32 86
-rw-r--r--. 1 root root  72M Feb 22 01:32 87
-rw-r--r--. 1 root root  72M Feb 22 01:32 88
-rw-r--r--. 1 root root  72M Feb 22 01:32 89
-rw-r--r--. 1 root root  72M Feb 22 04:23 9
-rw-r--r--. 1 root root  72M Feb 22 01:32 90
-rw-r--r--. 1 root root  72M Feb 22 01:32 91
-rw-r--r--. 1 root root  72M Feb 22 01:32 92
-rw-r--r--. 1 root root  72M Feb 22 01:32 93
-rw-r--r--. 1 root root  72M Feb 22 01:32 94
-rw-r--r--. 1 root root  72M Feb 22 01:32 95
-rw-r--r--. 1 root root  72M Feb 22 01:32 96
-rw-r--r--. 1 root root  72M Feb 22 01:32 97
-rw-r--r--. 1 root root  72M Feb 22 01:32 98
-rw-r--r--. 1 root root  72M Feb 22 01:32 99
drwxr-xr-x. 2 root root 4.0K Feb 22 01:29 extend
-rw-r--r--. 1 root root  488 Feb 22 01:32 fs_super
drwxr-xr-x. 2 root root 4.0K Feb 22 01:32 index
drwx------  2 root root  16K Feb 22 00:10 lost+found

 

 在两台机器上,启动DS服务

# cd ~/tfs_bin
# ./script/tfs start_ds 1-2  // 序号的使用与stfs类似,可通过","分隔序号,通过"-"指定范围序列
  或./bin/dataserver -f conf/ds.conf -i 1 -d  (-i 指定序号)

 

分别在datqasever1和dataserver2启动ds服务

[root@dataserver1 ~]# cd tfs_bin/
[root@dataserver1 tfs_bin]# scripts/tfs start_ds 1-2
 dataserver 1 is up SUCCESSFULLY pid: 10804 
 dataserver 2 is up SUCCESSFULLY pid: 10840 

 通过ps可查看DS是否正常启动, 也可进入logs目录,查看dataserver_i.log(i用相应的序号代替),如果包含“dataservice start”,则说明DS启动正常。

 

 在nameserver运行ssm命令,查看的dataserver的一些基本情况

[root@nameserver tfs_bin]# bin/ssm -s 192.168.0.201:8100

 server -b  随机列出dataserver的block块

show > server -b
SERVER_ADDR           CNT BLOCK 
192.168.0.203:8200    107    563   564   565   571   574   578   579   580   581   585
                            591   592   593   594   597   598   599   605   607   608
                            609   610   611   612   619   620   621   622   623   626
                            627   628   632   634   635   637   640   641   642   643
                            645   647   648   652   653   654   659   660   663   664
                            665   666   670   672   677   678   679   682   683   684
                            686   690   695   696   697   699   701   702   703   705
                            706   707   708   709   710   711   719   720   722   727
                            728   729   732   734   736   739   742   745   747   750
                            751   752   754   755   760   761   762   766   767   770
                            771   773   779   780   781   782   783
192.168.0.204:8200    107    557   558   559   564   566   567   568   569   573   574
                            575   576   581   586   587   588   593   594   595   596
                            598   599   600   601   606   608   611   612   617   618
                            621   623   624   627   628   629   634   635   636   640
                            643   644   645   647   650   654   655   656   657   659
                            664   666   667   670   671   672   677   679   685   686
                            687   688   689   692   695   698   699   700   704   709
                            710   711   713   714   715   716   717   718   722   727
                            731   735   736   737   740   741   742   747   748   749
                            753   754   755   756   761   762   763   767   772   773
                            774   775   779   780   781   782   783
192.168.0.203:8202    109    566   567   568   569   570   572   573   575   576   577
                            582   583   584   586   587   588   589   590   595   596
                            600   601   602   603   604   606   613   614   615   616
                            617   618   624   625   629   630   631   633   636   638
                            639   644   646   649   650   651   655   656   657   658
                            661   662   667   668   669   671   673   674   675   676
                            680   681   685   687   688   689   691   692   693   694
                            698   700   704   712   713   714   715   716   717   718
                            721   723   724   725   726   730   731   733   737   738
                            740   741   743   744   748   753   756   757   758   759
                            763   764   768   769   772   774   775   776   778
192.168.0.204:8202    107    560   561   562   563   570   571   572   577   579   580
                            583   584   589   590   591   592   597   602   603   604
                            605   607   609   610   613   614   615   616   619   620
                            622   626   631   632   633   637   638   639   641   646
                            648   649   651   652   653   658   660   661   662   663
                            665   668   669   673   675   676   678   680   681   682
                            683   684   690   691   693   694   696   697   701   702
                            705   707   708   712   719   720   721   725   726   728
                            729   730   732   733   734   738   743   744   745   746
                            750   751   752   757   758   759   760   764   765   766
                            768   769   770   771   776   777   778

 server -w 随机列出dataserver的可写块  

show > server -w
SERVER_ADDR           CNT WRITABLE BLOCK
192.168.0.203:8200     57    564   565   571   574   579   580   581   591   592   597
                            598   607   608   609   611   612   620   621   623   626
                            627   632   634   637   640   642   643   645   652   653
                            659   663   664   666   672   679   683   684   699   703
                            705   706   707   710   719   720   722   728   734   739
                            752   754   755   761   780   781   782
192.168.0.204:8200     44    557   558   567   569   573   586   593   594   599   601
                            606   618   624   628   635   644   647   654   655   657
                            670   671   677   685   686   695   700   709   711   715
                            716   727   735   736   737   742   747   756   762   763
                            767   773   779   783
192.168.0.203:8202     54    566   568   570   575   576   577   587   588   595   596
                            600   616   617   625   629   630   631   636   638   650
                            656   661   667   668   674   676   687   688   689   691
                            692   694   698   704   713   714   717   718   721   725
                            730   731   733   740   741   743   748   753   758   764
                            768   772   774   775
192.168.0.204:8202     62    560   562   563   572   583   584   589   590   602   603
                            604   605   610   613   614   615   619   622   633   639
                            641   646   648   649   651   658   660   662   665   669
                            673   675   678   680   681   682   690   693   696   697
                            701   702   708   712   726   729   732   738   744   745
                            750   751   757   759   760   766   769   770   771   776
                            777   778

 machine -a 列出dataserver使用报告

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.0.203     2 16.88G  17.03G  99%     216  10      0     0     0     0     0     0    0     0   0     0   0     0
  192.168.0.204     2 16.72G  17.03G  98%     214  10      0     0     0     0     0     0    0     0   0     0   0     0
Total : 2          4 33.59G  34.06G  98%     430  10      0     0     0     0     0     0    0     0

 测试上传一张图片,1,jpg,大小为258229。

使用tfstool上传文件

[root@nameserver tfs_bin]# bin/tfstool -s 192.168.0.201:8100

查看块存了什么?

[root@dataserver1 tfs_bin]# bin/ds_client -d 192.168.0.204:8200
DataServer> list_file 567
[2021-02-23 00:54:46] DEBUG base_packet_factory.cpp:48 [140544897247168] pcode: 14, length: 12
[2021-02-23 00:54:46] DEBUG socket.cpp:113 [140544897247168] 打开, fd=4, addr=192.168.0.204:8200
[2021-02-23 00:54:46] INFO  transport.cpp:394 [140544897247168] ADDIOC, SOCK: 4, 192.168.0.204:8200, RON: 1, WON: 1, IOCount:1, IOC:0x2044e40
[2021-02-23 00:54:46] DEBUG channelpool.cpp:57 [140544897247168] 分配的Channel总数:25 (48)
FileList Size = 1
FILE_NAME                  FILE_ID           OFFSET       SIZE        USIZE    M_TIME               C_TIME      FLAG       CRC
---------- ---------- ---------- ---------- ----------  ---------- ---------- ---------- ---------- ---------- ---------- ----------
T0BthTByJT1RCvBVdK                    1          0     147067     147103 2021-02-23 00:51:47 2021-02-23 00:51:47 00 3923474054
---------- ---------- ---------- ---------- ----------  ---------- ---------- ---------- ---------- ---------- ---------- ----------
FILE_NAME                  FILE_ID           OFFSET       SIZE        USIZE    M_TIME               C_TIME      FLAG       CRC
Total : 1 files

 取出块中的文件

nginx-tfs(webservice 安装)

  1. TFS模块使用了一个开源的JSON库来支持JSON,请先安装yajl-2.0.1。

  2. 下载nginxtengine

  3. ./configure --add-module=/path/to/nginx-tfs

  4. make && make install

安装yajl
[root@localhost src]# git clone https://github.com/lloyd/yajl


[root@localhost yajl]# yum install cmake

make

make install

 

[root@localhost src]# git clone https://github.com/alibaba/nginx-tfs

[root@localhost src]# wget http://nginx.org/download/nginx-1.3.14.tar.gz(新版本编译不通过1.16.1)

[root@localhost nginx-1.16.1]# yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

[root@localhost nginx-1.16.1]# ./configure --add-module=/usr/local/src/nginx-tfs

[root@localhost nginx-1.16.1]# .make && make install

nginx.conf配置

[root@nameserver sbin]# cat /usr/local/nginx/conf/nginx.conf
user  nobody;
worker_processes  2;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;
 
pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    gzip  on;
 
 
    tfs_upstream tfs_rc {
        #server 192.168.0.201:8100;
        #type ns;
        type rcs;
        server 192.168.0.201:5100;
        rcs_zone name=tfs1 size=128M;
        rcs_interface ens33;
        rcs_heartbeat lock_file=/usr/local/nginx/logs/lk.file interval=10s;
    }
 
    server {
          listen       7501;
          server_name  localhost;
 
          tfs_keepalive max_cached=100 bucket_count=10;
          #tfs_log "pipe:/usr/local/sbin/ -p 30min /usr/local/nginx/logs/cronolog/%Y/%m/%Y-%m-%d-%H-%M-tfs_access.log";
 
          location / {
              tfs_pass tfs://tfs_rc;
          }
    }


    tfs_upstream tfs_rc2 {
        #server 192.168.0.201:8100;
        #type ns;
        type rcs;
        server 192.168.0.201:5100;
        rcs_zone name=tfs2 size=128M;
        rcs_interface ens33;
        rcs_heartbeat lock_file=/usr/local/nginx/logs/lk2.file interval=10s;
    }
 
    server {
          listen       7502;
          server_name  localhost;
 
          tfs_keepalive max_cached=100 bucket_count=10;
          #tfs_log "pipe:/usr/local/cronolog/sbin/ -p 30min /usr/local/nginx/logs/cronolog/%Y/%m/%Y-%m-%d-%H-%M-tfs_access.log";
 
          location / {
              tfs_pass tfs://tfs_rc2;
          }
    }


}

nginx.service

[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

 rcserver编译安装

进入 /usr/local/src/tfs/src/rcserver源码目录

执行make报

mysql_database_helper.cpp:18:19: fatal error: mysql.h: No such file or directory
 #include <mysql.h>
                   ^
compilation terminated.
make: *** [mysql_database_helper.o] Error 1

 yum install mysql-devel

export MYSQL_CFLAGS=`mysql_config --cflags`

修正mysql.h实现文件路径

重新执行make && make install

查看rcserver已经存在

[root@localhost rcserver]# ll /root/tfs_bin/bin/rcserver 
-rwxr-xr-x. 1 root root 1709152 Feb 24 01:41 /root/tfs_bin/bin/rcserver

rc.conf配置文件

[public]
    log_level = debug
    log_num = 20
    log_size = 134217728
    work_dir = /root/tfs_bin

    thread_count = 4
    ip_addr = 192.168.0.201
    dev_name = ens33
    port = 5100

[rcserver]
    rc_monitor_interval = 60
    rc_stat_interval = 30
    rc_update_interval = 10
    rc_db_info = 192.168.0.201:3306:rcserver
    rc_db_user = rc1
    rc_db_pwd = rc1

新数据库rcserver,创建用户rc1,密码为rc1

执行/root/tfs_bin/sql/rcs/create_table.sql创建数据库rcserver

向t_cluster_rack_info表中播入数据

INSERT INTO `t_cluster_rack_info` VALUES (1, 'T1Axxxx', '192.168.0.201:8100', 2, 'qwemgh_tfs', now(), now());

 向t_cluster_rack_groupo表中播入数据

INSERT INTO `t_cluster_rack_group` VALUES (1, 1, 2, 'qwemgh_tfs', now(), now());

 向t_app_info表中播入数据

INSERT INTO `t_app_info` VALUES ('tfs1', 3, 10, 1, 0, 'qwemgh_picture', 'mutang', 5, 0, '', '2021-02-22 22:06:38', '2021-02-22 22:06:38');
INSERT INTO `t_app_info` VALUES ('tfs2', 1, 10, 1, 0, 'picture', 'jingpan', 5, 0, '', '2021-02-23 03:40:01', '2021-02-23 03:40:01');

配置服务开机自启

ns服务

[root@nameserver ~]# cat /usr/lib/systemd/system/tfsns.service 
[Unit]
Description=tfsns service
After=network.target

[Service]
Type=forking
ExecStart=/root/tfs_bin/scripts/tfs start_ns
ExecStop=/root/tfs_bin/scripts/tfs stop_ns
PrivateTmp=true

[Install]
WantedBy=multi-user.target

rc服务 

[root@nameserver ~]# cat /usr/lib/systemd/system/tfsrc.service 
[Unit]
Description=tfsrc service
After=network.target mariadb.service

[Service]
Type=forking
ExecStart=/root/tfs_bin/scripts/tfs start_rc
ExecStop=/root/tfs_bin/scripts/tfs stop_rc
PrivateTmp=true

[Install]
WantedBy=multi-user.target

ds服务

 

[root@dataserver1 ~]# cat /usr/lib/systemd/system/tfsds.service
[Unit]
Description=tfsds service
After=network.target

[Service]
Type=forking
ExecStart=/root/tfs_bin/scripts/tfs start_ds 1-2
ExecStop=/root/tfs_bin/scripts/tfs stop_ds 1-2
PrivateTmp=true

[Install]
WantedBy=multi-user.target

 

http://192.168.0.201:7501/v1/tfs/T18RhTByJT1RCvBVdK.jpg

参考文章

淘宝TFS分布式文件系统亲测:https://www.linuxidc.com/Linux/2012-08/67500.htm

TFS介绍:https://www.aboutyun.com/thread-7206-1-1.html

布署实例:https://www.pianshen.com/article/719899493/

TFS使用文档-运维工具篇http://blog.chinaunix.net/uid-20196318-id-4071042.html

实例:https://wenku.baidu.com/view/61cdd28e8ad63186bceb19e8b8f67c1cfad6ee05.html

编译安装nginx 提示requires the PCRE libraryhttps://www.cnblogs.com/crxis/p/6973232.html

https://github.com/yage99/tfs/blob/master/DEPLOY.md

https://github.com/alibaba/nginx-tfs

https://github.com/lloyd/yajl

https://github.com/bigplum/tfs-php-client

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值