自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析FastDFS及所遇問(wèn)題集錦

系統(tǒng)
FastDFS是為互聯(lián)網(wǎng)應(yīng)用量身定做的一套分布式文件存儲(chǔ)系統(tǒng),非常適合用來(lái)存儲(chǔ)用戶圖片、視頻、文檔等文件。對(duì)于互聯(lián)網(wǎng)應(yīng)用,和其他分布式文件系統(tǒng)相比,優(yōu)勢(shì)非常明顯。但是在使用過(guò)程中,也會(huì)遇到一些問(wèn)題,一起來(lái)看看。

一、FastDFS簡(jiǎn)介

FastDFS(最新版本v3.04)是一個(gè)開(kāi)源的輕量級(jí)分布式文件系統(tǒng),它用純C語(yǔ)言實(shí)現(xiàn),支持Linux、FreeBSD、AIX等UNIX系統(tǒng)。它只能通過(guò)專有API對(duì)文件進(jìn)行存取訪問(wèn),不支持POSIX接口方式,不能mount使用,不是系統(tǒng)級(jí)的分布式文件系統(tǒng),而是應(yīng)用級(jí)的分布式文件存儲(chǔ)服務(wù)。

二、FastDFS用途

1)FastDFS主要解決了大容量的文件存儲(chǔ)和高并發(fā)訪問(wèn)的問(wèn)題,文件存取時(shí)實(shí)現(xiàn)了負(fù)載均衡。

2)FastDFS實(shí)現(xiàn)了軟件方式的RAID,可以使用廉價(jià)的IDE硬盤進(jìn)行存儲(chǔ) ,支持存儲(chǔ)服務(wù)器在線擴(kuò)容。

3)FastDFS特別適合大中型網(wǎng)站使用,用來(lái)存儲(chǔ)資源文件(如:圖片、文檔、音頻、視頻等等。

三、FastDFS原理

存儲(chǔ)節(jié)點(diǎn)采用了分組(group)的方式。存儲(chǔ)系統(tǒng)由一個(gè)或多個(gè)group組成,group與group之間的文件是相互獨(dú)立的,所有g(shù)roup的文件容量累加就是整個(gè)存儲(chǔ)系統(tǒng)中的文件容量。一個(gè)group可以由一臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成,一個(gè)group下的存儲(chǔ)服務(wù)器中的文件都是相同的,group中的多臺(tái)存儲(chǔ)服務(wù)器起到了冗余備份和負(fù)載均衡的作用(一個(gè)組的存儲(chǔ)容量為該組內(nèi)存儲(chǔ)服務(wù)器容量最小的那個(gè),不同組的Storage server之間不會(huì)相互通信,同組內(nèi)的Storage server之間會(huì)相互連接進(jìn)行文件同步)。

在group中增加服務(wù)器時(shí),同步已有的文件由系統(tǒng)自動(dòng)完成,同步完成后,系統(tǒng)自動(dòng)將新增服務(wù)器切換到線上提供服務(wù)。

當(dāng)存儲(chǔ)空間不足或即將耗盡時(shí),可以動(dòng)態(tài)添加group。只需要增加一臺(tái)或多臺(tái)服務(wù)器,并將它們配置為一個(gè)新的group,這樣就擴(kuò)大了存儲(chǔ)系統(tǒng)的容量。

FastDFS只有兩個(gè)角色:Tracker server和Storage server。Tracker server作為中心結(jié)點(diǎn),其主要作用是負(fù)載均衡和調(diào)度。Tracker server在內(nèi)存中記錄分組和Storage server的狀態(tài)等信息,不記錄文件索引信息,占用的內(nèi)存量很少。另外,客戶端(應(yīng)用)和Storage server訪問(wèn)Tracker server時(shí),Tracker server掃描內(nèi)存中的分組和Storage server信息,然后給出應(yīng)答。由此可以看出Tracker server非常輕量化,不會(huì)成為系統(tǒng)瓶頸。

FastDFS中的Storage server在其他文件系統(tǒng)中通常稱作Trunk server或Data server。Storage server直接利用OS的文件系統(tǒng)存儲(chǔ)文件。FastDFS不會(huì)對(duì)文件進(jìn)行分塊存儲(chǔ),客戶端上傳的文件和Storage server上的文件一一對(duì)應(yīng)(FastDFS中的文件標(biāo)識(shí)分為兩個(gè)部分:組名和文件名,二者缺一不可)。

四、Nginx環(huán)境調(diào)用FastDFS要求

1)編譯安裝 nginx時(shí)附帶 fastdfs-nginx-module 模塊 –add-module=/root/fastdfs-nginx-module/src

2)修改 nginx 配置文件增加 ngx_fastdfs_module;

3)編譯fastdfs_client.so php擴(kuò)展模塊

4)修改 php.ini 讓 php-fpm 支持fastdfs_client 擴(kuò)展模塊 extension = fastdfs_client.so

注意:如果要使fastdfs支持web和開(kāi)機(jī)自動(dòng)腳本(默認(rèn)是不支持的),需要修改make.sh文件

#WITH_HTTPD=1

#WITH_LINUX_SERVICE=1

(因?yàn)槭墙onginx添加fastdfs模塊,所以不需要fastdfs支持 http 所以就不需要去掉 #WITH_HTTPD=1 前的注釋了)。

五、所遇問(wèn)題

1. FastDFS適用的場(chǎng)景以及不適用的場(chǎng)景?

