国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

無限容量分布式文件存儲(chǔ)解決方案

這篇具有很好參考價(jià)值的文章主要介紹了無限容量分布式文件存儲(chǔ)解決方案。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

常見分布式文件系統(tǒng)

常見分布式文件系統(tǒng)比較

常見的分布式文件系統(tǒng)有GFS、HDFS 、Ceph 、GridFS 、TFS、FastDFS等。各自適用于不同的領(lǐng)域。

類 Google FS 都支持文件冗余備份,例如 Google FS、TFS 的備份數(shù)是 3。一個(gè)文件存儲(chǔ)到哪幾個(gè)存儲(chǔ)結(jié)點(diǎn),通常采用動(dòng)態(tài)分配的方式。采用這種方式,一個(gè)文件存儲(chǔ)到的結(jié)點(diǎn)是不確定的。舉例說明,文件備份數(shù)是 3,集群中有 A、B、C、D 四個(gè)存儲(chǔ)結(jié)點(diǎn)。文件 1 可能存儲(chǔ)在 A、B、C 三個(gè)結(jié)點(diǎn),文件 2 可能存儲(chǔ)在 B、C、D 三個(gè)結(jié)點(diǎn),文件 3 可能存儲(chǔ)在 A、B、D 三個(gè)結(jié)點(diǎn)。

指標(biāo) HDFS GlusterFS Ceph TFS FastDFS
開發(fā)語言 Java C C++ C++ C
復(fù)雜度 簡單 簡單 復(fù)雜 復(fù)雜 簡單
在線擴(kuò)容 支持 支持 支持 支持 支持
冗余備份 支持 支持 支持 支持 支持
單點(diǎn)故障 不存在 不存在 不存在 存在 不存在
易用性 安裝簡單,官方文檔專業(yè)化 安裝簡單,官方文檔專業(yè)化 安裝簡單,官方文檔專業(yè)化 安裝復(fù)雜,官方文檔少 安裝簡單,社區(qū)相對活躍
適用場景 適合存儲(chǔ)大文件 跨集群云存儲(chǔ) 單集群的大中小文件 跨集群的小文件 單集群的中小文件

分布式文件系統(tǒng)需要滿足的要求

對一個(gè)分布式文件系統(tǒng)而言,有一些特性是必須要滿足的,否則就無法有競爭力。主要如下:

  • 應(yīng)該符合 POSIX 的文件接口標(biāo)準(zhǔn),使該系統(tǒng)易于使用,同時(shí)對于用戶的遺留系統(tǒng)也無需改造;
  • 對用戶透明,能夠像使用本地文件系統(tǒng)那樣直接使用;
  • 持久化,保證數(shù)據(jù)不會(huì)丟失;
  • 具有伸縮性,當(dāng)數(shù)據(jù)壓力逐漸增長時(shí)能順利擴(kuò)容;
  • 具有可靠的安全機(jī)制,保證數(shù)據(jù)安全;
  • 數(shù)據(jù)一致性,只要文件內(nèi)容不發(fā)生變化,什么時(shí)候去讀,得到的內(nèi)容應(yīng)該都是一樣的。

除此之外,還有些特性是分布式加分項(xiàng),具體如下:

  • 支持的空間越大越好;
  • 支持的并發(fā)訪問請求越多越好;
  • 性能越快越好;
  • 硬件資源的利用率越高越合理,就越好。

分布式文件系統(tǒng)的架構(gòu)模型

無限容量分布式文件存儲(chǔ)解決方案

從業(yè)務(wù)模型和邏輯架構(gòu)上,分布式文件系統(tǒng)需要這幾類組件:

  • 存儲(chǔ)組件:負(fù)責(zé)存儲(chǔ)文件數(shù)據(jù),它要保證文件的持久化、副本間數(shù)據(jù)一致、數(shù)據(jù)塊的分配 / 合并等等;
  • 管理組件:負(fù)責(zé) meta 信息,即文件數(shù)據(jù)的元信息,包括文件存放在哪臺(tái)服務(wù)器上、文件大小、權(quán)限等,除此之外,還要負(fù)責(zé)對存儲(chǔ)組件的管理,包括存儲(chǔ)組件所在的服務(wù)器是否正常存活、是否需要數(shù)據(jù)遷移等;
  • 接口組件:提供接口服務(wù)給應(yīng)用使用,形態(tài)包括 SDK(Java/C/C++ 等)、CLI 命令行終端、以及支持 FUSE 掛載機(jī)制。

而在部署架構(gòu)上,有著“中心化”和“無中心化”兩種路線分歧,即是否把“管理組件”作為分布式文件系統(tǒng)的中心管理節(jié)點(diǎn)?!盁o中心化”的分布式系統(tǒng)的代表是Ceph,而存在“中心化”的分布式系統(tǒng)有很多,如今天要學(xué)的 FastDFS。

FastDFS 簡介

概念

FastDFS 是一個(gè)輕量級、開源的、高性能、分布式的文件系統(tǒng)。它的主要功能包括:

  • 文件存儲(chǔ)
  • 文件同步
  • 文件訪問(文件上傳和文件下載)
  • 解決了大容量存儲(chǔ)和負(fù)載均衡的問題

FastDFS 非常適合以文件為載體的在線服務(wù),如相冊網(wǎng)站、視頻網(wǎng)站等等。FastDFS為互聯(lián)網(wǎng)量身定制,充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制。并注重高可用、高性能等指標(biāo)。使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群,提供文件上傳、下載等服務(wù)。

FastDFS是一種輕量級對象存儲(chǔ)解決方案。如果您需要一個(gè)用于數(shù)據(jù)庫、K8s和虛擬機(jī)(如KVM)的通用分布式文件系統(tǒng),您可以了解FastCFS,它可以實(shí)現(xiàn)強(qiáng)大的數(shù)據(jù)一致性和高性能。

特點(diǎn)

  • 分組存儲(chǔ),簡單靈活;
  • 對等結(jié)構(gòu),不存在單點(diǎn);
  • 文件 ID 由 FastDFS 生成,作為文件訪問憑證。FastDFS 不需要傳統(tǒng)的 name server 或 meta server;
  • 大、中、小文件均可以很好支持,可以存儲(chǔ)海量小文件;
  • 一臺(tái) storage 支持多塊磁盤,支持單盤數(shù)據(jù)恢復(fù);
  • 提供了 nginx 擴(kuò)展模塊,可以和 nginx 無縫銜接;
  • 支持多線程方式上傳和下載文件,支持?jǐn)帱c(diǎn)續(xù)傳;
  • 存儲(chǔ)服務(wù)器上可以保存文件附加屬性。

角色

FastDFS包含兩種角色:tracker 和 storage。

無限容量分布式文件存儲(chǔ)解決方案

Tracker

tracker負(fù)責(zé)文件訪問的調(diào)度和負(fù)載均衡,跟蹤程序或存儲(chǔ)群集中的服務(wù)器可以隨時(shí)添加到群集中或從集群中刪除,而不會(huì)影響在線服務(wù)。tracker集群中的服務(wù)器是對等的,可以根據(jù)服務(wù)器的壓力情況隨時(shí)增加或減少。Tracker server不存在單點(diǎn)故障??蛻舳苏埱骉racker server采用輪詢方式,如果請求的tracker無法提供服務(wù)則換另一個(gè)tracker。

Storage

storage 負(fù)責(zé)存儲(chǔ)文件,其功能是文件管理,包括:文件存儲(chǔ)、文件同步、提供文件訪問接口。它還管理元數(shù)據(jù),這些元數(shù)據(jù)表示為文件鍵值對的屬性。例如:name = “大都督”,其中 key為name,value為 大都督。文件元數(shù)據(jù)是文件屬性列表,可以包含多個(gè)鍵值對。

存儲(chǔ)服務(wù)器按文件卷/組進(jìn)行組織以獲得高容量,存儲(chǔ)系統(tǒng)包含一個(gè)或多個(gè)卷,其文件獨(dú)立于這些卷。整個(gè)存儲(chǔ)系統(tǒng)的容量等于所有卷的容量之和。文件卷包含一個(gè)或多個(gè)存儲(chǔ)服務(wù)器,這些服務(wù)器中的文件相同。文件卷中的服務(wù)器相互備份,所有這些服務(wù)器都是負(fù)載均衡的。將存儲(chǔ)服務(wù)器添加到卷時(shí),此卷中已有的文件將自動(dòng)復(fù)制到此新服務(wù)器,復(fù)制完成后,系統(tǒng)將聯(lián)機(jī)切換此服務(wù)器以提供存儲(chǔ)服務(wù)。

當(dāng)整個(gè)存儲(chǔ)容量不足時(shí),可以添加一個(gè)或多個(gè)卷以擴(kuò)展存儲(chǔ)容量。為此,您需要添加一個(gè)或多個(gè)存儲(chǔ)服務(wù)器。

Storage server會(huì)連接集群中所有的Tracker server,定時(shí)向他們報(bào)告自己的狀態(tài),包括磁盤剩余空間、文件同步狀況、文件上傳下載次數(shù)等統(tǒng)計(jì)信息。

tracker 和 storage 包含一個(gè)或多個(gè)服務(wù)器。

用戶列表

UC

無限容量分布式文件存儲(chǔ)解決方案

支付寶

無限容量分布式文件存儲(chǔ)解決方案

京東商城

無限容量分布式文件存儲(chǔ)解決方案

趕集網(wǎng)

無限容量分布式文件存儲(chǔ)解決方案

迅雷

無限容量分布式文件存儲(chǔ)解決方案

除此之外,還有 58 同城等等。

FastDFS 架構(gòu)

Client為使用FastDFS服務(wù)的調(diào)用方,并且也是一臺(tái)服務(wù)器,它對tracker和storage的調(diào)用均為服務(wù)器間的調(diào)用。存儲(chǔ)服務(wù)器采用分組方式,同組內(nèi)的存儲(chǔ)服務(wù)器上的文件完全相同。不同組的storage server之間不會(huì)相互通信。由storage server主動(dòng)向tracker server報(bào)告狀態(tài)信息,tracker server之間不會(huì)相互通信。

無限容量分布式文件存儲(chǔ)解決方案

上傳交互過程

  1. client詢問tracker上傳到的storage,不需要附加參數(shù);
  2. tracker返回一臺(tái)可用的storage;
  3. client直接和storage通訊完成文件上傳。

客戶端上傳文件后,存儲(chǔ)服務(wù)器將 文件ID 返回給客戶端,此文件ID用于以后訪問該文件的索引信息。

文件索引信息包括:組名,虛擬磁盤路徑,數(shù)據(jù)兩級目錄,文件名。

**組名:**文件上傳后所在的storage組名稱,在文件上傳成功后由storage服務(wù)器返回,需要客戶端自行保存。

**虛擬磁盤路徑:**storage配置的虛擬路徑,與磁盤選項(xiàng)store_path對應(yīng)。如果配置了store_path0,則虛擬路徑是M00,如果配置了store_path1,則虛擬路徑是M01,以此類推。

**數(shù)據(jù)兩級目錄:**storage服務(wù)器在每個(gè)虛擬磁盤路徑下創(chuàng)建的兩級目錄,用于存儲(chǔ)數(shù)據(jù)文件。

**文件名:**與文件上傳時(shí)不同。是由存儲(chǔ)服務(wù)器根據(jù)特定信息生成,文件名包含:源存儲(chǔ)服務(wù)器IP地址、文件創(chuàng)建時(shí)間戳、文件大小、隨機(jī)數(shù)和文件拓展名等信息。

下載交換過程

  1. client詢問tracker下載文件的storage,參數(shù)為文件標(biāo)識(卷名和文件名);
  2. tracker返回一臺(tái)可用的storage;
  3. client直接和storage通訊完成文件下載。

tracker 通過組名/卷名能夠很快的定位到客戶端需要訪問的存儲(chǔ)服務(wù)器組,并選擇合適的存儲(chǔ)服務(wù)器提供客戶端訪問。

storage 根據(jù)“文件存儲(chǔ)虛擬磁盤路徑”和“數(shù)據(jù)文件兩級目錄”可以很快定位到文件所在目錄,并根據(jù)文件名找到客戶端需要訪問的文件。

文件的標(biāo)識由兩部分組成:卷名和文件名,二者缺一不可。

FastDFS 搭建

部署規(guī)劃

無限容量分布式文件存儲(chǔ)解決方案

