1. 程式人生 > >關於WEB叢集中檔案伺服器的討論

關於WEB叢集中檔案伺服器的討論

原文地址: http://blog.itpub.net/29806344/viewspace-1364778/

在WEB叢集中一般都要上傳和刪除圖片。小規模的時候,圖片放在本地,再通過同步方式來保持一致。

常見的檔案伺服器:samba+web,ftp+web,nfs+web,rsync單向同步,分散式儲存

 samba+web,ftp+web這2種需要改程式程式碼,用的不多;rsync單向同步在小環境中用;nfs+web在中型環境用的最多;大型環境,海量檔案用的是分散式儲存,比如hadoop等。

一:samba+web檔案伺服器

   儲存:通過samba賬號和密碼來儲存圖片,需要修改程式程式碼

   調取:通過檔案伺服器web的URL

二:ftp+web檔案伺服器

   儲存:通過ftp賬號和密碼來儲存圖片,需要修改程式程式碼

   調取:通過檔案伺服器web的URL

三:rsync+inotify檔案伺服器

儲存:儲存到WEB本地,通過rsync同步到檔案伺服器

   調取:通過檔案伺服器web的URL

   缺點:單向同步

四:rsync+sersync+web檔案伺服器 和rsync+inotify相同,但是比其更快更節約資源 

五:nfs+web檔案伺服器

儲存:遠端nfs資料夾掛載到本地,nfs同步

   調取:1,通過檔案伺服器web的URL;2,直接在掛載的資料夾下取圖片

 

實際操作如下:

NFS+WEB檔案伺服器:192.168.47.142

WEB1:192.168.47.143

WEB2:192.168.47.144

在NFS檔案伺服器上:

yum install nfs-utils -y

yum install httpd  -y

chmod 777 -R /var/www/html/upload

chkconfig nfs on

cat /etc/exports:

/var/www/html/upload   *(rw,sync,root_squash)   192.168.47.142

/var/www/html/upload    192.168.47.0/24(rw,sync,root_squash)

/etc/init.d/rpcbind restart

/etc/init.d/nfs restart

在兩臺WEB上:

mkdir /var/www/html/upload

chmod 777 -R  /var/www/html/upload

cat /etc/fstab:

......

proc                    /proc                   proc    defaults        0 0 192.168.47.142:/var/www/html/upload  /var/www/html/upload  nfs defaults     0 0

#注意:寫入/etc/fstab中,會自動開機掛載的

mount –a

#WEB2的操作和WEB1一樣即可;

注意:

當圖片多了,可以把upload的功能從中分離出來,可以考慮利用URL進行hash分組,用一組機器來實現upload,另一組機器來實現瀏覽。進行不同的設定,可以充分利用到NFS的快取,可以提高效能