FastDFS是為互聯(lián)網(wǎng)應(yīng)用量身定做的一套分布式文件存儲(chǔ)系統(tǒng),非常適合用來(lái)存儲(chǔ)用戶圖片、視頻、文檔等文件。對(duì)于互聯(lián)網(wǎng)應(yīng)用,和其他分布式文件系統(tǒng)相比,優(yōu)勢(shì)非常明顯。FastDFS沒(méi)有對(duì)文件做分塊存儲(chǔ),因此不太適合分布式計(jì)算場(chǎng)景。

2. FastDFS需要的編譯和運(yùn)行環(huán)境是怎樣的?

FastDFS Server僅支持unix系統(tǒng),在Linux和FreeBSD測(cè)試通過(guò)。在Solaris系統(tǒng)下網(wǎng)絡(luò)通信方面有些問(wèn)題。編譯需要的其他庫(kù)文件有pthread和libevent。pthread使用系統(tǒng)自帶的即可。對(duì)libevent的版本要求為1.4.x,建議使用最新的stable版本,如1.4.14b。注意,千萬(wàn)不要使用libevent 2.0 stable以前的版本。

3. 啟動(dòng)storage server時(shí),一直處于僵死狀態(tài)。

啟動(dòng)storage server,storage將連接tracker server,如果連不上,將一直重試。直到連接成功,啟動(dòng)才算真正完成。

出現(xiàn)這樣情況,請(qǐng)檢查連接不上tracker server的原因。

友情提示:從V2.03以后,多tracker server在啟動(dòng)時(shí)會(huì)做時(shí)間上的檢測(cè),判斷是否需要從別的tracker server同步4個(gè)系統(tǒng)文件。

觸發(fā)時(shí)機(jī)是第一個(gè)storage server連接上tracker server后,并發(fā)起join請(qǐng)求。

如果集群中有2臺(tái)tracker server,而其中一臺(tái)tracker沒(méi)有啟動(dòng),可能會(huì)導(dǎo)致storage server一直處于僵死狀態(tài)。

4. 執(zhí)行fdfs_test或fdfs_test1上傳文件時(shí),服務(wù)器返回錯(cuò)誤號(hào)2

錯(cuò)誤號(hào)2表示沒(méi)有ACTIVE狀態(tài)的storage server??梢詧?zhí)行fdfs_monitor查看服務(wù)器狀態(tài)。

5. 如何刪除無(wú)效的storage server?

可以使用fdfs_monitor來(lái)刪除。命令行如下:

/usr/local/bin/fdfs_monitor delete

例如:

/usr/local/bin/fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.0.100

注意:如果被刪除的storage server的狀態(tài)是ACTIVE,也就是該storage server還在線上服務(wù)的情況下,是無(wú)法刪除掉的。

6. nginx和apache擴(kuò)展模塊與FastDFS server版本對(duì)應(yīng)關(guān)系

擴(kuò)展模塊1.05: 針對(duì)FastDFs server v2.x,要求server版本大于等于v2.09

擴(kuò)展模塊1.07及以上版本: 針對(duì)FastDFs server v3.x

7. 上傳文件失敗,返回錯(cuò)誤碼28,這是怎么回事?

返回錯(cuò)誤碼28,表示磁盤空間不足。注意FastDFS中有預(yù)留空間的概念,在tracker.conf中設(shè)置,配置項(xiàng)為:reserved_storage_space,缺省值為4GB,即預(yù)留4GB的空間。請(qǐng)酌情設(shè)置reserved_storage_space這個(gè)參數(shù),比如可以設(shè)置為磁盤總空間的20%左右。

8. nginx擴(kuò)展模塊,不能正常顯示圖片的問(wèn)題

在配置文件/etc/fdfs/mod_fastdfs.conf中,缺省的設(shè)置是這樣的:http.need_find_content_type=false這個(gè)參數(shù)在nginx中需要設(shè)置為true,apache中應(yīng)該設(shè)置為false

責(zé)任編輯:黃丹 來(lái)源: 第四城技術(shù)團(tuán)隊(duì)
相關(guān)推薦

2024-06-24 08:57:01

電商系統(tǒng)開(kāi)發(fā)技術(shù)

2015-05-29 17:21:16

數(shù)據(jù)中心

2023-06-25 08:05:09

MySQL事務(wù)并發(fā)

2011-04-01 13:55:24

Java

2013-07-23 07:24:57

iOS開(kāi)發(fā)學(xué)習(xí)iOS開(kāi)發(fā)問(wèn)題集錦

2010-07-21 09:10:02

Perl常見(jiàn)問(wèn)題

2020-02-10 11:12:07

微軟WindowsWindows 7

2011-05-19 09:24:12

關(guān)系型數(shù)據(jù)庫(kù)

2010-10-22 14:29:53

sqlserver s

2009-11-25 09:26:44

Windows 7媒體中心崩潰

2009-09-11 10:44:07

JavaScript實(shí)

2010-09-17 16:29:56

2010-05-14 09:45:11

Subversion升

2015-05-28 14:13:14

光纖通信

2010-08-12 10:52:57

路由器問(wèn)題集錦

2010-08-12 10:38:17

路由器問(wèn)題集錦

2013-05-29 10:47:50

Android開(kāi)發(fā)Java多線程java面試題

2011-05-07 17:16:05

復(fù)印機(jī)常見(jiàn)問(wèn)題

2011-04-06 13:14:29

SQL Server 安裝

2009-07-31 17:51:42

linux vi命令詳linux vi命令編輯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)