部署程序 集群/組 主機(jī)名稱/IP 描述
tracker 1 tracker cluster linux30/192.168.10.30 tracker 高可用
tracker 2 tracker cluster linux31/192.168.10.31 tracker 高可用
storage 1 storage server group 1 linux32/192.168.10.32 storage 線性擴(kuò)展
storage 2 storage server group 1 linux33/192.168.10.33 storage 線性擴(kuò)展
storage 3 storage server group 2 linux34/192.168.10.34 storage 線性擴(kuò)展
storage 4 storage server group 2 linux35/192.168.10.35 storage 線性擴(kuò)展

由于使用Nginx提供文件的瀏覽訪問功能,同時(shí)也需要安裝Nginx服務(wù)。

環(huán)境準(zhǔn)備

JDK1.8 安裝

可以通過如下命令查看是否已經(jīng)安裝 JDK1.8 版本

[root@linux30 ~]# java -version

無限容量分布式文件存儲(chǔ)解決方案

Apache Maven 3.6.1 安裝

可以通過如下命令查看是否已經(jīng)安裝 Maven

[root@linux30 ~]# mvn -v

無限容量分布式文件存儲(chǔ)解決方案

Git 安裝

可以通過如下命令查看是否已經(jīng)安裝 Git

[root@linux30 ~]# git --version

無限容量分布式文件存儲(chǔ)解決方案

FastDFS 源碼

FastDFS是C語言開發(fā),所以我們需要去FastDFS官網(wǎng)下載源碼進(jìn)行編譯

[root@linux30 ~]# mkdir -p /opt/projects/
[root@linux30 ~]# cd /opt/projects/
[root@linux30 projects]# git clone https://github.com/happyfish100/fastdfs.git

無限容量分布式文件存儲(chǔ)解決方案

如果由于網(wǎng)絡(luò)問題導(dǎo)致無法使用git下載源碼,則手動(dòng)到官方地址下載壓縮包 fastdfs-6.08.tar.gz

無限容量分布式文件存儲(chǔ)解決方案

安裝FastDFS需要編譯依賴gcc環(huán)境,如果沒有g(shù)cc環(huán)境,需要安裝gcc

[root@linux30 projects]# yum install gcc-c++
libevent 安裝

FastDFS依賴libevent庫,安裝命令如下:

[root@linux30 projects]# yum -y install libevent

無限容量分布式文件存儲(chǔ)解決方案

libfastcommon 安裝

libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS運(yùn)行所需要的一些基礎(chǔ)庫。下載 libfastcommon-1.0.58.tar.gz安裝包,進(jìn)行解壓

[root@linux30 projects]# tar -zxvf libfastcommon-1.0.58.tar.gz

無限容量分布式文件存儲(chǔ)解決方案

[root@linux30 libfastcommon-1.0.58]# ./make.sh
[root@linux30 libfastcommon-1.0.58]# ./make.sh install

無限容量分布式文件存儲(chǔ)解決方案

安裝Tracker

tracker 編譯安裝
[root@linux30 fastdfs-6.08]# cd /opt/projects/fastdfs-6.08
[root@linux30 fastdfs-6.08]# ./make.sh
[root@linux30 fastdfs-6.08]# ./make.sh install

無限容量分布式文件存儲(chǔ)解決方案

配置 tracker.conf
[root@linux30 fdfs]# cd /etc/fdfs/
[root@linux30 fdfs]# vi tracker.conf
base_path = /tmp/fastdfs/tracker
啟動(dòng) tracker
[root@linux30 fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
[root@linux30 fdfs]# ps -ef | grep fdfs

無限容量分布式文件存儲(chǔ)解決方案

安裝Storage

啟動(dòng) linux32/192.168.10.32 虛擬機(jī),同樣需要安裝 libevent、libfastcommon-1.0.58.tar.gz 以及下載 fastdfs-6.08.tar.gz 安裝包,安裝方法同Tracker。

無限容量分布式文件存儲(chǔ)解決方案

Strorage 編譯安裝
[root@linux32 fastdfs-6.08]# cd /opt/fastdfs/fastdfs-6.08/
[root@linux32 fastdfs-6.08]# ./make.sh
[root@linux32 fastdfs-6.08]# ./make.sh install

無限容量分布式文件存儲(chǔ)解決方案

當(dāng)我們在編譯過程中遇到如下報(bào)錯(cuò)時(shí),是因?yàn)橄到y(tǒng)中缺少相關(guān)的運(yùn)行環(huán)境,所以需要執(zhí)行以下命令后,再重新編譯安裝

無限容量分布式文件存儲(chǔ)解決方案

## 安裝運(yùn)行環(huán)境
[root@linux32 fastdfs-6.08]# yum -y install gcc gcc-c++ openssl openssl-devel pcre pcre-devel perl 
## 清空編譯代碼
[root@linux32 fastdfs-6.08]# ./make.sh clean
## 重新編譯、安裝
[root@linux32 fastdfs-6.08]# ./make.sh
[root@linux32 fastdfs-6.08]# ./make.sh install
配置 storage.conf
[root@linux32 fdfs]# vi /etc/fdfs/storage.conf
## 存儲(chǔ)數(shù)據(jù)和日志文件的目錄
base_path = /tmp/fastdfs/storage
## 基于0,存儲(chǔ)文件
store_path0 = /tmp/fastdfs/storage/files
## tracker_server地址,
tracker_server = 192.168.10.30:22122
## 創(chuàng)建 base path, store path
[root@linux32 fastdfs]# mkdir -p /tmp/fastdfs/storage/files
啟動(dòng) storage
[root@linux32 fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
[root@linux32 fdfs]# ps -ef | grep fdfs

無限容量分布式文件存儲(chǔ)解決方案

啟動(dòng)失敗,查看日志如下:

[root@linux32 fdfs]# cd /opt/fastdfs/storage/
[root@linux32 storage]# cat logs/storaged.log

無限容量分布式文件存儲(chǔ)解決方案

需要?jiǎng)?chuàng)建 data 目錄

[root@linux32 storage]# mkdir -p /opt/fastdfs/storage/files/data
[root@linux32 storage]# fdfs_storaged /etc/fdfs/storage.conf restart
[root@linux32 storage]# ps -ef | grep fdfs

無限容量分布式文件存儲(chǔ)解決方案

