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

企業級分佈式存儲應用與實戰-mogilefshtml

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

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

 

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

 

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

架構圖nginx

原理

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

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架構;vim

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

 

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

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

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

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

 

(3)工做流程

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

 

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

 

一、環境準備

機器名稱

IP配置

服務角色

備註

tracker-srv

192.168.30.107

調度器

tracker、mysql

storage node1

192.168.30.7

文件存放

mogstored 服務

storage node2

192.168.30.2

文件存放

mogstored 服務

 

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

兩個安裝方式: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

 

三、數據庫初始化

(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

 

四、在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和端口

 

五、在兩臺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

  

六、修改客戶端工具配置

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

trackers=192.168.30.107:7001 #本身的tracker 的服務IP和端口

 

七、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

 

八、建立設備

在兩個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

 

九、兩個設備加入 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;

 

十、劃分域、class

mogadm domain add img 建立一個img域

mogadm class add img along --mindevcount=3 在img域中建立一個along的class,能夠存放3份

 

十一、上傳文件且測試

(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 上纔有這張圖片

 

十二、修復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上,繼續提供服務

一、環境準備

機器名稱

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

 

二、在全部機器上下載安裝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

 

三、在兩臺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線程正常運行

 

三、初始化數據庫

(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和端口

 

六、在兩個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

 

七、修改客戶端工具配置

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
注意:是各自寫各自的,不是都寫在一個機器裏

 

八、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

 

九、建立設備

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

 

十、兩個設備加入 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 的區別

 

一、環境準備

機器名稱

IP配置

服務角色

備註

tracker-srv

192.168.30.107

調度器

tracker、不需mysql

storage srv1

192.168.30.7

文件存放

 

storage srv2

192.168.30.2

文件存放

 

 

二、下載安裝

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

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

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

cd /fastdfs

yum -y localinstall ./*

 

三、在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

 

四、在後端兩臺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)生成了存放文件的目錄

 

五、設置客戶端配置文件

(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

 

六、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 上實現的

一、安裝nginx 插件,也存放到個人網盤裏了,rz

yum -y localinstall nginx-*

 

二、在nginx上加載模塊

vim /etc/nginx/nginx.conf

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

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

vim /etc/fdfs/mod_fastdfs.conf

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

四、開啓nginx 服務,測試

systemctl start nginx

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

 

前面的實戰,後幾天慢慢補上!!!你們見諒。

相關文章
相關標籤/搜索