項目實戰9—企業級分布式存儲應用與實戰MogileFS、FastDFS


企業級分布式存儲應用與實戰-mogilefs

  環境:公司已經有了大量沉淀用戶,為了讓這些沉淀用戶長期使用公司平台,公司決定增加用戶粘性,逐步發展基於社交屬性的多樣化業務模式,決定開展用戶討論區、賣家秀、買家秀、用戶試穿短視頻等業務,因此,公司新的業務的業務特征將需要海量數據存儲,你的領導要求基於開源技術,實現對公司海量存儲業務的技術研究和實現,你可以完成任務嗎?

 總項目流程圖,詳見 http://www.cnblogs.com/along21/p/8000812.html

 

實驗前准備:配置好yum源、防火牆關閉、各節點時鍾服務同步

 

實戰一:企業級分布式存儲應用與實戰 mogilefs 實現

架構圖

原理

(1)mogileFS主要由三部分構成:tracker節點,database節點,storage節點

Tracker(MogileFSd 進程):這個是 MogileFS 的核心部分,他是一個調度器,MogileFSd 進程就是trackers進程程序,trackers 做了很多工作:Replication,Deletion,Query,Reaper,Monitor 等等,這個是基於事件的( event-based ) 父進程/消息總線來管理所有來之於客戶端應用的交互(requesting operations to be performed),,包括將請求負載平衡到多個"query workers"中,然后讓 MogileFSd 的子進程去處理;

MySQL:用來存放 MogileFS 的元數據 (命名空間, 和文件在哪里),是Trackers 來操作和管理它,可以用mogdbsetup程序來初始化數據庫,因為數據庫保存了MogileFS的所有元數據,建議做成HA架構;

Storage Nodes:這個是 MogileFS 存儲文件存放在這些機器上,也是 mogstored 節點,也叫Storage Server,一台存儲主要都要啟動一個 mogstored 服務.擴容就是增加這些機器,實際文件存放的地方

 

(2)MogileFS管理的幾個概念:

Domain域:一個MogileFS可以有多個Domain,用來存放不同文件(大小,類型),同一個Domain內key必須唯一不同Domain內,key可以相同;

② 每一個存儲節點稱為一個主機host,一個主機上可以有多個存儲設備dev(單獨的硬盤),每個設備都有ID號,Domain+Fid用來定位文件。

Class:文件屬性管理,定位文件存儲在不同設備上的份數

 

(3)工作流程

每次文件的上傳和讀取,都經過前端TrackerServer 服務器,trackerServer 服務器受到client 端的請求查詢數據庫返回一個上傳或者是讀取的可用的后端StorageServer 的地址,然后由client 端直接操作后端StorageServer 服務器。upload 操作返回就是成功或者失敗的結果,read操作就是返回對應的查詢數據。

 

(4)mogilefs 服務很特殊:服務配置完畢,開啟服務后;還需命令行命令,服務才能真正生效!

 

1、環境准備

機器名稱

IP配置

服務角色

備注

tracker-srv

192.168.30.107

調度器

tracker、mysql

storage node1

192.168.30.7

文件存放

mogstored 服務

storage node2

192.168.30.2

文件存放

mogstored 服務

 

2、下載安裝,每個機器都一樣

兩個安裝方式:yum安裝 和 perl程序安裝

方法一:yum安裝(推薦)

(1)所依賴的包,centos 自帶的

yum install perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO

 

(2)服務的rpm包,我已經放在我的網盤里了,需要的私聊 http://pan.baidu.com/s/1c2bGc84

MogileFS-Server-2.46-2.el6.noarch.rpm        #核心服務

perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm  #socket

MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm    # tracker節點

perl-MogileFS-Client-1.14-1.el6.noarch.rpm  #客戶端

MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm   #Storage存儲節點

MogileFS-Utils-2.19-1.el6.noarch.rpm    #主要是MogileFS的一些管理工具,例如mogadm等。

 

(3)開始安裝

cd mogileFS/