使用 FastDFS

Client 上傳文件

編輯 /etc/fdfs/client.conf 文件

[root@linux30 fdfs]# vi /etc/fdfs/client.conf
## 存儲(chǔ)客戶端日志的基礎(chǔ)路徑
base_path = /tmp/fastdfs/client
## tracker server 的地址

tracker_server = 192.168.10.30:22122
## 創(chuàng)建 client 目錄
[root@linux30 fdfs]# mkdir -p /tmp/fastdfs/client

創(chuàng)建 test 測試文件

[root@linux30 fdfs]# vi test.txt
My name is 大都督
This is a test file.

無限容量分布式文件存儲(chǔ)解決方案

使用 fdfs_test 命令上傳文件,其使用方法如圖所示

無限容量分布式文件存儲(chǔ)解決方案

執(zhí)行上傳文件命令

[root@linux30 fdfs]# fdfs_test /etc/fdfs/client.conf upload test.txt

無限容量分布式文件存儲(chǔ)解決方案

返回的結(jié)果如下:

## 組名稱
group_name=group1
## 遠(yuǎn)程文件名
remote_filename=M00/00/00/wKgKIGK-gTuAMA0UAAAAKibWwMI239.txt
Client 下載文件

語法:fdfs_test <config_file> download <group_name> <remote_filename>

執(zhí)行如下命令下載文件

[root@linux30 fdfs]# fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/wKgKIGK-gTuAMA0UAAAAKibWwMI239.txt

無限容量分布式文件存儲(chǔ)解決方案

Client 刪除文件

語法:fdfs_test <config_file> delete <group_name> <remote_filename>

執(zhí)行如下命令刪除文件

[root@linux30 fdfs]# fdfs_test /etc/fdfs/client.conf delete group1 M00/00/00/wKgKIGK-gTuAMA0UAAAAKibWwMI239.txt

無限容量分布式文件存儲(chǔ)解決方案

登錄 storage 服務(wù)器(linux32/192.168.10.32),查看是否刪除成功

[root@linux32 00]# cd /tmp/fastdfs/storage/files/data/00/00
[root@linux32 00]# ll

無限容量分布式文件存儲(chǔ)解決方案

確實(shí)已經(jīng)將 wKgKIGK-gTuAMA0UAAAAKibWwMI239.txt 文件刪除了,但還有一個(gè)備份文件,我們能不能在瀏覽器訪問一下呢?記得之前返回響應(yīng)是:

example file url: http://192.168.10.32/group1/M00/00/00/wKgKIGK-gTuAMA0UAAAAKibWwMI239_big.txt

無限容量分布式文件存儲(chǔ)解決方案

無法訪問此網(wǎng)站,所以我們需要安裝 Nginx

安裝 Nginx

在 storage 中安裝 Nginx

找到 Nginx下載網(wǎng)址,下載 相應(yīng)的安裝包,這里我們選擇 nginx-1.23.0.tar.gz安裝包,上傳到 linux32 服務(wù)器,解壓縮

[root@linux32 opt]# tar -zxvf nginx-1.23.0.tar.gz

無限容量分布式文件存儲(chǔ)解決方案

在編譯安裝 Nginx 之前,需要下載 fastdfs-nginx-module 模塊,下載成功后,上傳至linux32服務(wù)器,并解壓

無限容量分布式文件存儲(chǔ)解決方案

接下來,可以編譯安裝 Nginx

[root@linux32 nginx-1.23.0]# ./configure --prefix=/opt/fastdfs/fdfs-nginx --add-module=/opt/fastdfs/fastdfs-nginx-module-1.22/src
[root@linux32 nginx-1.23.0]# make
[root@linux32 nginx-1.23.0]# make install
[root@linux32 fdfs-nginx]# cd /opt/fastdfs/fdfs-nginx/
[root@linux32 fdfs-nginx]# ./sbin/nginx -t

無限容量分布式文件存儲(chǔ)解決方案

配置 conf/nginx.conf 文件,添加如下內(nèi)容

        location /group1/M00 {
            ngx_fastdfs_module;
        }

測試配置沒問題

無限容量分布式文件存儲(chǔ)解決方案

在啟動(dòng) Nginx 之前,還需要配置 mod_fastdfs.conf 文件

## 拷貝一份 mod_fastdfs.conf 配置文件到 /etc/fdfs 目錄下
[root@linux32 src]# cp /opt/fastdfs/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/
[root@linux32 src]# vi /etc/fdfs/mod_fastdfs.conf
## 設(shè)置存儲(chǔ)日志的基礎(chǔ)目錄
base_path=/tmp/fastdfs/fastdfs-mod
## tracker server 的地址
tracker_server=192.168.10.30:22122
## url 中存在group name,需要設(shè)置為 true ?。?!
url_have_group_name = true
## 存儲(chǔ)路徑必須和storage.conf文件中相同
store_path0=/tmp/fastdfs/storage/files
## 放開http配置文件
include http.conf
http.mime_types_filename=/opt/fastdfs/fdfs-nginx/conf/mime.types
http.default_content_type=application/octet-stream

啟動(dòng) Nginx

[root@linux32 fdfs-nginx]# ./sbin/nginx
[root@linux32 fdfs-nginx]# ps -ef|grep nginx

無限容量分布式文件存儲(chǔ)解決方案

再次訪問

example file url: http://192.168.10.32/group1/M00/00/00/wKgKIGK-gTuAMA0UAAAAKibWwMI239_big.txt

無限容量分布式文件存儲(chǔ)解決方案

訪問 linux32/192.168.10.32 storage 服務(wù)成功獲取到數(shù)據(jù),但是訪問 tracker 服務(wù)時(shí)失敗,而在我們使用 FastDFS分布式文件系統(tǒng)時(shí),通常我們會(huì)連接到 tracker 去獲取數(shù)據(jù),所以講 example file url 中 IP 地址修改為 tracker 所在服務(wù)時(shí),即:http://192.168.10.30/group1/M00/00/00/wKgKIGLBE9CAAMlcAAAAKibWwMI230.txt , 發(fā)現(xiàn)無法訪問,如下圖,所以我們需要在 tracker 中同樣安裝 Nginx,以實(shí)現(xiàn)負(fù)載均衡和數(shù)據(jù)的訪問功能

