一、安装 Tracker 跟踪服务器(172.16.119.129)
进入 /etc/fdfs
目录,把 tracker.conf.sample
文件拷贝一份,名为 tracker.conf
# 进入目录 cd /etc/fdfs/ # 拷贝文件 sudo cp tracker.conf.sample tracker.conf
复制 tracker 配置文件
1、配置 tracker 工作目录
创建工作目录
sudo mkdir -p /home/liurenkui/MyOpt/fastdfs/tracker
在 tracker.conf
文件中,通过关键字 base_path
找到如下代码
# the base path to store data and log files base_path=/home/yuqing/fastdfs
这个参数是用来配置 存储数据 和 日志文件 的基本路径,目录结构如下
# ${base_path} # |__data # | |__storage_groups.dat:存储分组信息 # | |__storage_servers.dat:存储服务器列表 # |__logs # |__trackerd.log:tracker server日志文件
这里改为自己的工作目录
# the base path to store data and log files base_path=/home/liurenkui/MyOpt/fastdfs/tracker
2、启动 / 停止 tracker 跟踪服务器
# 启动 tracker 服务 sudo service fdfs_trackerd start # 查看线程 ps -ef | grep fdfs # 查看数据和日志目录 tree MyOpt/fastdfs/tracker/
启动 tracker 跟踪服务器
启动成功后,基础目录中多了 data
和 log
两个目录。
3、停止 tracker 跟踪服务器
# 停止 tracker 服务 sudo service fdfs_trackerd start
观察发现,服务停止时候,创建了 storage_changelog.dat
、storage_groups_new.dat
、storage_servers_new.dat
、storage_sync_timestamp.dat
4个文件。
数据文件 storage_groups.dat
和 storage_servers.dat
中的记录之间以换行符(\n
)分隔,字段之间以逗号(,
)分隔。
storage_groups.dat 中的字段依次为:
group_name
:组名storage_port
:storage server端口号
storage_servers.dat 中记录 storage server 相关信息,字段依次为:
group_name
:所属组名ip_addr
:ip地址status
:状态sync_src_ip_addr
:向该 storage server 同步已有数据文件的源服务器sync_until_timestamp
:同步已有数据文件的截至时间(UNIX时间戳)stat.total_upload_count
:上传文件次数stat.success_upload_count
:成功上传文件次数stat.total_set_meta_count
:更改 meta data 次数stat.success_set_meta_count
:成功更改 meta data 次数stat.total_delete_count
:删除文件次数stat.success_delete_count
:成功删除文件次数stat.total_download_count
:下载文件次数stat.success_download_count
:成功下载文件次数stat.total_get_meta_count
:获取 meta data 次数stat.success_get_meta_count
:成功获取 meta data 次数stat.last_source_update
:最近一次源头更新时间(更新操作来自客户端)stat.last_sync_update
:最近一次同步更新时间(更新操作来自其他storage server的同步)
4、tracker 命令
# 服务启动 sudo service fdfs_trackerd start # 服务停止 sudo service fdfs_trackerd start # 脚本启动 sudo /etc/init.d/fdfs_trackerd start # 脚本停止 sudo /etc/init.d/fdfs_trackerd stop
二、Tracker 跟踪服务器配置文件介绍
查看 tracker.conf.sample
文件内容
# 配置文件是否禁用 # false 启用,true禁用 disabled=false # bind_addr= 后面为绑定的IP地址 (常用于服务器有多个IP但只希望一个IP提供服务)。如果不填则表示所有的(一般不填就OK) bind_addr= # tracker 服务器端口 port=22122 # 连接超时,默认30秒,针对socket套接字函数connect connect_timeout=30 # 网络超时,默认30秒,发送或接收数据时,如果在超时时间后还不能发送或接收数据,则本次网络通信失败。 network_timeout=60 # 存储数据和日志文件的基本路径 # 基础目录:必须存在,子目录会自动创建 # 目录及文件结构: # ${base_path} # |__data # | |__storage_groups.dat:存储分组信息 # | |__storage_servers.dat:存储服务器列表 # |__logs # |__trackerd.log:tracker server日志文件 base_path=/home/yuqing/fastdfs # 此服务器支持的最大并发连接数 max_connections=256 # 接受线程数 默认 1 # since V4.07 accept_threads=1 # 工作线程数, 应该 <= max_connections,默认 4,通常设置为CPU数 # since V2.00 work_threads=4 # 最小 buff,默认8KB min_buff_size = 8KB # 最大 buff,默认128KB max_buff_size = 128KB # 选择组(卷)上传文件的方法 # 0: 轮询方式 # 1: 指定组 # 2: 平衡负载,选择最大剩余空间的组(卷)上传,默认 store_lookup=2 # 当 store_lookup = 1,必须设置本参数为系统中存在的一个组名。 store_group=group2 # 选择哪一个 storage server 上传文件 # 文件上传后,这个storage server就相当于这个文件的storage server源,然后对同组的storage server推送这个文件达到同步效果 # 0: 轮询方式 (默认) # 1: 根据ip 地址进行排序选择第一个服务器(IP地址最小者) # 2: 根据优先级进行排序(上传优先级由storage server来设置,参数名为 upload_priority) # 注意:如果 use_trunk_file = true,则必须将 store_server 设置为1或2 store_server=0 # 选择 storage server 中的哪个目录进行上传 # 0: 轮流方式,多个目录依次存放文件,默认 # 2: 选择剩余空间最大的目录存放文件(注意:剩余磁盘空间是动态的,因此存储到的目录或磁盘可能也是变化的) store_path=0 # 选择哪个 storage server 作为下载服务器 # 0: 轮询方式,可以下载当前文件的任何一个storage server # 1: 当前文件上传到的源存储服务器,就是之前上传到哪个storage server服务器就是哪个源 download_server=0 # storage server 保留的空间,保证系统或其他应用需求空间。可以用绝对值或者百分比(V4开始支持百分比方式) # storage 服务器的空闲(可用)空间 <= reserved_storage_space, # 如果同组的服务器的硬盘大小一样,以最小的为准,只要同组中有一台服务器达到这个标准了,这个标准就生效 ### G or g for gigabyte(GB) ### M or m for megabyte(MB) ### K or k for kilobyte(KB) ### no unit for byte(B) ### XX.XX% as ratio such as reserved_storage_space = 10% reserved_storage_space = 10% #standard log level as syslog, #日志级别,不区分大小写,有如下值 ### emerg 突发事件 ### alert ### crit 危机事件 ### error ### warn 警告 ### notice ### info ### debug log_level=info # 操作系统运行FastDFS的用户组 (不填 就是当前用户组,哪个启动进程就是哪个) run_by_group= # 操作系统运行FastDFS的用户 (不填 就是当前用户,哪个启动进程就是哪个) run_by_user= # 可以连接到此 tracker server 的ip范围,可以是主机名或ip地址(对所有类型的连接都有影响,包括客户端,storage server) # "*" 表示匹配所有IP地址 # 可以使用 CIDR(无类域间路由),例如 192.168.5.64/26 # 例如 # allow_hosts=10.0.1.[1-15,20] # allow_hosts=host[01-08,20-25].domain.com # allow_hosts=192.168.5.64/26 allow_hosts=* # 同步或刷新日志信息到硬盘的时间间隔,默认10秒 # 注意:tracker server 的日志不是时时写硬盘的,而是先写内存。 sync_log_buff_interval = 10 # 检测 storage server 存活的间隔,默认120秒 # storage server 定期向 tracker server 发心跳,如果 tracker server 在一个 check_active_interval 内还没有收到 storage server 的一次心跳,将认为该 storage server 已经下线。 # 通常配置为storage server心跳时间间隔的2倍或3倍。 check_active_interval = 120 # 线程栈大小,应该 >= 64KB,默认 64KB # 线程栈越大,占用的系统资源就越多。如果要启动更多的线程(V1.x对应的参数为max_connections,V2.0为work_threads),可以适当降低本参数值。 thread_stack_size = 64KB # 当 storage server IP地址改变时,集群是否自动调整。注:只有在storage server进程重启时才完成自动调整。 # 默认 true storage_ip_changed_auto_adjust = true # 存储服务器之间同步文件的最大延迟时间,默认 86400 秒 (1天) # since V2.00 storage_sync_file_max_delay = 86400 # 存储服务器同步一个文件需要消耗的最大时间 # 默认 300 秒,5分钟 # since V2.00 storage_sync_file_max_time = 300 # 使用trunk分割小文件合并存储特性,默认 false # since V3.00 use_trunk_file = false # trunk file分配的最小字节数,应该 <= 4KB,默认 256 bytes # since V3.00 slot_min_size = 256 # trunk file分配的最大字节数,应该 > slot_min_size,默认 16MB # 只有文件大小 <= 这个参数值的文件,才会合并存储。 # 如果一个文件的大小大于这个参数值,将直接保存到一个文件中(即不采用合并存储方式) # since V3.00 slot_max_size = 16MB # 合并存储的 trunk file 大小,应该 >= 4MB,默认 64MB # since V3.00 trunk_file_size = 64MB # 提前创建 trunk file。只有当这个参数为true,下面3个以 trunk_create_file_ 开头参数才有效。 # 默认 false # since V3.06 trunk_create_file_advance = false # 提前创建 trunk file 的起始时间点(基准时间) # 时间格式: HH:MM,默认 02:00,表示第一次创建的时间点是凌晨2点 # since V3.06 trunk_create_file_time_base = 02:00 # 创建 trunk file 的时间间隔,默认 86400 秒(1天) # since V3.06 trunk_create_file_interval = 86400 # 提前创建 trunk file 时,需要达到的空闲 trunk 大小,默认 20G # 而当前空闲trunk为4GB,那么只需要创建16GB的trunk file即可 # since V3.06 trunk_create_file_space_threshold = 20G # trunk 初始化时,是否检查可用空间是否被占用 # 默认 false # since V3.09 # 注意:设置为true,将减慢主干空间的加载速度,启动时,需要在必要时将此参数设置为true。 trunk_init_check_occupying = false # 是否无条件从trunk binlog中加载trunk可用空间信息,默认 false # FastDFS 默认是从快照文件 storage_trunk.dat 中加载trunk可用空间,该文件的第一行记录的是trunk binlog的offset,然后从binlog的offset开始加载 # since V3.10 # 当版本低于V3.10时,为版本升级设置为true trunk_init_reload_from_binlog = false # 压缩 trunk binlog 文件的最小间隔 # 单位: 秒,默认 0(从不压缩) # 当trunk init和trunk销毁时,FastDFS压缩trunk binlog,如果需要,建议参数设置 86400 秒 (1天) # since V5.01 trunk_compress_binlog_min_interval = 0 # 使用 server ID 作为 storage server 标识,而不是IP地址,默认 false # since V4.00 use_storage_id = false # 指定存储 ids filename,可以使用相对或绝对路径 # 只有 use_storage_id = true,才需要设置本参数 # since V4.00 storage_ids_filename = storage_ids.conf # 文件名中存储服务器的id类型,值为: ## ip: storage server 的 IP 地址 ## id: storage server 的 server id # 只有 use_storage_id = true,才需要设置本参数 # 默认使用 ip # since V4.03 id_type_in_filename = ip # 存储从文件是否采用symbol link(符号链接)方式,默认 false # since V4.01 store_slave_file_use_link = false # 是否定期轮转 error log,目前仅支持一天轮转一次 # since V4.02 rotate_error_log = false # error log定期轮转的时间点,只有当rotate_error_log设置为true时有效 # 时间格式: Hour:Minute,小时【0-23】,分钟【0-59】,默认 00:00 # since V4.02 error_log_rotate_time=00:00 # 当日志文件超过此大小时,执行轮转 # 默认0,表示永远不会按日志文件大小轮转日志文件 # since V4.02 rotate_error_log_size = 0 # 保留日志文件的天数 # 默认0,表示不删除旧的日志文件 log_file_keep_days = 0 # 是否使用连接池,默认 false # since V4.05 use_connection_pool = false # 空闲时间超过此时间的连接将被关闭,默认 3600 秒 # since V4.05 connection_pool_max_idle_time = 3600 # HTTP服务端口 http.server_port=8080 # 检查存储HTTP服务器活动间隔秒,<= 0 不检查,默认 30 秒 http.check_alive_interval=30 # 检查存储HTTP服务器的活动类型,值是: # tcp : 仅使用HTTP端口连接到存储服务器, 不要求并得到回应 # http: storage 检查存活的URL,必须返回状态码200 # 默认 tcp http.check_alive_type=tcp # 检查存储HTTP服务器活动 uri/url # 注意:存储嵌入HTTP服务器支持uri: /status.html http.check_alive_uri=/status.html
未经允许请勿转载:程序喵 » FastDFS 配置 Tracker 服务器(三)