注:、ネットワークカバレッジのためのテキスト材料のほとんどは、ビルドの理解への物語と個人的な学習経験のほとんどと、間違っている場合は、ご了承くださいハードと指摘しました。
A. FastDfsプロフィール
FastDFSは軽量なオープンソースの分散ファイルシステムである、そのファイル管理機能が含まれます:などのファイルストレージ、ファイルの同期、ファイルアクセス(ファイルのアップロード、ファイルのダウンロード)、大容量記憶装置と負荷分散の問題を解決するために。
FastDFSインターネットのためのオーダーメイド、冗長性の完全なアカウント、ロードバランシング、および拡張リニア他のメカニズム、および高可用性に焦点を当て、高い性能と他の指標、それはファイルのアップロードとダウンロードを提供するために、高性能なファイルサーバクラスタを構築するために使用FastDFSに簡単です。その他のサービス。
以下、FDSと呼びます。
二.fds作品
役割1. FDSの構成
サービススケジュール、負荷分散のためにアクセスする責任追跡コーディネーター、;:トラッカー
ストレージ:ストレージ・ノード、データストレージ、同期は、アクセス・インターフェースを提供します。
次の図に示すクライアント、ストレージ、トラッカー関係の状況:
2. FDSファイルアップロード原理
クライアント(UE)、ファイル送信するためのアップロード、クライアント(クライアント)の、トラッカーに使用可能なストレージ尋問トラッカーを要求し、その後、クライアントのアドレスに戻る(UE)使用可能なストレージは、ストレージの完全なファイル、ファイルアップロード用のストレージファイルアップロードインターフェースを呼び出しますストレージ、ファイルストレージの情報が返された後、ファイルのアップロードが完了します。
3. FDSファイルをダウンロード原則
クライアント(UE)は、ファイル送信するために、ダウンロード、クライアント(クライアント)の使用可能なストレージは、ストレージファイルのダウンロード・インターフェースを呼び出すクライアントのアドレス(UE)に戻り、その後、トラッカー、トラッカーへのリンク照会可能なストレージをリンク要求を(と同期状態を確認してください) 、ファイル転送情報、ストレージはファイルへのアクセス、ファイル情報を返すに基づいて検索します。
4. FDSファイル同期原理
4.1 客户端将文件上传至Group内一个Storage即认为上传文件成功,Storage存储文件完成后,会由后台线程将文件同步至同Group内其他的Storage。
4.2 每个Storage写文件后,同时会写一份binlog,binlog里不包含文件数据,只包含文件名等元信息,这份binlog用于后台同步,Storage会记录向Group内其他Storage同步的进度,以便重启后能接上次的进度继续同步;进度以时间戳的方式进行记录,所以最好能保证集群内所有Server的时钟保持同步。
4.3 Storage的同步进度会作为元数据的一部分汇报到Tracker上,Tracke在选择读Storage的时候会以同步进度作为参考。
文件同步工作流程简图:
流程图解释:
1. Group内的Storage定时读取BinLog,获取同步进度;
2. Group内的Storage有数据变化时,将元信息写入BinLog;
3. Group内的其他Storage读取BinLog后,根据同步进度提示与发生数据变化的Storage进行同步交互;
*4. 完成同步后,进度信息上传到Tracker,Tracker根据该进度进行与Storage的进度参考。
5. fds联合原理
结合原理简图1步骤,启动Storage服务后,会根据配置文件中的Tracker地址主动访问Tracker服务器,进行设备登记;
结合原理简图2步骤,Tracker服务收到登记后,生成列表,下发至所有同Group内的所有Strorage;
结合原理简图3步骤,同Group内的Storage根据Tracker下发列表,进行互相关联同步;
fds联合原理简图:
注意:
所有的Tracker都是相对独立的,不会互相联动;
只有相同Group内的Storage才会进行同步;
Group的存储空间大小,使用组内Storage最小的空间表示。