無限容量分布式文件存儲(chǔ)解決方案

在 tracker 中安裝 Nginx

將 Nginx安裝包上傳至linux30服務(wù)器,并解壓到 /opt 目錄下,執(zhí)行編譯安裝

## 編譯 Nginx
[root@linux30 nginx-1.23.0]# ./configure --prefix=/opt/fastdfs/fdfs_nginx
[root@linux30 nginx-1.23.0]# make
[root@linux30 nginx-1.23.0]# make install
[root@linux30 nginx-1.23.0]# cd /opt/fastdfs/fdfs_nginx && ll

無限容量分布式文件存儲(chǔ)解決方案

配置 nginx.conf,添加如下內(nèi)容

[root@linux30 fdfs_nginx]# vi conf/nginx.conf

        upstream storage_servers {
            server 192.168.10.32:80;
        }

        location /group1/M00 {
            proxy_pass  http://storage_servers;
        }

啟動(dòng) Nginx

[root@linux30 fdfs_nginx]# ./sbin/nginx
[root@linux30 fdfs_nginx]# ps -ef|grep nginx

無限容量分布式文件存儲(chǔ)解決方案

刷新瀏覽器,再次訪問

http://192.168.10.30/group1/M00/00/00/wKgKIGLBE9CAAMlcAAAAKibWwMI230.txt

無限容量分布式文件存儲(chǔ)解決方案

Spring Boot 整合 FastDFS

FastDFS java client SDK

使用maven從源碼安裝

下載源碼到本地磁盤(E:\project),執(zhí)行 git clone 命令

E:\project>git clone https://github.com/happyfish100/fastdfs-client-java.git

無限容量分布式文件存儲(chǔ)解決方案

使用maven命令打成jar包

E:\project\fastdfs-client>mvn clean package

無限容量分布式文件存儲(chǔ)解決方案

安裝到maven倉庫

E:\project\fastdfs-client>mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client -Dversion=v1.0 -Dpackaging=jar -Dfile=target/fastdfs-client-java-1.29-SNAPSHOT.jar

創(chuàng)建 Spring Boot 項(xiàng)目

在您的maven項(xiàng)目pom.xml中添加依賴

<dependency>
    <groupId>org.csource</groupId>
    <artifactId>fastdfs-client</artifactId>
    <version>v1.0</version>
</dependency>

創(chuàng)建 fastdfs-client.properties 配置文件

######## FastDFS ######
fastdfs.connect_timeout_in_seconds=5
fastdfs.network_timeout_in_seconds=30
fastdfs.charset=UTF-8
fastdfs.http_anti_steal_token=false
# fastdfs.http_secret_key=FastDFS1234567890
fastdfs.http_tracker_http_port=80
fastdfs.tracker_servers=192.168.10.30:22122
# fastdfs.tracker_servers=10.0.11.201:22122,10.0.11.202:22122,10.0.11.203:22122
fastdfs.connection_pool.enabled=true
fastdfs.connection_pool.max_count_per_entry=500
fastdfs.connection_pool.max_idle_time=3600
fastdfs.connection_pool.max_wait_time_in_ms=1000

初始化 fastdfs-client.properties 配置文件、啟動(dòng)

無限容量分布式文件存儲(chǔ)解決方案

文件的上傳

無限容量分布式文件存儲(chǔ)解決方案

文件的下載

無限容量分布式文件存儲(chǔ)解決方案

文件的刪除

無限容量分布式文件存儲(chǔ)解決方案

總結(jié)

對于文件的操作需要使用 StorageClient,StorageClient的構(gòu)造函數(shù)需要 TrackerServer 和 StorageServer,所以,我們首先通過加載配置文件,獲取到 TrackerClient,再通過 TrackerClient獲取 TrackerServer 和 StorageServer,最后通過 StorageClient 實(shí)現(xiàn)對文件的管理。

FastDFS高級特性

FastDFS 集群

上面介紹的FastDFS分布式文件系統(tǒng)還不滿足高可用,沒有對數(shù)據(jù)進(jìn)行備份存儲(chǔ),存在單點(diǎn)故障問題。所以,接下來,我們需要真正的部署FastDFS的集群,實(shí)現(xiàn)FastDFS的高可用。并對其存儲(chǔ)過程中的配置,特性進(jìn)行詳細(xì)分析。

FastDFS 集群部署

集群的架構(gòu)圖如下:

無限容量分布式文件存儲(chǔ)解決方案

檢查每臺(tái)服務(wù)器是否已經(jīng)下載了壓縮包 fastdfs-6.08.tar.gz和必須的基礎(chǔ)庫 libfastcommon-1.0.58.tar.gz。

首先檢查linux31(192.168.10.31)節(jié)點(diǎn),需要下載FastDFS源碼,創(chuàng)建項(xiàng)目目錄:

## 創(chuàng)建項(xiàng)目目錄
[root@linux31 opt]# mkdir -p /opt/projects
## 進(jìn)入目錄后,上傳壓縮包到該目錄
[root@linux31 projects]# cd /opt/projects/
[root@linux31 projects]# ll
總用量 1024
-rw-r--r--. 1 root root 809448 8月  23 10:56 fastdfs-6.08.tar.gz
-rw-r--r--. 1 root root 235779 8月  23 10:56 libfastcommon-1.0.58.tar.gz
## 解壓縮
[root@linux31 projects]# tar -zxvf fastdfs-6.08.tar.gz
[root@linux31 projects]# tar -zxvf libfastcommon-1.0.58.tar.gz

無限容量分布式文件存儲(chǔ)解決方案

linux32節(jié)點(diǎn)之前安裝過storage,無需重復(fù)下載。

無限容量分布式文件存儲(chǔ)解決方案

重復(fù)上述步驟,在linux33(192.168.10.33)和linux34(192.168.10.34)服務(wù)器分別創(chuàng)建項(xiàng)目目錄,上傳源碼

無限容量分布式文件存儲(chǔ)解決方案

無限容量分布式文件存儲(chǔ)解決方案

在編譯之前,需要安裝FastDFS依賴的環(huán)境,在每臺(tái)服務(wù)器分別執(zhí)行如下操作