yum localinstall ./* -y

 

方法二:perl程序源碼包安裝:通過perl的包管理命令cpanm進行安裝

(1)依賴的包

yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perl-YAML perl-Time-HiRes

(2)cpanm安裝

wget http://xrl.us/cpanm -O /usr/bin/cpanm;

sudo chmod +x /usr/bin/cpanm

#cpanm DBD::mysql

#cpanm MogileFS::Server

#cpanm MogileFS::Utils

#cpanm MogileFS::Client

#cpanm IO::AIO

 

3、數據庫初始化

(1)創建mogilefs 所需要的用戶並授權

systemctl start mariadb 開啟mysql服務

MariaDB [mogilefs]> GRANT ALL PRIVILEGES ON mogilefs.* TO 'mogile' @'127.0.0.1' IDENTIFIED BY 'mogile' WITH GRANT OPTION;
MariaDB [mogilefs]> flush privileges;    刷新下權限

(2)設定數據庫:數據庫初始化

mogdbsetup --dbpass=mogile

 

4、在tracker-srv 服務器上,啟動mogilefsd服務

(1)修改管理tracker 的配置文件

vim /etc/mogilefs/mogilefsd.conf

① 配置數據庫連接相關信息
db_dsn = DBI:mysql:mogilefs:host=127.0.0.1
db_user = mogile
db_pass = mogile
② 下邊的只需修改監聽地址和端口
listen = 192.168.30.107:7001 #mogilefs監聽地址,監聽在127.0.0.1表示只允許從本機登錄進行管理
query_jobs = 10   #啟動多少個查詢工作線程
delete_jobs = 1    #啟動多少個刪除工作線程
replicate_jobs = 5   #啟動多少個復制工作線程
reaper_jobs = 1      #啟動多少個用於回收資源的線程
maxconns = 10000   #存儲系統的最大連接數.
httplisten = 0.0.0.0:7500   #可通過http訪問的服務端口
mgmtlisten = 0.0.0.0:7501   #mogilefs的管理端口
docroot = /var/mogdata   #該項決定了數據的在storage上存儲的實際位置,建議使用的是一個單獨掛載使用的磁盤

(2)創建進程需要的目錄,並授權

mkdir /var/run/mogilefsd/

chown -R mogilefs.mogilefs /var/run/mogilefsd

 

(3)開啟服務

/etc/init.d/mogilefsd start

有時候會顯示啟動失敗;但實際則是啟動成功了。可以

ss -nutlp|grep mogilefs 查詢是否有mogilefsd 的監聽ip和端口

 

5、在兩台storage node 上,啟動mogstored服務

(1)修改storage node 的配置文件

vim /etc/mogilefs/mogstored.conf

maxconns = 10000   #存儲系統的最大連接數.
httplisten = 0.0.0.0:7500    #可通過http訪問的服務端口
mgmtlisten = 0.0.0.0:7501   #mogilefs的管理端口
docroot = /data/mogdata    #該項決定了數據的在storage上存儲的實際位置,建議使用的是一個單獨掛載使用的磁盤

 

(2)創建storage 存儲的目錄

mkdir -p /data/mogdata

(3)授權

cd /data/

chown mogilefs.mogilefs mogdata/ -R

(4)開啟服務,有時候開啟服務顯示失敗,其實已經成功

/etc/init.d/mogstored start

  

6、修改客戶端工具配置

vim /etc/mogilefs/mogilefs.conf 客戶端工具配置文件

trackers=192.168.30.107:7001 #自己的tracker 的服務IP和端口

 

7、storage node 節點加入到MogileFS 的系統中

在tracker 的服務器上:

(1)加入"存儲節點storage node1/2"到 trackers 中

mogadm --tracker=192.168.30.107:7001 host add node1 --ip=192.168.30.7 --port=7500 --status=alive
mogadm --tracker=192.168.30.107:7001 host add node2 --ip=192.168.30.2 --port=7500 --status=alive

(2)查詢信息,檢查主機是否加入到 MogileFS 的系統中

mogadm check

mogadm host list

 

(3)當然,操作錯誤也可以修改

mogadm host modify node1 --ip=192.168.30.7 --port=7500 --status=alive

 

8、創建設備

在兩個storage node 服務器上:

(1)創建"設備"實驗的目錄並授權,格式: dev + ID

注意:所有系統中 ID 不能重復,也必須和配置文件中的路徑一樣

cd mogdata/

mkdir dev1

chown mogilefs.mogilefs dev1/ -R 加權限

設置成功,會在dev1下生成一個文件,是tracker 過來測試留下來的

 

(2)在另一台服務器上也一樣

cd mogdata/

mkdir dev2

chown mogilefs.mogilefs dev2/ -R

 

9、兩個設備加入 MogileFS 的存儲系統中

(1)在tracker 上

mogadm --tracker=192.168.30.107:7001 device add node1 1

mogadm --tracker=192.168.30.107:7001 device add node1 1
mogadm --tracker=192.168.30.107:7001 device add node2 2

(2)查看設備信息

mogadm check 檢測出來兩個設備的信息了

mogadm device list 能查詢設備的詳細信息

 

(3)在數據庫中也能查出設備

MariaDB [mogilefs]> select * from device;

MariaDB [mogilefs]> select * from host;

 

10、划分域、class

mogadm domain add img 創建一個img域

mogadm class add img along --mindevcount=3 在img域中創建一個along的class,可以存放3份

 

11、上傳文件且測試

(1)上傳一張圖片

mogupload --domain=img --key=test --file=along.jpg 向img域中上傳一張along.jpg的圖片,key為test

mogfileinfo --domain=img --key=test 查詢文件

 

(2)網頁訪問http://192.168.30.2:7500/dev2/0/000/000/0000000002.fid

 

(3)當然,也可以刪除圖片

mogdelete --domain=img --key=test

 

(4)在數據庫也能查看到

MariaDB [mogilefs]> select * from file;

 

(5)在后端兩個storage node 上也能查到圖片,圖片就是存放到storage node服務器上的

注意:本來,后端兩個storage node 上應該都有存放的圖片,能互相復制,是副本關系,但這一版本有BUG

我的只有在storage node2 上才有這張圖片

 

12、修復bug,實現后端storage node 同步存儲

分析:因為這個版本有bug,所以需降版本

(1)下載包

wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz

也可以http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz 去網站直

接下載

(2)上傳,解壓縮

rz,tar xvf Sys-Syscall-0.23.tar.gz -C /tmp

(3)編譯安裝

① 因為是perl 語言編寫的,所以需要安裝perl 編譯安裝的環境

yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perl-YAML perl-Time-HiRes

② 編譯安裝

cd /tmp/Sys-Syscall-0.23/

perl Makefile.PL 准備環境

make & make install

 

(4)重啟服務

① 在tracker 服務器是,有時候開啟服務顯示失敗,其實已經成功

/etc/init.d/mogilefsd stop

/etc/init.d/mogilefsd start

② 在storage node 服務器上,有時候開啟服務顯示失敗,其實已經成功

/etc/init.d/mogstored stop

/etc/init.d/mogstored start

 

(5)測試

① 再上傳一張圖片

mogupload --domain=img --key=test1 --file=along.jpg

② 在兩個storage node 服務器上,存儲已經實現同步

 

實戰二:mogilefs、mysql主從和keepalived 高可用實現分布式存儲

原理:在database 上實現mysql的主從;且為了提升性能,在每個節點上都配置tracker

主mysql宕機,從mysql上數據沒有丟失;且VIP能漂到從mysql上,繼續提供服務

1、環境准備

機器名稱

IP配置

服務角色

備注

mogilefs-

mysql-master

192.168.30.107

主數據庫

tracker、mysql

mogilefs-

mysql-slave

192.168.30.7

從數據庫

tracker、mysql

mogilefs-

store1

192.168.30.2

文件存放

tracker、storage

mogilefs-

store2

192.168.30.3

文件存放

tracker、storage

 

2、在所有機器上下載安裝mogilefs

(1)所依賴的包,centos 自帶的

yum install perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO

 

(2)服務的rpm包,我已經放在我的網盤里了,需要的私聊 http://pan.baidu.com/s/1c2bGc84

MogileFS-Server-2.46-2.el6.noarch.rpm #核心服務

perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm #socket

MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm # tracker節點

perl-MogileFS-Client-1.14-1.el6.noarch.rpm #客戶端

MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm #Storage存儲節點

MogileFS-Utils-2.19-1.el6.noarch.rpm #主要是MogileFS的一些管理工具,例如mogadm等。

 

(3)開始安裝

cd mogileFS/

yum localinstall ./* -y

 

3、在兩台mysql上實現主從

(1)在主mysql 上

① vim /etc/my.cnf 修改mysql主配置文件,對master進行配置,包括打開二進制日志,指定唯一的servr ID

server-id=1         #配置server-id,讓主服務器有唯一ID號
log-bin=mysql-bin   #打開Mysql日志,日志格式為二進制
skip-name-resolve   #關閉名稱解析,(非必須)

systemctl start mariadb 開啟服務

 

創建並授權slave mysql 用的復制帳號

MariaDB [(none)]> grant replication slave,replication client on *.* to slave@'192.168.30.7' identified by 'along';

 

③ 查看主服務器狀態

在Master的數據庫執行show master status,查看主服務器二進制日志狀態,位置號

 

(2)在從mysql 上

① 修改主配置文件

vim /etc/my.cnf 打開中繼日志,指定唯一的servr ID,設置只讀權限

server-id=2       #配置server-id,讓從服務器有唯一ID號
relay_log = mysql-relay-bin    #打開Mysql日志,日志格式為二進制
read_only = 1    #設置只讀權限
log_bin = mysql-bin         #開啟從服務器二進制日志,(非必須)
log_slave_updates = 1  #使得更新的數據寫進二進制日志中 

systemctl start mariadb 開啟服務

 

啟動從服務器復制線程,讓slave連接master,並開始重做master二進制日志中的事件。

MariaDB [(none)]> change master to master_host='192.168.30.107',
    -> master_user='slave',
    -> master_password='along',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=245;
MariaDB [(none)]>  start slave;   # 啟動復制線程,就是打開I/O線程和SQL線程;實現拉主的bin-log到從的relay-log上;再從relay-log寫到數據庫內存里

③ 查看從服務器狀態

可使用SHOW SLAVE STATUS\G查看從服務器狀態,如下所示,也可用show processlist \G查看當前復制狀態:

Slave_IO_Running: Yes #IO線程正常運行

Slave_SQL_Running: Yes #SQL線程正常運行

 

3、初始化數據庫

(1)在主mysql上授權,因為主從同步,所以只需操作主

MariaDB [(none)]> GRANT ALL PRIVILEGES ON mogilefs.* TO 'mogile'@'192.168.30.%' IDENTIFIED BY 'mogile' WITH GRANT OPTION;
MariaDB [mogilefs]> flush privileges;    刷新下權限

(2)數據庫初始化,在兩個機器上都初始化

mogdbsetup --dbpass=mogile

 

4、在主從mysql上實現keepalived,高可用

原理:主mysql宕機,從上數據沒有丟失;且VIP能漂到從mysql上,繼續提供服務

(1)在兩個機器上下載keepalived

yum -y install keepalived

 

(2)在主mysql上配置keepalived

① 全局段,故障通知郵件配置
global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from root@along.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_mysql
}
② 檢測腳本,監控mysqld進程服務
vrrp_script chk_nginx {
        script "killall -0 mysqld"   #killall -0 檢測這個進程是否還活着,不存在就減權重
        interval 2    #每2秒檢查一次
        fall 2     #失敗2次就打上ko的標記
        rise 2    #成功2次就打上ok的標記
        weight -4    #權重,優先級-4,若為ko
}
③ 配置虛擬路由器的實例段,VI_1是自定義的實例名稱,可以有多個實例段
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 190
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        192.168.30.100
    }
track_script {
chk_nginx
}
}

(3)在從上只需修改優先級和backup

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 190
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        192.168.30.100
    }
track_script {
chk_nginx
}
}

(4)開啟keepalived 服務

systemctl start keepalived

主mysql 上VIP已經生成

 

5、在所有機器上,開啟tracker服務

(1)修改管理tracker 的配置文件

vim /etc/mogilefs/mogilefsd.conf

① 配置數據庫連接相關信息
db_dsn = DBI:mysql:mogilefs:host=192.168.30.100
db_user = mogile
db_pass = mogile
② 下邊的只需修改監聽地址和端口
listen = 192.168.30.107:7001 #mogilefs監聽地址,監聽在127.0.0.1表示只允許從本機登錄進行管理;注意,4台機器寫自己的IP地址
listen = 192.168.30.7:7001
listen = 192.168.30.2:7001
listen = 192.168.30.3:7001
注意:不是寫4個,是在4個機器上分別寫

(2)創建進程需要的目錄,並授權

mkdir /var/run/mogilefsd/

chown -R mogilefs.mogilefs /var/run/mogilefsd

 

(3)開啟服務,4台都開啟

/etc/init.d/mogilefsd start

有時候會顯示啟動失敗;但實際則是啟動成功了。可以

ss -nutlp|grep mogilefs 查詢是否有mogilefsd 的監聽ip和端口

 

6、在兩個mogilefs-store 上開啟storage 服務

(1)修改storage node 的配置文件

vim /etc/mogilefs/mogstored.conf

maxconns = 10000   #存儲系統的最大連接數.
httplisten = 0.0.0.0:7500    #可通過http訪問的服務端口
mgmtlisten = 0.0.0.0:7501   #mogilefs的管理端口
docroot = /data/mogdata    #該項決定了數據的在storage上存儲的實際位置,建議使用的是一個單獨掛載使用的磁盤

 

(2)創建storage 存儲的目錄

mkdir -p /data/mogdata

(3)授權

cd /data/

chown mogilefs.mogilefs mogdata/ -R

(4)開啟服務,有時候開啟服務顯示失敗,其實已經成功

/etc/init.d/mogstored start

 

7、修改客戶端工具配置

vim /etc/mogilefs/mogilefs.conf 客戶端工具配置文件,4個機器寫自己的tracker

trackers=192.168.30.107:7001   #自己的tracker 的服務IP和端口
trackers=192.168.30.7:7001
trackers=192.168.30.2:7001
trackers=192.168.30.3:7001
注意:是各自寫各自的,不是都寫在一個機器里

 

8、storage node 節點加入到MogileFS 的系統中

在tracker 的服務器上:只需在一個tracker 服務器上做就行了

(1)加入"存儲節點storage node1/2"到 trackers 中

mogadm  host add node1 --ip=192.168.30.3 --port=7500 --status=alive
mogadm  host add node2 --ip=192.168.30.2 --port=7500 --status=alive

(2)查詢信息,檢查主機是否加入到 MogileFS 的系統中

mogadm check

mogadm host list

 

(3)當然,操作錯誤也可以修改

mogadm host modify node1 --ip=192.168.30.3 --port=7500 --status=alive

 

9、創建設備

mogilefs-store1 服務器上:

(1)創建"設備"實驗的目錄並授權,格式: dev + ID

注意:所有系統中 ID 不能重復,也必須和配置文件中的路徑一樣

cd /data/mogdata/

mkdir dev1

chown mogilefs.mogilefs dev1/ -R 加權限

設置成功,會在dev1下生成一個文件,是tracker 過來測試留下來的

 

(2)在另一台服務器上也一樣

cd mogdata/

mkdir dev2

chown mogilefs.mogilefs dev2/ -R

 

10、兩個設備加入 MogileFS 的存儲系統中

(1)在tracker 上

mogadm  device add node1 1
mogadm  device add node2 2

(2)查看設備信息

mogadm check 檢測出來兩個設備的信息了

mogadm device list 能查詢設備的詳細信息

 

(3)在數據庫中也能查出設備

MariaDB [mogilefs]> select * from device;

MariaDB [mogilefs]> select * from host;

 

10划分域/class、11上傳文件且測試、12修復bug  步驟都同上

實戰三:FastDFS 實現分布式存儲

架構圖:

原理

(1)FastDFS核心組件

Tracker:調度器,負責維持集群的信息,例如各group及其內部的storage node,這些信息也是storage node報告所生成;每個storage node會周期性向tracker發心跳信息

storage server:以group為單位進行組織,任何一個storage server都應該屬於某個group,一個group應該包含多個storage server;在同一個group內部,各storage server的數據互相冗余;

 

(2)FastDFS架構的特點

只有兩個角色tracker server和storage server不需要存儲文件索引信息

• 所有服務器都是對等的不存在Master-Slave關系

• 存儲服務器采用分組方式同組內存儲服務器上的文件完全相同(RAID 1)

不同組的storage server之間不會相互通信

• 由storage server主動向tracker server報告狀態信息,tracker server之間通常不會相互通信

 

(3)FastDFS同步機制

① 采用binlog文件記錄更新操作,根據binlog進行文件同步同一組內的storage server之間是對等的,文件上傳、刪除等操作可以在任意一台storage server上進行;

② 文件同步只在同組內的storage server之間進行,采用push方式,即源服務器同步給目標服務器;

③ 源頭數據才需要同步,備份數據不需要再次同步,否則就構成環路了;

上述第二條規則有個例外,就是新增加一台storage server時,由已有的一台storage server將已有的所有數據(包括源頭數據和備份數據)同步給該新增服務器。

 

(4)FastDFS運行機制

---> 上傳文件

① client詢問tracker上傳到的storage;

② tracker返回一台可用的storage;

③ client直接和storage通信完成文件上傳,storage返回文件ID

<--- 下載文件

① client詢問tracker下載文件的storage,參數為文件ID(組名和文件名)

② tracker返回一台可用的storage;

③ client直接和storage通信完成文件下載

 

(5)FastDFS 與 mogileFS 的區別

 

1、環境准備

機器名稱

IP配置

服務角色

備注

tracker-srv

192.168.30.107

調度器

tracker、不需mysql

storage srv1

192.168.30.7

文件存放

 

storage srv2

192.168.30.2

文件存放

 

 

2、下載安裝

mkdir /fastdfs 創建一個存放fastdfs所需包的目錄

所需要的包,我已經存放在我的網盤了,有需要的私聊

https://pan.baidu.com/share/init?surl=c2bGc84

cd /fastdfs

yum -y localinstall ./*

 

3、在tracke 的服務器上,開啟tracke 服務

(1)修改配置文件

cd /etc/fdfs tracker的配置文件的模板已經准備好了,只需復制修改就好

cp tracker.conf.sample tracker.conf

 

vim /etc/fdfs/tracker.conf    必須修改的一項

base_path=/data/fastdfs/tracker     #base源路徑

① 還可以修改一些自己需要的,如上傳、下載方式

② 訪問權限控制

 

(2)創建目錄

mkdir /data/fastdfs/tracker -p

 

(3)啟動tracker服務

/etc/init.d/fdfs_trackerd start

 

4、在后端兩台storage server上,開啟storage 快照

在storage server上 storage的配置文件的模板已經准備好了,只需復制修改就好

cd /etc/fdfs

cp storage.conf.sample storage.conf

(1)修改配置文件

vim storage.conf 必須修改3項

base_path=/data/fastdfs/storage   #base源路徑
store_path0=/data/fastdfs/storage    #實際存儲目錄
tracker_server=192.168.30.107:22122    #指定tracker

(2)創建目錄

mkdir /data/fastdfs/storage -p

 

(3)開啟服務

/etc/init.d/fdfs_storaged start

 

(4)生成了存放文件的目錄

 

5、設置客戶端配置文件

(1)設置客戶端配置文件

cd /etc/fdfs

cp client.conf.sample client.conf 復制模板

vim client.conf 修改2行

base_path=/data/fastdfs/tracker
tracker_server=192.168.30.107:22122

(2)查看存儲節點狀態

fdfs_monitor /etc/fdfs/client.conf

 

6、FastDFS的上傳、下載

(1)fdfs_upload_file /etc/fdfs/client.conf xiaomi.zip 上傳

 

(2)在后端兩個storage server 上,兩個是同步的,一樣

① 二進制文件有記錄

 

② 確實能找到

 

(3)文件查看

fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKgeAlodCEGAXOuMB3o1rOpTQ-0771.zip

分析:上傳到了192.168.30.2 的機器上,然后push推到192.168.30.7上

 

(4)文件下載

fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgeAlodCEGAXOuMB3o1rOpTQ-0771.zip
md5sum xiaomi.zip wKgeAlodCEGAXOuMB3o1rOpTQ-0771.zip

分析:md5值是一樣的,表明是同一個文件

 

(5)刪除

fdfs_delect_file /etc/fdfs/client.conf group1/M00/00/00/wKgeAlodCEGAXOuMB3o1rOpTQ-0771.zip

 

(6)上傳測試

fdfs_test /etc/fdfs/client.conf upload xiaomi.zip [FILE | BUFF | CALLBACK]

 

實驗四:FastDFS實現nginx代理

在兩個后端storage server 上實現的

1、安裝nginx 插件,也存放到我的網盤里了,rz

yum -y localinstall nginx-*

 

2、在nginx上加載模塊

vim /etc/nginx/nginx.conf

location /group1/M00 {
        root /data/fastdfs/storage/data;
        ngx_fastdfs_module;
}

3、修改fastdfs 模塊的配置文件

vim /etc/fdfs/mod_fastdfs.conf

tracker_server=192.168.30.107:22122
url_have_group_name = true
store_path0=/data/fastdfs/storage

4、開啟nginx 服務,測試

systemctl start nginx

網頁測試 http://192.168.30.2/group1/M00/00/00/wKgeB1odET-AGOSlAAAbjMSvzS8917.jpg

 

前面的實戰,后幾天慢慢補上!!!大家見諒。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM