⑴ glusterfs 提高讀寫速度可以優化哪些參數
GlusterFS(GNU ClusterFile System)是一個開源的分布式文件系統,它的歷史可以追溯到2006年,最初的目標是代替Lustre和GPFS分布式文件系統。經過八年左右的蓬勃發展,GlusterFS目前在開源社區活躍度非常之高,這個後起之秀已經儼然與Lustre、MooseFS、CEPH並列成為四大開源分布式文件系統。由於GlusterFS新穎和KISS(KeepIt as Stupid and Simple)的系統架構,使其在擴展性、可靠性、性能、維護性等方面具有獨特的優勢,目前開源社區風頭有壓倒之勢,國內外有大量用戶在研究、測試和部署應用。
當然,GlusterFS不是一個完美的分布式文件系統,這個系統自身也有許多不足之處,包括眾所周知的元數據性能和小文件問題。沒有普遍適用各種應用場景的分布式文件系統,通用的意思就是通通不能用,四大開源系統不例外,所有商業產品也不例外。每個分布式文件系統都有它適用的應用場景,適合的才是最好的。這一次我們反其道而行之,不再談GlusterFS的各種優點,而是深入談談GlusterFS當下的問題和不足,從而更加深入地理解GlusterFS系統,期望幫助大家進行正確的系統選型決策和規避應用中的問題。同時,這些問題也是GlusterFS研究和研發的很好切入點。
⑵ CentOS掛載Glusterfs失敗怎麼辦
執行的mount命令:
mount target_host:/volume_name current_path
執行mount命令後,提示錯誤信息
/usr/sbin/start-statd: line 8: systemctl: command not found
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use 『-o nolock』 to keep locks local, or start statd.
mount.nfs: Operation not permitted
一般情況下,用到Glusterfs存儲的地方至少都是兩台機器來配置完成的,在各自的機器上能夠正常的啟動相應的服務;然而,在執行gluster volume info命令查看定義的volume信息時,會發現非本機存儲的機器狀態為offline,這時無論是在本地還是其他地方做mount 時都不會成功,會提示timeout(鏈接超時) —— 這就是問題所在(網路不通暢);
這時,需要處理機器間的網路配置,這里有兩點:
1、查看各機器的iptables配置,備份之前的iptables配置(/etc/sysconfig/iptables),然後導出生效的iptables(service iptables save),查看核對現有的與導出前的配置是否存在不同,存在則修復,最後重啟iptables服務(service iptables restart);
2、查看各機器的IP配置是否發生變化(ifconfig),是否同一網段,若配置存在變動,則更改回原始配置,重啟網路服務(service network restart);
以上網路問題解決後,再次執行mount target_host:/volume_name current_path(一般不需要參數-t glusterfs)完成對gluster管理的volume的掛載;此時,如果掛載失敗,則加上-t參數,即mount -t glusterfs target_host:/volume_name current_path
⑶ 請問哪位同仁比較了解glusterfs與FUSE,以及FUSE與VFS是怎麼通信的如果有比較好的資料,也可以共享一下
首先,個人認為VFS與FUSE之間不是通信的關系!VFS是所有文件操作的虛擬層。
舉例,用戶一個open操作,先是進了核心VFS層的open,由於glusterfs是通過/dev/fuse這個設備來實現用戶層和核心層的通信,於是VFS就會找到fuse的open,便實現了從用戶到VFS到fuse的調用。
可以看一下《深入理解Linux內核》這本書!
說的不正確的地方,還請高手批評指正!
⑷ 怎麼獲取glusterfs的運行狀態
方法一:1、首先打開控制面板。 2、然後選擇添加刪除程序。 3、然後在左側選擇,添加刪除組件就可以找到,然後就可以設置了。 方法二: 開始——運行——輸入 msconfig 打開了「系統配置實用程序」,選擇「服務」,
⑸ 如何在ubuntu14.0下為WordPress應用伺服器搭建四層負載均衡
當前環境快照
可選:在繼續本教程之前,你可能想為你當前環境創建快照。本教程中快照有兩個目的:
如果發生錯誤可以回滾到可工作環境
對原始伺服器做一次性復制,而不需要再次安裝和配置php以及Nginx
注意:為環境創建快照需要短暫的關閉VPS
為wordpress-1和mysql-1兩個VPS做一個快照。
現在有了快照以後,我們就可以准備好繼續搭建環境中其他部分了。
創建第二台web應用伺服器
現在我們需要創建第二個VPS來分擔原始應用伺服器的負載。有兩種選擇:
從之前的快照wordpress-1中創建一個新的VPS
從頭開始重新創建一個VPS並且設置該VPS和wordpress-1有相同的軟體和配置
不論那種方法,如果網路可用,一定要確保勾選個人網路。個人網路是本教程中所有VPS都需要的。
如果沒有個人網路選項,用你的VPS的公開IP來替代內網IP。需要注意的是,當使用公網IP在應用伺服器和資料庫伺服器之間傳輸敏感數據比如非加密的資料庫密碼,並不是一個很好的選擇,因為這些信息需要在互聯網上傳輸。
方式一:使用快照創建新的VPS
創建一個新的VPS,叫做wordpress-2,使用你為wordpress-1做的快照來做。
如果你選擇的這種方式,可以跳過「方式二」直接去看「同步web應用文件」小節。
方式二:從頭創建一個新的VPS
這種方式和「方式一」可二選一。
如果你想從頭設置wordpress-2伺服器,而不是使用wordpress-1的快照,那麼你要確保安裝的軟體相同。如果你忘了如何安裝和設置原始wordpress伺服器,可以參考預備知識章節中如何設置web伺服器小節。
快速參考,這里是一個相關軟體和配置文件的列表,需要你來安裝或復制:
軟體方面:
Mysql客戶端
Nginx
PHP
安裝完這些軟體後,在你的wordpress-2伺服器上運行一下命令:
sudo apt-get update
sudo apt-get install mysql-client
sudo apt-get install nginx php5-fpm php5-mysql
原始應用伺服器上需要創建或編輯的配置文件:
/etc/php5/fpm/php.ini
/etc/php5/fpm/pool.d/www.conf
/etc/nginx/sites-available/example.com
/etc/nginx/sites-enabled/example.com
當你修改完配置文件後,不要忘了沖洗PHP和Nginx,可以使用一下命令:
sudo service php5-fpm restart
sudo service nginx restart
在新伺服器的安裝和配置完成以後,我們需要同步wordpress應用文件。
同步Web應用文件
在應用程序可以進行負載均衡之前,我們需要確保新應用伺服器的應用程序文件和原始wordpress伺服器的文件是同步的。這些文件的位置也就是你安裝wordpress的位置,以及其他的一些文件。除了wordpress運行所需要的配置文件之外,上傳的文件和通過wordpress介面安裝的插件的安裝文件和這些插件上傳的文件都需要去同步。在預備知識文章中,我們將wordpress安裝在/var/www/example.com路徑下--我們將
在所有的例子中都會使用這個路徑,但是你需要將這個路徑替換為你wordpress的實際安裝路徑。
有很多方法在伺服器之間同步文件--NFS或者glusterFS都是不錯的選擇。我們將使用glusterFS來滿足我們所有的同步需求,因為它允許每個應用伺服器來存儲應用程序文件的副本,同時也會保持文件系統的一致性。下圖是我們共享存儲方案的概念圖:
如果你對本小節中使用的glusterFS完全不熟悉,請參考這個GlusterFS教程(https://www.digitalocean.com/community/tutorials/how-to-create-a-rendant-storage-pool-using-glusterfs-on-ubuntu-servers),這是本小節的基礎。
注意:下面的內容將經常在wordpress-1和wordpress-2伺服器之間跳轉,請確保在正確伺服器上運行響應命令,否則你將遇到麻煩。
編輯hosts文件
如果你有一個內部DNS,而且這個DNS記錄了你VPS的內部IP地址,那麼你可以跳過這一步直接配置並執行glusterFS相關命令。
否則,需要在wordpress-1和wordpress-2上編輯/etc/hosts文件:
sudo vi /etc/hosts
增加以下兩行,將紅色字替換為你應用伺服器的各自ip:
wordpress_1_private_IP wordpress-1
wordpress_2_private_IP wordpress-2
保存並退出。
安裝GlusterFS並配置一個冗餘盤
在wordpress-1和wordpress-2上使用apt-get命令安裝glusterFS服務端軟體:
sudo apt-get install glusterfs-server
在wordpress-1上,運行以下命令來和wordpress-2保持對等:
sudo gluster peer probe wordpress-2
在wordpress-2上,運行以下命令來和wordpress-1保持對等:
sudo gluster peer probe wordpress-1
在wordpress-1和wordpress-2上,創建路徑用來存儲glusterFS所管理的文件,運行:
sudo mkdir /gluster-storage
在wordpress-1上,創建glusterFS副本,我們稱作volume1,glusterFS 會將它存放在/gluster-storage中的數據保存在你所有的應用伺服器上,運行:
sudo gluster volume create volume1 replica 2 transport tcp wordpress-1:/gluster-storage wordpress-2:/gluster-storage force
預期輸出以下結果:
volume create: volume1: success: please start the volume to access data
再次在wordpress-1上,運行一下命令來啟動剛剛創建的glusterFS卷,在volume1上運行:
sudo gluster volume start volume1
預期輸出以下結果:
volume start: volume1: success
在wordpress-1上,如果你想查看剛創建和啟動的glusterFS卷的信息,運行:
sudo gluster volume info
你需要明白的是目前有兩個glusterFS「同盟」,每個對應一個wordpress伺服器。
現在我們已經運行了一個glusterFS盤,為了能夠使用它來同步文件,我們需要將該盤掛載。
掛載共享存儲
首先掛載wordpress-1上的文件系統。
在wordpress-1上,修改fstab文件來使共享文件系統可以隨機啟動:
sudo vi /etc/fstab
添加以下行到fstab來將/storage-pool目錄作為掛載點:
wordpress-1:/volume1 /storage-pool glusterfs defaults,_netdev 0 0
保存並退出。
在wordpress-1上,現在將glusterFS盤掛載至/storage_pool文件系統:
sudo mkdir /storage-pool
sudo mount /storage-pool
在wordpress-1上掛載共享盤/storage-pool後,你可以運行df -h命令來列出當前已掛載的文件。接下來,我們將使用類似的流程來掛載wordpress-2上的共享文件系統。
在wordpress-2上,編輯fstab來使共享系統隨機啟動:
sudo vi /etc/fstab
添加以下行到fstab來將/storage-pool目錄作為掛載點:
wordpress-2:/volume1 /storage-pool glusterfs defaults,_netdev 0 0
在wordpress-2上,現在將glusterFS盤掛載至/storage_pool文件系統:
sudo mkdir /storage-pool
sudo mount /storage-pool
現在,所有在/storage-pool文件系統中創建、修改或刪除的文件都會在兩個wordpress伺服器之間同步,即使當其中一個伺服器暫時故障時也會同步。
將wordpress文件移至共享存儲
下一步是將wordpress-1的wordpress文件移動到共享存儲中。請將紅色字體替換為你自己的值。/var/www/example.com表示wordpress文件的位置(nginx也會在這里查找文件),example.com本身只是根目錄。
在wordpress-1上,運行以下命令來移動wordpress文件至共享文件系統/storage-pool:
sudo mv /var/www/example.com /storage-pool/
sudo chown www-data:www-data /storage-pool/example.com
接下來,你可能想創建一個符號鏈接來指向wordpress在共享文件中位置:
sudo ln -s /storage-pool/example.com /var/www/example.com
目前wordpress文件放在共享文件系統/storage-pool中,這些文件接受Nginx訪問他們的原始路徑/var/www/example.com。
將新的應用伺服器指向共享存儲區
下一步是我們在新web應用程序伺服器上創建一個符號鏈接指向WordPress文件共享文件系統。
如果你選擇使用快照創建wordpress-2,在wordpress-2上運行以下命令:
sudo rm /var/www/example.com
sudo ln -s /storage-pool/example.com /var/www/example.com
如果你從頭創建wordpress-2伺服器,在wordpress-2上運行以下命令:
sudo mkdir -p/var/www
sudo ln -s/storage-pool/example.com /var/www/example.com
這就是wordpress應用的文件同步。接下來是使新伺服器wordpress-2連接資料庫。
創建一個新的資料庫用戶
由於Mysql使用用戶名和源主機來區別用戶,我們需要創建一個新的wordpress用戶來連接新的伺服器wordpress-2。
在資料庫伺服器(mysql-1)上連接至MYSQL控制台:
mysql -u root -p
在一下mysql語句中,將紅色字體替換為你真實環境的參數:
wordpress用戶:Mysql中wordpress用戶。確保和已經存在的用戶名保持一致。
wordpress2private_IP:wordpress-2伺服器的內部ip。
密碼:wordpress用戶的Mysql資料庫密碼。去報和已經存在的用戶名密碼保持一致。
在wordpress-2上mysql控制台中運行以下命令:
CREATE USER 'wordpressuser'@'wordpress_2_private_IP' IDENTIFIED BY 'password';
GRANT SELECT,DELETE,INSERT,UPDATE ON wordpress.* TO 'wordpressuser'@'wordpress_2_private_IP';
FLUSH PRIVILEGES;
現在第二台伺服器wordpress-2就可以登錄mysql伺服器mysql-1了。
還沒負載均衡
注意,有兩個應用伺服器在運行但是他們並沒有被負載均衡,因為每個伺服器必須通過他們的外網IP來訪問。而我們希望能夠通過相同的URL訪問該應用程序,如http://example.com/,以及在兩台伺服器之間做流量分配。
安裝HAProxy
在內網中創建一個新的VPS,在本教程中,我們叫做haproxy-www。
在haproxy-www伺服器上使用apt-get命令來安裝HAProxy:
sudo apt-get update
sudo apt-get install haproxy
我們需要使用HAProxy初始化腳本來啟動和停止HAProxy:
sudo vi /etc/default/haproxy
將ENABLED值改為1來開啟初始化腳本:
ENABLED=1
保存並退出。
現在HAProxy可以在伺服器上被啟動和停止。當然,你現在可以使用命令來控制HAProxy了。讓我們來檢查下它是否運行:
/etc/init.d$ sudo service haproxy status
輸出結果:
haproxy not running
HAProxy沒有運行。這是對的,因為它首先需要配置。接下來,讓我們來配置HAProxy。
HAProxy配置
HAProxy的配置文件主要分為以下兩部分:
Global:設置進程級參數
Proxies:包括默認、監聽、前端、後端參數
Global配置
所有的HAProxy配置都需要在HAProxy伺服器haproxy-www上進行。
首先,復制一份默認的haproxy.cfg文件:
cd /etc/haproxy; sudo cp haproxy.cfg haproxy.cfg.orig
現在,使用文本編輯器打開haproxy.cfg文件:
sudo vi /etc/haproxy/haproxy.cfg
你將看到有兩部分已經被定義:global和defaults。首先,我們將對一些默認參數做一些修改。
在默認情況下,找到一下兩行:
mode http
option httplog
將其中http替換為tcp,結果如下:
mode tcp
option tcplog
選擇tcp作為HAProxy執行第4層負載平衡模式配置。在我們的例子中,這意味著一個特定的IP地址和埠中所有傳入的流量將被轉發到同一後端。如果你不熟悉這一概念,請閱讀在HAProxy介紹中的負載均衡小節。
先不要關閉配置文件,我們將加上proxy配置。
代理配置(Proxyies)
我們首先要做的事情是增加前端。對一個基本的4層負載均衡設置,前端監聽一個特定的IP地址和埠的流量,並將傳入流量轉發到一個指定的後端。
在配置文件的末尾,讓我們添加上我們的前端:www。請將haproxy_www_public_IP替換為你自己的haproxy-www伺服器IP地址:
frontend www
bind haproxy_www_public_IP:80
default_backend wordpress-backend
以下是對上面的前端配置代碼片段中的每一行是什麼意思做出解釋:
frontend www:指定了一個名為「www」的前端,我們將用它來處理傳入www的流量
bind haproxywwwpublic_IP:80:將haproxywwwpublic_IP替換為你haproxy-www伺服器的外網ip。這是告訴haproxy這個前端將處理這個ip和埠上的流量。
default_backend wordpress-backend:這指定所有這些前端的流量將會轉發到wordpress-backend,這在下一步我們將定義
配置完前端後,繼續將以下後端配置加入文件末尾:
backend wordpress-backend
balance roundrobin
mode tcp
server wordpress-1 wordpress_1_private_IP:80 check
server wordpress-2 wordpress_2_private_IP:80 check
以下是對上面每行配置的解釋:
backend wordpress-backend:指定了一個名為「wordpress-backend」的後端
balance roundrobin:指定該後端將使用「輪循」的負載均衡演算法
server wordpress-1 ...:指定了一個名為「wordpress-1」的後端伺服器,內外nagIP(你必須替換為你自己伺服器ip)和埠監聽,在這個例子中為80埠。「check」選項表示使負載均衡器對這個伺服器定期進行健康檢查
server wordpress-2 ...:指定了一個名為「wordpress-2」的後端
保存並退出。
現在HAProxy可以啟動了,但是讓我們先開啟日誌功能。
開始HAProxy日誌功能
啟用HAproxy日誌功能非常簡單,首先編輯rsyslog.conf文件:
sudo vi /etc/rsyslog.conf
接著找到一下兩行,取消這兩行注釋來開啟UDP日誌功能:
$ModLoad imudp
$UDPServerRun 514
$UDPServerAddress 127.0.0.1
現在重啟rsyslog來使新配置生效:
sudo service rsyslog restart
HAProxy日誌功能現在已經開啟了!日誌文件將在HAProxy啟動後被放在/var/log/haproxy.log。
啟動HAProxy和PHP/Nginx
在haproxy-www伺服器上,啟動HAProxy來使配置生效:
sudo service haproxy restart
取決於你如何設置您的新應用程序伺服器,您可能需要重新啟動你的WordPress應用程序通過重啟PHP和Nginx。
在wordpress-2伺服器上,重啟PHP和Nginx:
sudo service php5-fpm restart
sudo service nginx restart
現在WordPress應該運行在兩個應用程序伺服器,它們是負載均衡的。但仍有最後一個配置需要更改。
更新WordPress配置
現在你的WordPress應用程序的URL已經改變,我們必須在WordPress更新幾個設置。
在wordpress伺服器,編輯你的wp-config.php文件。它位於WordPress的安裝位置(在本教程中,它是安裝在/var/www/example.com但你安裝可能會有所不同):
cd /var/www/example.com; sudo vi wp-config.php
找到"DB_NAME"所在行;增加以下配置在該行之上,並且替換紅色的值:
define('WP_SITEURL', 'http://haproxy_www_public_IP');
define('WP_HOME', 'http://haproxy_www_public_IP');
保存並退出。
現在WordPress url配置為指向您的負載平衡器,而不是只有最初的WordPress伺服器,而且在當你試著訪問wp-admin控制台時發揮作用。
負載均衡完成
您的web應用程序伺服器現在是負載均衡的。你的負載平衡WordPress現在可以訪問您的用戶通過負載均衡器haproxy-www的外網IP地址或域名訪問!
⑹ glusterfs可以恢復文件嗎
GlusterFS可以對文件進行自動復制,如鏡像或多次復制,從而確保數據總是可以訪問,甚至是在硬體故障的情況下也能正常訪問。自我修復功能能夠把數據恢復到正確的狀態,而且修復是以增量的方式在後台執行,幾乎不會產生性能負載。GlusterFS沒有設計自己的私有數據文件格式,而是採用操作系統中主流標準的磁碟文件系統(如EXT3、ZFS)來存儲文件,因此數據可以使用各種標准工具進行復制和訪問。
⑺ glusterfs 設置固定埠號
這里是使用了固定埠號的情況,而非本地連接。如果你需要自動重撥功能(auto restart),就要在命令行中鍵入「ip config/all」而後按回車以啟動配置程序。
⑻ 有用GlusterFS的么
親,你好
這個文件用過的人很多
Glusterfs 是國外的一個分布式文件系統
功能比lusterfs要可選擇性多,lusterfs貌似還不能實現元數據高可用。
不知道樓主要問哪個方面問題,建議補充本提問或者重新提問。
這樣大家才能更好地為你解答
希望回答對你有幫助