[root@linux30 projects]# yum install gcc gcc-c++ libevent openssl openssl-devel pcre pcre-devel perl
[root@linux31 projects]# yum install gcc gcc-c++ libevent openssl openssl-devel pcre pcre-devel perl
[root@linux32 fastdfs]# yum install gcc gcc-c++ libevent openssl openssl-devel pcre pcre-devel perl
[root@linux33 projects]# yum install gcc gcc-c++ libevent openssl openssl-devel pcre pcre-devel perl
[root@linux34 projects]# yum install gcc gcc-c++ libevent openssl openssl-devel pcre pcre-devel perl

無限容量分布式文件存儲(chǔ)解決方案

接下來,在每臺(tái)服務(wù)器分別進(jìn)行編譯、安裝

linux30:

## 進(jìn)入基礎(chǔ)庫目錄,執(zhí)行如下命令進(jìn)行編譯、安裝
[root@linux30 libfastcommon-1.0.58]# ./make.sh
[root@linux30 libfastcommon-1.0.58]# ./make.sh install

## 進(jìn)入fastdfs-6.08根目錄,進(jìn)行編譯、安裝
[root@linux30 fastdfs-6.08]# ./make.sh
[root@linux30 fastdfs-6.08]# ./make.sh install

linux31、linux32、linux33、linux34分別執(zhí)行上述操作,進(jìn)行編譯、安裝

無限容量分布式文件存儲(chǔ)解決方案

安裝成功之后,分別對 tracker 和 storage 進(jìn)行配置,我們先配置 tracker

linux30節(jié)點(diǎn):

## 配置 tracker.conf
[root@linux30 fdfs]# vi /etc/fdfs/tracker.conf
# 只需修改基礎(chǔ)路徑配置即可
base_path = /tmp/fastdfs/tracker

linux31節(jié)點(diǎn):

配置 tracker.conf

[root@linux31 fastdfs-6.08]# vi /etc/fdfs/tracker.conf
base_path = /tmp/fastdfs/tracker


對于linux32、linux33、linux34作為storage,需要配置 /etc/fdfs目錄下的 storage.conf

linux32和linux33屬于同一個(gè)組 group1,分別修改配置文件如下:

[root@linux32 fdfs]# vi /etc/fdfs/storage.conf
base_path = /tmp/fastdfs/storage
store_path0 = /tmp/fastdfs/storage/files

# 集群配置
tracker_server = 192.168.10.30:22122
tracker_server = 192.168.10.31:22122

linux34的配置略有不同,配置如下:

[root@linux34 fdfs]# vi /etc/fdfs/storage.conf
# 組名為group2
group_name = group2
base_path = /tmp/fastdfs/storage
store_path0 = /tmp/fastdfs/storage/files
tracker_server = 192.168.10.30:22122
tracker_server = 192.168.10.31:22122

啟動(dòng)集群:

在linux30服務(wù)器啟動(dòng)tracker

[root@linux30 fdfs]# fdfs_trackerd /etc/fdfs/tracker.conf start

無限容量分布式文件存儲(chǔ)解決方案

啟動(dòng)失敗,啟動(dòng)前需要?jiǎng)?chuàng)建目錄

[root@linux30 fdfs]# mkdir -p /tmp/fastdfs/tracker

再次啟動(dòng),成功

無限容量分布式文件存儲(chǔ)解決方案

在linux31服務(wù)器啟動(dòng)tracker

無限容量分布式文件存儲(chǔ)解決方案

接下來啟動(dòng) linux32、linux33、linux34服務(wù)器的storage

在linux32節(jié)點(diǎn)啟動(dòng)storage

[root@linux32 fdfs]# fdfs_storaged /etc/fdfs/storage.conf start

出現(xiàn)如下報(bào)錯(cuò)信息,需要提前創(chuàng)建目錄

無限容量分布式文件存儲(chǔ)解決方案

[root@linux32 fdfs]# mkdir -p /tmp/fastdfs/storage
[root@linux32 fdfs]# mkdir -p /tmp/fastdfs/storage/files

再次啟動(dòng),成功

無限容量分布式文件存儲(chǔ)解決方案

除此之外,linux33、linux34服務(wù)器的storage啟動(dòng)方式和上述操作步驟相同,這里不再贅述。

無限容量分布式文件存儲(chǔ)解決方案

無限容量分布式文件存儲(chǔ)解決方案

集群環(huán)境已經(jīng)搭建成功,接下來啟動(dòng) FastDFS客戶端,上傳文件測試:

無限容量分布式文件存儲(chǔ)解決方案

文件上傳成功,當(dāng)我們頻繁上傳幾次文件時(shí),依然會(huì)將文件上傳到組 group1,這是為什么呢?

此時(shí)需要查看 linux30服務(wù)器的tracker.conf配置情況:

無限容量分布式文件存儲(chǔ)解決方案

如果想實(shí)現(xiàn)負(fù)載均衡,輪詢的效果,該如何實(shí)現(xiàn)呢?

FastDFS 集群負(fù)載均衡

修改 linux30(192.168.10.30)和 linux31(192.168.10.31)服務(wù)器的tracker.conf配置文件,配置如下:

vi /etc/fdfs/tracker.conf

store_lookup = 0

無限容量分布式文件存儲(chǔ)解決方案

重啟兩臺(tái) tracker服務(wù)

fdfs_trackerd /etc/fdfs/tracker.conf restart

無限容量分布式文件存儲(chǔ)解決方案

修改配置文件,只讓客戶端連接到一臺(tái)tracker

fastdfs.tracker_servers=192.168.10.30:22122

無限容量分布式文件存儲(chǔ)解決方案

如果連接兩臺(tái)tracker,則在兩個(gè)tracker之間會(huì)出現(xiàn)輪詢的現(xiàn)象,不易發(fā)現(xiàn)文件上傳時(shí)的負(fù)載均衡效果。

啟動(dòng)客戶端服務(wù),多次上傳文件后,出現(xiàn)輪詢效果,如圖:

無限容量分布式文件存儲(chǔ)解決方案

除此之外,如果想指定組進(jìn)行上傳,就容易多了。往下看…

FastDFS 集群指定組

這次,我們只修改 linux31(192.168.10.31)服務(wù)器的 tracker.conf 配置文件

無限容量分布式文件存儲(chǔ)解決方案

重啟tracker

[root@linux31 ~]# fdfs_trackerd /etc/fdfs/tracker.conf restart

無限容量分布式文件存儲(chǔ)解決方案

