赞
踩
FastDFS环境搭建以及详解
FastDFS配置文件如下
# 配置tracker.conf 文件是否生效 false生效 true屏蔽 disabled = false # 程序的监听地址,如果不设定则监听所有地址(0.0.0.0) bind_addr = # tracker监听的端口 port = 22122 # 连接超时时间(秒)。 # 默认值为30。 # 注意:在内网(LAN)中,2秒就足够了。 connect_timeout = 5 # 发送和接收的网络超时时间(秒)。 # 默认值为30 # tracker server的网络超时,单位为秒。发送或接收数据时,如果在超时时间后还不能发送 # 或接收数据,则本次网络通信失败。 network_timeout = 60 # ------------------------------------------------------ # base_path 目录地址(根目录必须存在,子目录会自动创建) # 附目录说明: # tracker server目录及文件结构: # ${base_path} # |__data # | |__storage_groups.dat:存储分组信息 # | |__storage_servers.dat:存储服务器列表 # |__logs # |__trackerd.log:tracker server日志文件 # 数据文件storage_groups.dat和storage_servers.dat中的记录之间以换行符(\n)分隔,字段之间以西文逗号(,)分隔。 # storage_groups.dat中的字段依次为: # 1. group_name:组名 # 2. storage_port:storage server端口号 # # storage_servers.dat中记录storage server相关信息,字段依次为: # 1. group_name:所属组名 # 2. ip_addr:ip地址 # 3. status:状态 # 4. sync_src_ip_addr:向该storage server同步已有数据文件的源服务器 # 5. sync_until_timestamp:同步已有数据文件的截至时间(UNIX时间戳) # 6. stat.total_upload_count:上传文件次数 # 7. stat.success_upload_count:成功上传文件次数 # 8. stat.total_set_meta_count:更改meta data次数 # 9. stat.success_set_meta_count:成功更改meta data次数 # 10. stat.total_delete_count:删除文件次数 # 11. stat.success_delete_count:成功删除文件次数 # 12. stat.total_download_count:下载文件次数 # 13. stat.success_download_count:成功下载文件次数 # 14. stat.total_get_meta_count:获取meta data次数 # 15. stat.success_get_meta_count:成功获取meta data次数 # 16. stat.last_source_update:最近一次源头更新时间(更新操作来自客户端) # 17. stat.last_sync_update:最近一次同步更新时间(更新操作来自其他storage server的同步) base_path = /home/yuqing/fastdfs # 此服务器支持的最大并发连接数。 # 默认值为256 max_connections = 1024 # 接受线程数。 # 默认值为1,推荐使用。 # 从V4.07开始 # 该参数决定接收客户端连接的线程数,默认值为1,适当放大该参数可改善Storage处理连接的能力,改 # 成2[线上环境cpu为32核心可支持足够多的线程数]。 accept_threads = 1 # 工作线程数。 # 处理网络IO的工作线程数。 # 默认值为4。 # 从V2.00开始 # 工作线程用来处理网络IO,默认值为4,该参数影响Stroage可以同时处理的连接数 work_threads = 4 # 最小网络缓冲区大小。 # 默认值8KB # 接收/发送数据的buff大小,必须大于8KB min_buff_size = 8KB # 最大网络缓冲区大小。 # 默认值128KB # 接收/发送数据的buff大小必须小于128KB max_buff_size = 128KB # 在存储文件时选择group的策略。 # 0:轮询。 # 1:指定组。 # 2:负载均衡,选择上传文件的最大可用空间组 store_lookup = 2 # 上传文件到哪组。 # 当 store_lookup设置为1时,必须将 store_group设置为指定上传的组名 store_group = group2 # 上传文件到哪台存储服务器。 # 0:循环(默认)。 # 1:第一台按IP地址排序的服务器。 # 2:根据优先级排序,第一个(最小)。 # 注意:如果 use_trunk_file设置为 true,则必须将 set store_server设置为1或2 store_server = 0 # 选择文件上传到storage中的哪个(目录/挂载点),storage可以有多个存放文件的base # path 0:轮训策略 2:负载均衡,选择空闲空间最大的 store_path = 0 # 选择那个storage作为主下载服务器, # 0:轮训策略 1:主上传storage作为主下载服务器 download_server = 0 # 系统预留空间,当一个group中的任何storage的剩余空间小于定义的值,整个group就不能上传文件了 reserved_storage_space = 20% # 设置日志级别 ### emerg for emergency ### alert ### crit for critical ### error ### warn for warning ### notice ### info ### debug log_level = info # 进程以那个用户/用户组运行,不指定默认是当前用户 run_by_group= run_by_user = # 允许那些机器连接tracker默认是所有机器 allow_hosts = * # 定时将日志缓冲区同步到磁盘。 # 默认值为10秒 sync_log_buff_interval = 1 # 检测 storage server 存活的时间隔,单位为秒。 # storage server定期向 tracker server 发心跳,如果tracker server在一个check_active_interval # 内还没有收到storage server的一次心跳,那就认为该storage server已经下线。所以本参数值必须大于 # storage server配置的心跳时间间隔。通常配置为storage server心跳时间间隔的2倍或3倍。 check_active_interval = 120 # 线程栈的大小。FastDFS server端采用了线程方式。更正一下, # tracker server线程栈不应小于64KB,不是512KB。 thread_stack_size = 256KB # 存储服务器IP地址更改时自动调整。 # 默认值为true # storage的ip改变后服务端是否自动调整,storage进程重启时才自动调整 storage_ip_changed_auto_adjust = true # 存储同步文件最大延迟秒数。 # 默认值为86400秒(一天)。 # 从V2.00开始 storage_sync_file_max_delay = 86400 # 文件同步最大存储时间。 # 默认值为300秒。 # 从V2.00开始 # 就是存储服务器同步一个文件需要消耗的最大时间,单位为300s,即5分钟。 storage_sync_file_max_time = 300 # 是否使用小文件合并存储特性 [false代表关闭] use_trunk_file = false # 最小插槽大小,应<=4KB。 # 默认值为256字节。 # 从V3.00开始 # trunk file分配的最小字节数。比如文件只有16个字节,系统也会分配 slot_min_size个字节。 slot_min_size = 256 # 最大插槽大小,应>插槽最小大小。 # 当上传文件大小<=此值时,将上传文件存储到主干文件。 # 默认值为16MB。 # 从V3.00开始 # 只有文件大小<=这个参数值的文件,才会合并存储。 # 如果一个文件的大小大于这个参数值,将直接保存到一个文件中(即不采用合并存储方式) slot_max_size = 1MB # 对齐大小越大,磁盘碎片的可能性越小,但浪费的空间也更多。 trunk_alloc_alignment_size = 256 # 是否合并中继文件的连续可用空间 # since V6.05 trunk_free_space_merge = true # files 删除/回收未使用的中继文件 # since V6.05 delete_unused_trunk_files = false # trunk file 大小 # since V3.00 trunk_file_size = 64MB # 是否提前创建 trunk file # since V3.06 trunk_create_file_advance = false # 提前创建trunk file的起始时间点(基准时间),02:00表示第一次创建的时间点是凌晨2点 trunk_create_file_time_base = 02:00 # 创建 trunk file 时间间隔, 86400 即隔一天 trunk_create_file_interval = 86400 # 提前创建trunk file时,需要达到的空闲trunk大小 # 比如本参数为20G,而当前空闲trunk为4GB,那么只需要创建16GB的trunk file即可。 trunk_create_file_space_threshold = 20G # trunk初始化时,是否检查可用空间是否被占用 trunk_init_check_occupying = false # 是否无条件从trunk binlog中加载trunk可用空间信息 # FastDFS缺省是从快照文件storage_trunk.dat中加载trunk可用空间, # 该文件的第一行记录的是trunk binlog的offset,然后从binlog的offset开始加载 trunk_init_reload_from_binlog = false # 压缩 trunk binlog 文件的最小间隔 trunk_compress_binlog_min_interval = 86400 # 压缩 trunk binlog 文件的间隔时间 (默认1天) trunk_compress_binlog_interval = 86400 # 压缩 trunk binlog 文件的时间点 trunk_compress_binlog_time_base = 03:00 # trunk binlog 文件最大备份数 trunk_binlog_max_backups = 7 # 是否使用server ID作为storage server标识 use_storage_id = false # 指定存储ID文件名,可以使用相对路径或绝对路径。 # 只有当use_storage_id设置为true时,该参数才有效。 storage_ids_filename = storage_ids.conf # 文件名中存储服务器的#id类型,值为: ## IP:存储服务器的IP地址。 ## id:存储服务器的服务器id。 # 仅当use_storage_id设置为true时,此参数才有效。 # 默认值为ip。 # since V4.03 id_type_in_filename = id # 存储从文件是否使用符号链接 store_slave_file_use_link = false # 是否定期轮转error log,目前仅支持一天轮转一次 rotate_error_log = false # error log定期轮转的时间点,只有当rotate_error_log设置为true时有效 error_log_rotate_time = 00:00 # 是否压缩旧的错误日志 compress_old_error_log = false # 压缩几天前的错误日志 (compress_old_error_log = false本参数不生效) compress_error_log_days_before = 7 # 当日志文件超过此大小时轮换错误日志。 # 设置为0表示不按文件大小轮转,否则当error log达到该大小,就会轮转到新文件中 rotate_error_log_size = 0 # 日志文件保留几天(0代表永久保留) log_file_keep_days = 0 # 是否使用连接池 use_connection_pool = true # 连接空闲时长,超过则连接被关闭 (单位秒) connection_pool_max_idle_time = 3600 # 此跟踪器服务器上的HTTP端口 http.server_port = 8080 # 检查存储HTTP服务器活动间隔秒数。 # <=0表示从不检查。 # 默认值为30 http.check_alive_interval = 30 # 检查存储HTTP服务器活动类型,值为: # TCP:仅使用HTTP端口连接到存储服务器。 # 不请求,不获取响应。 # http:存储检查活动url必须返回http状态200。 # 默认值为tcp http.check_alive_type = tcp # 检查存储HTTP服务器活动uri/url。 # 注意:Storage Embedded HTTP服务器支持uri:/status.html http.check_alive_uri = /status.html
在这里插入代码片# 配置storage.conf 文件是否生效 false生效 true屏蔽 disabled = false # 该存储服务器所属的组名。 # 注释或删除此项目以从跟踪器服务器获取, # 在这种情况下,tracker.conf中的use_storage_id必须设置为true。 # 和storage_ids.conf必须正确配置。 group_name = group1 # 程序的监听地址,如果不设定则监听所有地址(0.0.0.0) bind_addr = # bind_addr通常是针对server的。当指定bind_addr时,本参数才有效。 # 本storage server作为client连接其他服务器(如tracker server、 # 其他storage server),是否绑定bind_addr。 client_bind = true # storage 默认端口 port = 23000 # 连接超时时间(秒)。 # 默认值为30。 # 注意:在内网(LAN)中,2秒就足够了。 connect_timeout = 5 # 发送和接收的网络超时时间(秒)。 # 默认值为30 network_timeout = 60 # 心跳间隔(秒)。 # 存储服务器定期向Tracker服务器发送心跳。 # 默认值为30 heart_beat_interval = 30 # 磁盘使用情况报告间隔(秒)。 # 存储服务器定期向Tracker服务器发送磁盘使用情况报告。 # 默认值为300 stat_report_interval = 60 # 数据存储目录地址 base_path = /home/yuqing/fastdfs # 最大连接数 max_connections = 1024 # 设置队列结点的buffer大小。工作队列消耗的内存大小 = buff_size * max_connections # 设置得大一些,系统整体性能会有所提升。 buff_size = 256KB # 接收数据的线程数 accept_threads = 1 # 工作线程数,一般为cpu个数,当然CPU核数太多的话可以稍小一点。如我们是12CPU,这里设置为8 work_threads = 4 # 磁盘IO读写是否分离。磁盘读/写分离为false则为混合读写, # 如果为true则为分离读写的。默认值为V2.00以后为true。 disk_rw_separated = true # 针对单个存储路径的读线程数,默认值为1。 # 读写分离时: # 系统中的读线程数 = disk_reader_threads * store_path_count # 读写混合时: # 系统中的读写线程数 = (disk_reader_threads + disk_writer_threads) * store_path_count disk_reader_threads = 1 # 针对单个存储路径的写线程数,默认值为1。 # 读写分离时: # 系统中的写线程数 = disk_writer_threads * store_path_count # 读写混合时: # 系统中的读写线程数 = (disk_reader_threads + disk_writer_threads) * store_path_count disk_writer_threads = 1 # 同步文件时,如果从binlog中没有读到要同步的文件,休眠N毫秒后重新读取。0表示不休眠,立即再次尝试读取。 # 出于CPU消耗考虑,不建议设置为0。如何希望同步尽可能快一些,可以将本参数设置得小一些,比如设置为10ms sync_wait_msec = 50 # 同步上一个文件后,再同步下一个文件的时间间隔,单位为毫秒,0表示不休眠,直接同步下一个文件。 sync_interval = 0 # 下面二个一起解释。允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定 sync_start_time = 00:00 sync_end_time = 23:59 # 同步 N 个文件后就写入标记文件 write_mark_file_freq = 500 # 硬盘恢复线程数 disk_recovery_threads = 3 # storage在存储文件时支持多路径,默认只设置一个 store_path_count = 1 # store_path(0~⚮),根据0配置存储文件的存储路径。 # 如果store_path0不存在,则取值为base_path(不推荐)。 # 路径必须存在 store_path0 = /home/yuqing/fastdfs #store_path1 = /home/yuqing/fastdfs2 # subdir_count * subdir_count个目录会在store_path下创建,采用两级存储 subdir_count_per_path = 256 # 设置tracker_server 服务器地址 多个代表多个Tracker集群 tracker_server = 192.168.209.121:22122 tracker_server = 192.168.209.122:22122 # 日志级别 ### emerg for emergency ### alert ### crit for critical ### error ### warn for warning ### notice ### info ### debug log_level = info # 进程以那个用户/用户组运行,不指定默认是当前用户 run_by_group = run_by_user = # 允许那些机器连接tracker默认是所有机器 allow_hosts = * # 文件分发到数据路径的方式。 # 0: 轮流存放,在一个目录下存储设置的文件数后 #(参数file_distribute_rotate_count中设置文件数),使用下一个目录进行存储。 # 1: 随机存储,根据文件名对应的hash code来分散存储。 file_distribute_path_mode = 0 # 当上面的参数file_distribute_path_mode配置为0(轮流存放方式)时,本参数有效。 # 当一个目录下的文件存放的文件数达到本参数值时,后续上传的文件存储到下一个目录中。 file_distribute_rotate_count = 100 # 当写入大文件时,每写入N个字节,调用一次系统函数fsync将内容强行同步到硬盘。0表示从不调用fsync fsync_after_written_bytes = 0 # 同步或刷新日志信息到硬盘的时间间隔,单位为秒 # 注意:storage server 的日志信息不是时时写硬盘的,而是先写内存。 sync_log_buff_interval = 1 # 同步binglog(更新操作日志)到硬盘的时间间隔,单位为秒 # 本参数会影响新上传文件同步延迟时间 sync_binlog_buff_interval = 1 # 把storage的stat文件同步到磁盘的时间间隔,单位为秒。 # 注:如果stat文件内容没有变化,不会进行同步 sync_stat_file_interval = 300 # 线程栈大小,线程栈越大,一个线程占用的系统资源就越多。 thread_stack_size = 512KB # 本storage server作为源服务器,上传文件的优先级,可以为负数。值越小, # 优先级越高。这里就和 tracker.conf 中store_server= 2时的配置相对应了 upload_priority = 10 # 网卡别名,用ifconfig -a可以看到很多本机的网卡别名,类似eth0,eth0:0等等。 # 多个网卡别名使用逗号分割,默认为空,让系统自动选择。 if_alias_prefix = # 是否检测上传文件已经存在。如果已经存在,则不存在文件内容,建立一个符号链接以节省磁盘空间。 # 这个应用要配合FastDHT 使用,所以打开前要先安装FastDHT # 1或yes 是检测,0或no 是不检测 check_file_duplicate = 0 # 文件去重时,文件内容的签名方式: ## hash:4个hash code ## md5:MD5 file_signature_method = hash #当check_file_duplicate设置为1时,此值必须设置 key_namespace = FastDFS # FastDHT建立连接的方式 0:短连接 1:长连接 keep_alive = 0 # 是否将文件操作记录到access log use_access_log = false # 是否定期轮转access log,目前仅支持一天轮转一次 rotate_access_log = false # access log定期轮转的时间点,只有当rotate_access_log设置为true时有效 access_log_rotate_time = 00:00 # 是否压缩旧的访问日志 compress_old_access_log = false # 压缩几天前的访问日期 compress_access_log_days_before = 7 # 是否每天轮转错误日志 rotate_error_log = false # 错误日志轮转时间 error_log_rotate_time = 00:00 # 压缩旧的错误日志 compress_old_error_log = false # 压给它几天前的错误日志 compress_error_log_days_before = 7 # access log按文件大小轮转 # 设置为0表示不按文件大小轮转,否则当access log达到该大小,就会轮转到新文件中 rotate_access_log_size = 0 # error log按文件大小轮转 # 设置为0表示不按文件大小轮转,否则当error log达到该大小,就会轮转到新文件中 rotate_error_log_size = 0 # 保留日志文件的日期0表示不删除旧的日志文件 log_file_keep_days = 0 # 文件同步的时候,是否忽略无效的binlog记录 file_sync_skip_invalid_record = false # 是否使用连接池 use_connection_pool = true # 连接的空闲时间超过这个时间将被关闭,单位:秒 connection_pool_max_idle_time = 3600 # 是否使用gzip压缩二进制日志文件 compress_binlog = true # 压给它二进制日志时间点 compress_binlog_time = 01:30 # 是否检查存储路径的标记以防止混淆,建议开启,如果两个服务使用 # 一个相同的存储路径,此参数要设置为 false check_store_path_mark = true # 服务域名, 如果为空则表示使用 IP 地址 http.domain_name = # http 端口 http.server_port = 8888
# 连接的超时时间 connect_timeout = 5 # 网络超时(秒),默认值 60s network_timeout = 60 # 存储日志文件的基本路径 base_path = /home/yuqing/fastdfs # tracker server的列表 多个tracker就设置多个 tracker_server = 192.168.0.196:22122 tracker_server = 192.168.0.197:22122 # 日志级别 ### emerg for emergency ### alert ### crit for critical ### error ### warn for warning ### notice ### info ### debug log_level = info # 是否使用连接池 use_connection_pool = false # 连接的空闲时间超过这个时间将被关闭,单位:秒 connection_pool_max_idle_time = 3600 # 是否加载来自跟踪服务器的FastDFS参数,默认值为false。这里可以设置为true。 load_fdfs_parameters_from_tracker = false # 是否使用storage id替换ip作为storage server标识,默认为false use_storage_id = false # 在文件中设置组名、server ID和对应的IP地址 storage_ids_filename = storage_ids.conf # 端口 http.tracker_server_port = 80
# 连接超时时间(秒)。 # 默认值为30s connect_timeout=2 # 网络接收和发送超时(秒)。 # 默认值为30s network_timeout=30 # 日志存储路径 base_path=/tmp # 从跟踪器服务器加载FastDFS参数。 # 从V1.12开始。 # 默认值为False load_fdfs_parameters_from_tracker=true # 存储同步文件最大延迟秒数。 # 与tracker.conf相同。 # 仅当load_fdfs_Parameters_from_tracker为FALSE时有效。 # 从V1.12开始。 # 默认值为86400秒(一天) storage_sync_file_max_delay = 86400 # 如果使用存储ID而不是IP地址。 # 与tracker.conf相同。 # 仅当load_fdfs_Parameters_from_tracker为FALSE时有效。 # 默认值为False。 # 从V1.13开始 use_storage_id = false # 指定存储ID文件名,可以使用相对路径或绝对路径。 # 与tracker.conf相同。 # 仅当load_fdfs_Parameters_from_tracker为FALSE时有效。 # 从V1.13开始 storage_ids_filename = storage_ids.conf # tracker 服务列表 tracker_server=tracker:22122 # storage server端口号 storage_server_port=23000 # 本地存储服务器的组名 group_name=group1 # 文件url中是否有group名 url_have_group_name = false # 存储路径个数,需要和store_path个数匹配 store_path_count=1 # store_path#,以0为基数,如果store_path0不存在,则其值为base_path。 # 路径必须存在。 # 必须与storage.conf相同 store_path0=/home/yuqing/fastdfs #store_path1=/home/yuqing/fastdfs1 # 日志级别: ### emerg for emergency ### alert ### crit for critical ### error ### warn for warning ### notice ### info ### debug log_level=info # 设置日志文件名,如/usr/local/apache2/logs/mod_fast dfs.log。 # Empty表示输出到stderr(apache和nginx error_log文件) log_filename= # 本地文件系统中不存在文件时的响应方式。 ## proxy:从其他存储服务器获取内容,然后发送给客户端。 ## redirect:重定向到原存储服务器(HTTP Header为Location) response_mode=proxy # 网卡别名前缀,如Linux中的eth,可以通过ifconfig-a查看。 # 多个别名以逗号分隔。空值表示按操作系统类型自动设置。 # 该参数用于获取本地主机的所有IP地址。 # 默认值为空 if_alias_prefix= # IF支持FLV。 # 默认值为False。 # 从v1.15开始 flv_support = true # FLV文件扩展名。 # 默认值为flv。 # 从v1.15开始 flv_extension = flv # 设置群数。 # 设置为无零以支持此存储服务器上的多组。 # 仅针对单个组设置为0。 # 将设置部分分组为[group1]、[group2]、...、[groupn]。 # 默认值为0。 # 从v1.14开始 group_count = 0 # group settings for group #1 # since v1.14 # when support multi-group on this storage server, uncomment following section [group1] # 组名称# group_name=group1 # 组端口 storage_server_port=23000 # 存储路径个数,需要和store_path个数匹配 store_path_count=2 store_path0=/home/yuqing/fastdfs store_path1=/home/yuqing/fastdfs1 # group settings for group #2 # since v1.14 # when support multi-group, uncomment following section as neccessary [group2] group_name=group2 storage_server_port=23000 store_path_count=1 store_path0=/home/yuqing/fastdfs
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。