CentOS7搭建FastDFS V5.11分布式文件系统-第二篇

时间:2023-03-08 21:48:56

1.CentOS7 FastDFS搭建

前面已下载好了要用到的工具集,下面就可以开始安装了: 
如果安装过程中出现问题,可以下载我提供的,当前测试可以通过的工具包:

点这里点这里

1.1 安装libfastcommon

安装成功后解压libfastcommon-master.zip

unzip libfastcommon-master.zip
[root@sybmfw12-lnsy libfastcommon-1.0.]# ll
drwxr-xr-x. root root 4月 doc
-rw-r--r--. root root 4月 HISTORY
-rw-r--r--. root root 4月 INSTALL
-rw-r--r--. root root 4月 libfastcommon.spec
-rwxr-xr-x. root root 4月 make.sh
drwxr-xr-x. root root 4月 php-fastcommon
-rw-r--r--. root root 4月 README
drwxr-xr-x. root root 11月 : src

当我们./make.sh的时候可能会提示,gcc命令没有找到。

用yum安装gcc:

yum -y install gcc-c++

这个时候分别执行./make.sh和./make.sh install,正常情况是可以成功的。 
libfastcommon默认会被安装到/usr/lib64/libfastcommon.so但是FastDFS的主程序却在/usr/local/lib目录下 
这个时候我们就要建立一个软链接了,实际上也相当于windows上的快捷方式。

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

1.2安装FastDFS

解压FastDFS安装包

unzip fastdfs-5.11.zip

解压后看到:

[root@sybmfw12-lnsy fastdfs-5.11]# ll
总用量
drwxr-xr-x. root root 11月 : client
drwxr-xr-x. root root 11月 : common
drwxr-xr-x. root root 6月 : conf
-rw-r--r--. root root 6月 : COPYING-3_0.txt
-rw-r--r--. root root 6月 : fastdfs.spec
-rw-r--r--. root root 6月 : HISTORY
drwxr-xr-x. root root 6月 : init.d
-rw-r--r--. root root 6月 : INSTALL
-rwxr-xr-x. root root 6月 : make.sh
drwxr-xr-x. root root 6月 : php_client
-rw-r--r--. root root 6月 : README.md
-rwxr-xr-x. root root 6月 : restart.sh
-rwxr-xr-x. root root 6月 : stop.sh
drwxr-xr-x. root root 11月 : storage
drwxr-xr-x. root root 6月 : test
drwxr-xr-x. root root 11月 : track

进到刚解压的目录:

cd fastdfs-5.11
./make.sh
./make.sh install

如果没有报错那么就成功了。安装log中会提示FastDFS安装到了/etc/fdfs目录下。

成功后查看安装目录:

[root@sybmfw12-lnsy fastdfs-5.11]# ll /etc/fdfs/
-rw-r--r--. root root 11月 : client.conf.sample -rw-r--r--. root root 11月 : storage.conf.sample -rw-r--r--. root root 11月 : tracker.conf.sample

我们需要把这三个示例文件复制一份,去掉.sample

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

FastDFS安装结束。

1.3安装tracker

1.3.1创建tracker工作目录

这个目录可以自定义,用来保存tracker的data和log 
根据个人习惯,我创建了下面的目录:

mkdir /opt/fastdfs_tracker

1.3.2 配置tracker

vim /etc/fdfs/tracker.conf
打开后重点关注下面4个配置:
.disabled=false
.port= #默认端口号
.base_path=/opt/fastdfs_tracker #我刚刚创建的目录
.http.server_port= #默认端口是8080
5.bind_addr= 0.0.0.0 监听地址

修改完的文件为:

disabled=false

bind_addr= 0.0.0.0

port=

connect_timeout=

network_timeout=

base_path=/opt/fastdfs_tracker

max_connections=

accept_threads=

work_threads=

min_buff_size = 8KB

max_buff_size = 128KB

store_lookup=

store_group=group2

store_server=

store_path=

download_server=

reserved_storage_space = %

log_level=info

run_by_group=

run_by_user=

allow_hosts=*

sync_log_buff_interval = 

check_active_interval = 

thread_stack_size = 64KB

storage_ip_changed_auto_adjust = true

storage_sync_file_max_delay = 

storage_sync_file_max_time = 

use_trunk_file = false 

slot_min_size = 

slot_max_size = 16MB

trunk_file_size = 64MB

trunk_create_file_advance = false

trunk_create_file_time_base = :

trunk_create_file_interval = 

trunk_create_file_space_threshold = 20G

trunk_init_check_occupying = false

trunk_init_reload_from_binlog = false

trunk_compress_binlog_min_interval = 

use_storage_id = false

storage_ids_filename = storage_ids.conf

id_type_in_filename = ip

store_slave_file_use_link = false

rotate_error_log = false

error_log_rotate_time=:

rotate_error_log_size = 

log_file_keep_days = 

use_connection_pool = false

connection_pool_max_idle_time = 

http.server_port=

http.check_alive_interval=

http.check_alive_type=tcp

http.check_alive_uri=/status.html

1.3.3启动tracker

保存配置后启动tracker,命令如下:

service fdfs_trackerd start

成功后应该可以看到:


[root@sybmfw12-lnsy fastdfs-5.11]#service fdfs_trackerd start 
Starting fdfs_trackerd (via systemctl): [ OK ]

进行刚刚创建的tracker目录,发现目录中多了data和log两个目录

[root@sybmfw12-lnsy fastdfs-5.11]# ll /opt/fastdfs_tracker/
drwxr-xr-x. root root 11月 : data
drwxr-xr-x. root root 11月 : logs

最后我们需要给tracker加入开机启动

echo "service fdfs_trackerd start" |tee -a /etc/rc.d/rc.local