修改客戶端配置文件,連接到 linux31節(jié)點(diǎn)的tracker進(jìn)行測試

無限容量分布式文件存儲(chǔ)解決方案

測試成功,所有的文件都上傳到了組group2

無限容量分布式文件存儲(chǔ)解決方案

打開瀏覽器,選擇上傳成功的文件,拼接連接地址如下:

http://192.168.10.31/group2/M00/00/00/wKgKImMEf2mAM-SIAAAAEj1ApV0947.txt

無限容量分布式文件存儲(chǔ)解決方案

無法訪問此網(wǎng)站,所以接下來,需要安裝 Nginx

安裝Nginx

大家要注意,在每臺(tái)服務(wù)器上安裝的Nginx的作用略有不同。其中,linux30、linux31中的Nginx為負(fù)載均衡功能,linux32、linux33、linux34服務(wù)器中的Nginx會(huì)使用擴(kuò)展模塊訪問文件。所以,在安裝Nginx時(shí),linux30、linux31可以直接上傳 nginx-1.23.0.tar.gz安裝包。而linux32、linux33、linux34三臺(tái)服務(wù)器除此之外,還需要上傳擴(kuò)展 fastdfs-nginx-module 模塊。

在linux30、linux31節(jié)點(diǎn)上傳Nginx安裝包并解壓

無限容量分布式文件存儲(chǔ)解決方案

在linux32、linux33、linux34上傳Nginx安裝包和擴(kuò)展模塊。解壓縮后,如圖所示:

無限容量分布式文件存儲(chǔ)解決方案

在linux30、linux31節(jié)點(diǎn)編譯、安裝Nginx

[root@linux31 nginx-1.23.0]# ./configure --prefix=/opt/fastdfs/fdfs_nginx
[root@linux31 nginx-1.23.0]# make
[root@linux31 nginx-1.23.0]# make install
[root@linux31 nginx-1.23.0]# cd ../fastdfs/fdfs_nginx/

無限容量分布式文件存儲(chǔ)解決方案

接下來在linux32、linux33、linux34編譯、安裝Nginx安裝包和擴(kuò)展模塊

[root@linux33 nginx-1.23.0]# ./configure --prefix=/opt/fastdfs/fdfs_nginx --add-module=/opt/fastdfs/fastdfs-nginx-module-1.22/src
[root@linux33 nginx-1.23.0]# make
[root@linux33 nginx-1.23.0]# make install
[root@linux33 fdfs_nginx]# cd /opt/fastdfs/fdfs_nginx

無限容量分布式文件存儲(chǔ)解決方案

至此,Nginx的編譯、安裝部分已經(jīng)完成

配置Nginx:

在linux30、linux31節(jié)點(diǎn)分別配置 conf/nginx.conf

[root@linux30 fdfs_nginx]# vi conf/nginx.conf

location ~ /group[1-9]/M0[0-9] {
    proxy_pass  http://storage_servers;
}
upstream storage_servers {
    server 192.168.10.32:80;
    server 192.168.10.33:80;
    server 192.168.10.34:80;
}

啟動(dòng)nginx

[root@linux30 fdfs_nginx]# ./sbin/nginx
[root@linux30 fdfs_nginx]# ps -ef|grep nginx

無限容量分布式文件存儲(chǔ)解決方案

接下來在linux32、linux33、linux34節(jié)點(diǎn)分別配置 conf/nginx.conf

[root@linux33 fdfs-nginx]# vi conf/nginx.conf

        location ~ /group[1-9]/M0[0-9] {
            ngx_fastdfs_module;
        }

執(zhí)行如下命令,將擴(kuò)展模塊中的 mod_fastdfs.conf,拷貝到 /etc/fdfs/ 目錄下

[root@linux33 src]# cp /opt/fastdfs/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/
[root@linux33 src]# cd /etc/fdfs/
[root@linux33 fdfs]# vi mod_fastdfs.conf
base_path=/tmp/fastdfs/mod-fastdfs
tracker_server=192.168.10.30:22122
tracker_server=192.168.10.31:22122
url_have_group_name = true
store_path0=/tmp/fastdfs/storage/files

include http.conf
http.mime_types_filename=/opt/fastdfs/fdfs-nginx/conf/mime.types
http.default_content_type=application/octet-stream

group_count = 2

