什么是FastDFS,相册letbase64ase的基础?
FastDFS是用C编写的高质量开源文件系统
它是由淘宝开发平台高级架构师Yu King和FastDFS孵化平台开发的
它管理文件,功能包括文件存储,文件同步,文件访问等,解决了大容量存储和负载平衡问题。
它特别适用于在线文件传输服务,例如相册网站,视频网站和电子商务网站。它特别适合作为在线服务载体的中小型文件(4 km \\ filesize \\ 500M)。
FastDFS专为Internet量身定制,同时考虑到所有不必要的存储,负载平衡,在线扩展评估系统,重点关注高可用性,高效率和其他指标。 FastDFS使构建高质量的文件服务集群轻松进行下载和下载。 ,
FastDFS的实现原理
FastDFS系统分为三个角色:跟踪服务器,备份服务器和客户端。
追踪服务器
主要协调呼叫工作并维护服务器的平衡角色
它负责管理所有备份服务器和组。每个备份服务器启动并运行后,它将与Tracker一起定期从组和其他信息中通知它,以保持心跳。
可以有很多Tracker服务器,Tracker服务器彼此相等,没有故障点,客户端要求Tracker服务器使用选择方法,如果查询的Tracker服务器无法提供服务,则另外一个
存储服务器:
主要提供容量和存储服务
以该组为单位,每个组中有许多备份服务器,数据是重复的,并且每个组彼此独立。
接受组存储库的优点是灵活性和可控性,例如下载可以由客户端或跟踪器设置的文件以选择选择时间表。
如果组的带宽过高,则备份服务器可能会扩展以增加重组服务的容量。当功率不足时,可以增加带宽。
客户:
上传和下载数据服务器是我们的服务器。
储存策略:
备份节点按组组织以支持大容量。存储系统由一个或多个组组成。组文件彼此独立。所有组都增加了备份系统的功能。一个组可以具有一个或多个由以下组成的存储服务器:组中存储的服务器文件是相同的。该组中的许多服务器都扮演着额外的保留和负载平衡角色。将新服务器添加到组中后,系统会自动完成组中新文件的同步,同步完成后,系统将自动更改新服务器以提供在线服务,当存储空间不足或用完时,可以动态添加组,只需添加一项或多项服务?在一个新组中配置它们,从而扩展了存储系统的容量。
收集存储状态
存储服务器将通过配置和配置其状态(包括磁盘空间,文件同步状态,文件加载和下载时间以及其他统计信息)来连接到所有群集搜索服务器。
7个备份服务器状态
FDFS_STORAGE_STATUS_INIT。 Initiative,是与现有数据FDFS_STORAGE_STATUS_WAIT_SYNC不同步的源服务器。等待同步,尚未实现与现有数据同步的源服务器FDFS_STORAGE_STATUS_SYNSC。在线FDFS_STORAGE_STATUS_ONLINE。在线,无法提供服务FDFS_STORAGE_STATUS_ACTIVE。在线,可以提供服务
当存储库的状态为联机时,它将发送到心跳附件,tracekr服务器将联机更改其状态并可以提供服务。
文件负载分析
1.跟踪服务器收集有关备份服务器状态的信息
存储服务器会定期将剩余的磁盘空间,文件同步状态,文件加载和加载时间以及其他信息发送到Tracker服务器(多个)。存储服务器会将所有搜索引擎服务器连接到整个集群,并发送其状态。
2.选择跟踪服务器
当群集中有多个跟踪服务器时,由于跟踪服务器是对等的,客户端可以在引导文件中选择tracker3。将保存文件上传到上传文件。跟踪器收到上传文件后,将提供要保存的文件。文件组支持以下规则来选择组
所有集体调查
指定一个特定的组
选择一个有更多空间的团体
4.选择一个备份服务器
选择组时,跟踪器将在组的备份服务器中选择客户。它支持以下存储规则
在组中保留查询
依IP排序
根据优先选择,可调
5.选择存储路径
备份服务器到位后,客户端将发送将文件写入存储库的请求,并且存储库将按照以下规则提供备份目录(您可以在备份文件中设置多个存储库*)
选择多个备份目录
首先,自由空间
6.创建一个文件名
选择文件目录后,仓库将创建一个以该文件命名的文件,该文件在源服务器的ip服务器,文件创建时间,文件大小,文件crc32和?????随机数上组合在一起,然后使用base 74加密二进制数据库。选择一个两层目录。选择备份目录后,文件夹将移交文件标识标记。每个备份目录下都有256 * 256个字幕的两个级别。根据文件名,存储将完成两次。哈希,即到目录之一的路由,然后将文件另存为细分中的文件名
8.创建一个文件
当文件存储在目录中时,则认为该文件已成功保存。接下来,将为修改后的文件ID,文件ID,组,存储库,两层目录,文件名:文件后缀创建修改后的文件。
文件同步分析
写入文件时,客户端会将文件写入成功写入文件的备份服务器组。保存服务器写入文件后,背景字符串会将文件同步到同一组的备份服务器。
保存每个文件后立即写博客。博客不包含文件的数据,仅包含有关文件名的信息。该博客用于同步。存储库将在同步组中的其他存储库方面取得进展,以便可以在重新启动后进行连接。时间进度将继续同步,并且进度是定时的,因此最好使集群中的所有服务器时钟保持同步。
进度同步进度将作为元数据的一部分报告给发言人,选择器将在选择存储库时将同步进度作为参考。例如:
例如,该组中有三个备份服务器:A,B:C。 A将C与T1的进度同步(将在T1之前写入的文件与B同步),并且B将C与T2的时间戳同步(T2 \\ T1)跟踪器收到同步进度信息时,会将其设置为???????使用最小的C.同步计时器。 T1写数据同步到C);同样,根据上述规则,搜索者将为A ? B创建一个同步时间戳。
文件下载过程分析
1.跟踪服务器收集有关备份服务器状态的信息
存储服务器定期将磁盘空间,文件同步状态,文件上传和下载信息发送到双服务器。
存储服务器将连接到整个集群搜索引擎的重要服务?报告其状态
2.选择按钮服务器
与上传文件一样,任意选择
3.选择可用的存储服务器
客户端将请求下载到目标?必须上传文件名信息:上传器将代表文件发送组名,路径信息,文件大小,创建时间,源存储服务器ip ?其他信息,然后为服务器选择备份。阅读调查室内花草哪里有图片价格大全
由于组同步是通过异步线程在后台完成的,因此在读取文件时它可能不同步。为避免这种情况,跟踪器将设置以下规则,以选择该组可以读取的备份服务器。
只要存在源资源,就在其上加载文件的源存储库,必须包含此文件,并且使用文件名对源地址进行加密
文件创建时间是存储同步的时间,?当前时间是文件创建时间。最大文件同步时间,即在文件同步之后,文件必须在最大同步时间之后存在。
文件创建时间文件同步周期,即计划同步文件之前的文件被确定为要同步
当前时间文件创建标记>同步延迟阈值,即文件必须在经过同步延迟阈值后才进行同步
添加备份服务器
将备份服务器添加到组后,系统会自动同步可用数据,处理逻辑如下:
1.存储服务器A连接到跟踪服务器,搜索服务器A将备份服务器的状态设置为FDFS_STORAGE_STATUS_INIT。 storageserver A向源服务器请求附加同步?附加同步计划。如果组A中只有一台备份服务器,或者组中成功加载的文件数为0,则不需要同步任何数据,并且备份服务器A可以提供联机服务。此时,跟踪器状态设置为FDFS_STORAGE_STATUS_ONLINE,否则跟踪器服务器状态设置为FDFS_STORAGE_STATUS_WAIT_SYNC,并进入开发的第二阶段。 2.假设跟踪服务器分配了备份服务器A以同步现有数据存储服务器B,则它是同一组。服务器开关???搜索服务器报告新添加的备份服务器A将启动同步线程:将使用A保存备份服务器,并将同步源服务器?计时器添加到备份服务器。答:备份服务器将在存储时将数据同步到备份服务器A,其余的备份服务器通常会在减少时间后同步,只有源数据才同步到备份服务器。减少A后,备份B的备份服务器A的同步从附加同步更改为普通同步,并且仅源数据同步。 3.存储服务器B将所有数据与备份服务器A同步。如果没有数据同步,则备份服务器会要求B搜索引擎服务器将备份服务器的状态设置为FDFS_STORAGE_STATUS_ONLINE。
4.当备份服务器A在搜索服务器上启动心跳时,搜索服务器将其更改为FDFS_STORAGE_STATUS_ACTIEFastDFS。JS
原文:https://www.cnblogs.com/blogst/p/12664621.html