查看一下tracker的端口监听情况

[root@sybmfw12-lnsy fastdfs-5.11]# netstat -unltp|grep fdfs
tcp 0.0.0.0: 0.0.0.0:* LISTEN /fdfs_trackerd

端口22122成功监听。

1.4 安装storage

storage的安装与tracker很类似。

1.4.1 为storage配置工作目录

与tracker不同的是,由于storage还需要一个目录用来存储数据,所以我另外多建了两个目录fastdfs_storage_data,fastdfs_storage
下面是我的目录结构:

[root@sybmfw12-lnsy fastdfs-5.11]# ll /opt/
drwxr-xr-x. root root 11月 : fastdfs_storage
drwxr-xr-x. root root 11月 : fastdfs_storage_data
drwxr-xr-x. root root 11月 : fastdfs_tracker

1.4.2 修改storage配置文件

修改storage.conf

.disabled=false
.group_name=group1 #组名,根据实际情况修改
.port= #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
.base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录
.store_path_count= #存储路径个数,需要和store_path个数匹配
.store_path0=/opt/fastdfs_storage_data #实际文件存储路径
.tracker_server=172.20.132.57: #我CentOS7的ip地址
.http.server_port= #设置 http 端口号

修改完的文件为:

disabled=false
group_name=group1
bind_addr= 0.0.0.0
client_bind=true
port=
connect_timeout=
network_timeout=
heart_beat_interval=
stat_report_interval=
base_path=/opt/fastdfs_storage
max_connections=
buff_size = 256KB
accept_threads=
work_threads=
disk_rw_separated = true
disk_reader_threads =
disk_writer_threads =
sync_wait_msec=
sync_interval=
sync_start_time=:
sync_end_time=:
write_mark_file_freq=
store_path_count=
store_path0=/opt/fastdfs_storage_data
subdir_count_per_path=
tracker_server=172.20.132.57:
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
file_distribute_path_mode=
file_distribute_rotate_count=
fsync_after_written_bytes=
sync_log_buff_interval=
sync_binlog_buff_interval=
sync_stat_file_interval=
thread_stack_size=512KB
upload_priority=
if_alias_prefix=
check_file_duplicate=
file_signature_method=hash
key_namespace=FastDFS
keep_alive=
use_access_log = false
rotate_access_log = false
access_log_rotate_time=:
rotate_error_log = false
error_log_rotate_time=:
rotate_access_log_size =
rotate_error_log_size =
log_file_keep_days =
file_sync_skip_invalid_record=false
use_connection_pool = false
connection_pool_max_idle_time =
http.domain_name=
http.server_port=

修改保存后创建软引用

ln -s /usr/bin/fdfs_storaged /usr/local/bin

1.4.3 启动storage

service fdfs_storaged start
Starting fdfs_storaged (via systemctl): [ OK ]

同样的,设置开机启动: 
修改rc.local

echo "service fdfs_storaged start" |tee -a /etc/rc.d/rc.local

查看一下服务是否启动

[root@sybmfw12-lnsy fastdfs-5.11]#netstat -unltp | grep fdfs 
tcp 0.0.0.0: 0.0.0.0:* LISTEN /fdfs_trackerd
tcp 0.0.0.0: 0.0.0.0:* LISTEN /fdfs_storaged

服务已正常启动。

1.4.4 校验整合

到这里,fastdfs的东西都已安装完成,最后我们还要确定一下,storage是否注册到了tracker中去。 
查看命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

成功后可以看到: 
ip_addr = 172.20.132.57 (localhost.localdomain) ACTIVE

[root@sybmfw12-lnsy fastdfs-5.11]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
[-- ::] DEBUG - base_path=/opt/fastdfs_storage, connect_timeout=, network_timeout=, tracker_server_count=, anti_steal_token=, anti_steal_secret_key length=, use_connection_pool=, g_connection_pool_max_idle_time=3600s, use_storage_id=, storage server id count: server_count=, server_index= tracker server is 172.20.132.57: group count: Group :
group name = group1
disk total space = MB
disk free space = MB
trunk free space = MB
storage server count =
active server count =
storage server port =
storage HTTP port =
store path count =
subdir count per path =
current write server index =
current trunk file id = Storage :
id = 172.20.132.57
ip_addr = 172.20.132.57 (sybmfw12-lnsy) ACTIVE
http domain =
version = 5.11
join time = -- ::
up time = -- ::
total storage = MB
free storage = MB
upload priority =
store_path_count =
subdir_count_per_path =
storage_port =
storage_http_port =
current_write_path =
source storage id =
if_trunk_server =
connection.alloc_count =
connection.current_count =
connection.max_count =
total_upload_count =
success_upload_count =
total_append_count =
success_append_count =
total_modify_count =
success_modify_count =
total_truncate_count =
success_truncate_count =
total_set_meta_count =
success_set_meta_count =
total_delete_count =
success_delete_count =
total_download_count =
success_download_count =
total_get_meta_count =
success_get_meta_count =
total_create_link_count =
success_create_link_count =
total_delete_link_count =
success_delete_link_count =
total_upload_bytes =
success_upload_bytes =
total_append_bytes =
success_append_bytes =
total_modify_bytes =
success_modify_bytes =
stotal_download_bytes =
success_download_bytes =
total_sync_in_bytes =
success_sync_in_bytes =
total_sync_out_bytes =
success_sync_out_bytes =
total_file_open_count =
success_file_open_count =
total_file_read_count =
success_file_read_count =
total_file_write_count =
success_file_write_count =
last_heart_beat_time = -- ::
last_source_update = -- ::
last_sync_update = -- ::
last_synced_timestamp = -- ::
点这里看第三篇