[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/tmp/fastdfs/storage/files

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/tmp/fastdfs/storage/files

linux32和linux33屬于同一個(gè)組group1,所以上面的配置也適合linux32。

linux34屬于組group2,所以只需修改組的名稱即可

[root@linux34 fdfs]# vi mod_fastdfs.conf
# the group name of the local storage server
group_name=group2

啟動(dòng)nginx

[root@linux34 fdfs_nginx]# ./sbin/nginx
[root@linux34 fdfs_nginx]# ps -ef|grep nginx

無限容量分布式文件存儲(chǔ)解決方案

再次訪問瀏覽器,訪問成功

無限容量分布式文件存儲(chǔ)解決方案

Tracker的高可用,輪詢方式

同組內(nèi)的存儲(chǔ)服務(wù)器是負(fù)載均衡的

擴(kuò)縮容的實(shí)現(xiàn)

數(shù)據(jù)的安全可靠文章來源地址http://www.zghlxwxcb.cn/news/detail-514368.html

到了這里,關(guān)于無限容量分布式文件存儲(chǔ)解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第6章 分布式文件存儲(chǔ)

    分布式文件存儲(chǔ) 1、理解Oauth2.0的功能作模式 2、實(shí)現(xiàn)mini商城項(xiàng)目的權(quán)限登錄 1、了解文件存儲(chǔ)系統(tǒng)的概念 2、了解常用文件服務(wù)器的區(qū)別 3、掌握Minio的應(yīng)用 官網(wǎng):

    2024年02月12日
    瀏覽(28)
  • 分布式文件存儲(chǔ)MinIO-監(jiān)控

    分布式文件存儲(chǔ)MinIO-監(jiān)控

    MinIO自身提供了關(guān)于集群狀態(tài)和操作的相關(guān)的Prometheus SQL指標(biāo)與支持Prometheus數(shù)據(jù)模型的監(jiān)控指標(biāo)收集工具進(jìn)行搭配使用,無論是主機(jī)部署亦或是云上部署都可以進(jìn)行集成。官方選定的第三方監(jiān)控軟件為Prometheus和InfluxDB,使用者可以根據(jù)各自公司對于監(jiān)控設(shè)施的建設(shè)進(jìn)行選擇。

    2024年02月11日
    瀏覽(25)
  • 分布式文件存儲(chǔ)系統(tǒng)-FastDFS

    分布式文件存儲(chǔ)系統(tǒng)-FastDFS

    ? ? ? ? 前言:FastDFS 是一個(gè)分布式文件存儲(chǔ)系統(tǒng), 主要用于存儲(chǔ)和管理 大規(guī)模 的 文件數(shù)據(jù),如圖片、視頻、文檔等 ,是淘寶前架構(gòu)師為了存儲(chǔ)圖片用C語言開發(fā)出來的系統(tǒng)。 ????????服務(wù)端有兩個(gè)組件? Tracker Server 與 Storage Server ,對應(yīng)兩個(gè)角色: Tracker: 管理和調(diào)度集群

    2024年02月13日
    瀏覽(26)
  • 如何模擬實(shí)現(xiàn)分布式文件存儲(chǔ)

    如何模擬實(shí)現(xiàn)分布式文件存儲(chǔ)

    傳統(tǒng)做法是是在宕機(jī)存儲(chǔ)。但隨著數(shù)據(jù)變多,會(huì)遇到存儲(chǔ)瓶頸 單機(jī)縱向擴(kuò)展:內(nèi)存不夠加內(nèi)存,磁盤不夠家磁盤。有上限限制,不能無限制加下去 多機(jī)橫向擴(kuò)展:采用 多臺(tái)機(jī)器存儲(chǔ) ,一臺(tái)不夠就加機(jī)器。理論上可以無線 多臺(tái)機(jī)器存儲(chǔ)也就意味邁入了 分布式存儲(chǔ) 當(dāng)文件被分

    2024年02月16日
    瀏覽(20)
  • OSS文件上傳、MinIO分布式文件存儲(chǔ)系統(tǒng)

    阿里云OSS上傳圖片 實(shí)現(xiàn)步驟: 1. 定義OSS相關(guān)配置 application-dev.yml application.yml 2. 讀取OSS配置 在sky-common模塊中,已定義 3. 生成OSS工具類對象 在sky-server模塊 其中,AliOssUtil.java已在sky-common模塊中定義 4. 定義文件上傳接口 在sky-server模塊中定義接口 MinIO分布式文件存儲(chǔ)系統(tǒng) MinI

    2024年01月24日
    瀏覽(20)
  • Hadoop:HDFS--分布式文件存儲(chǔ)系統(tǒng)

    Hadoop:HDFS--分布式文件存儲(chǔ)系統(tǒng)

    目錄 ? HDFS的基礎(chǔ)架構(gòu) VMware虛擬機(jī)部署HDFS集群 HDFS集群啟停命令 HDFS Shell操作 hadoop 命令體系: 創(chuàng)建文件夾 -mkdir ?查看目錄內(nèi)容 -ls ?上傳文件到hdfs -put 查看HDFS文件內(nèi)容 -cat 下載HDFS文件 -get 復(fù)制HDFS文件 -cp 追加數(shù)據(jù)到HDFS文件中 -appendToFile HDFS文件移動(dòng) -mv ?刪除HDFS文件 -rm ?

    2024年02月09日
    瀏覽(92)
  • 分布式文件存儲(chǔ)與數(shù)據(jù)緩存 FastDFS

    分布式文件存儲(chǔ)與數(shù)據(jù)緩存 FastDFS

    單機(jī)時(shí)代 初創(chuàng)時(shí)期由于時(shí)間緊迫,在各種資源有限的情況下,通常就直接在項(xiàng)目目錄下建立靜態(tài)文件夾,用于用戶存放項(xiàng)目中的文件資源。如果按不同類型再細(xì)分,可以在項(xiàng)目目錄下再建立不同的子目錄來區(qū)分。例如: resourcesstaticfile 、 resourcesstaticimg 等。 優(yōu)點(diǎn) :便利,

    2024年02月16日
    瀏覽(26)
  • Zookeeper的分布式文件系統(tǒng)與存儲(chǔ)

    Zookeeper是一個(gè)開源的分布式協(xié)調(diào)服務(wù),它為分布式應(yīng)用提供一致性、可靠性和可擴(kuò)展性等特性。Zookeeper的核心功能包括集群管理、配置管理、領(lǐng)導(dǎo)選舉、分布式同步等。在分布式系統(tǒng)中,文件系統(tǒng)和存儲(chǔ)是非常關(guān)鍵的組成部分,Zookeeper作為分布式協(xié)調(diào)服務(wù),也可以用于管理和

    2024年02月20日
    瀏覽(21)
  • 淘寶分布式文件存儲(chǔ)系統(tǒng)( 二 ) -TFS

    淘寶分布式文件存儲(chǔ)系統(tǒng)( 二 ) -TFS

    淘寶分布式文件存儲(chǔ)系統(tǒng)( 二 ) -TFS 目錄 : 大文件存儲(chǔ)結(jié)構(gòu) 哈希鏈表的結(jié)構(gòu) 文件映射原理及對應(yīng)的API 文件映射頭文件的定義 大文件存儲(chǔ)結(jié)構(gòu) : 采用塊(block)文件的形式對數(shù)據(jù)進(jìn)行存儲(chǔ) , 分成索引塊,主塊 , 擴(kuò)展塊 。所有的小文件都是存放到主塊中的 ,擴(kuò)展塊用來保存溢出的數(shù)

    2024年02月07日
    瀏覽(25)
  • 淘寶分布式文件存儲(chǔ)系統(tǒng)( 三 ) -TFS

    淘寶分布式文件存儲(chǔ)系統(tǒng)( 三 ) -TFS

    目錄 : 文件重新映射的接口介紹 文件映射 mmap_file.cpp的實(shí)現(xiàn) 進(jìn)行測試 文件重新映射 (增加 或者 減少 文件映射區(qū)域的大小) mremap() 函數(shù)的原型如下 #include sys/mman.h void *mremap( void * old_address , size_t old_size , size_t new_size , int flags ); 參數(shù)說明 : old_address :指向原映射區(qū)域的起始地

    2024年02月07日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包