目的
本文檔旨在提供首次安裝 GlusterFS 的逐步指引。在這個教程內,我們會假設你採用 CentOS(其它發行版本及方法已收錄在下列的新用戶指南)。我們亦不會詳細解釋每個步驟,此指南是要協助你儘快開始運作。當你按這些步驟完成 GlusterFS 的部署後,我們建議你閱讀 GlusterFS Admin Guide 學習如何管理 GlusterFS 及如何選取迎合你需要的磁區類型。有關下列步驟的深入解釋,請閱讀 GlusterFS New User Guide。我們盼望你能在最短時間內成功。
如果你需要更詳細的指引,包括不同的安裝方法(虛擬電腦、ECS2 及實體硬件)和針對不同發行版本的說明,請參閱 GlusterFS 的入門指南。
1. 採用「儲存 SIG」的 Yum 軟件庫
如果你要採用「儲存 SIG」的 RPM,你必須安裝 centos-release-gluster RPM,因它提供了所需的 YUM 軟件庫檔。該 RPM 已收錄於 CentOS Extras 內。
範例(針對 CentOS 7/x86_64):
# yum install centos-release-gluster
Gluster 提供了不同發行版本:Long Term Maintenance(LTM 長期維護)及 Short Term Maintenance(STM 短期維護)。CentOS Extras 收錄了數個 centos-release-gluster 套件,而安裝 centos-release-gluster 時預設會選取 LTM 發行版本。有關不同 Gluster 發行版本的詳細資料已收錄於 發行時間表。
2. 第一步 —— 準備最少兩個節點
* 名為 server1 及 server2 的兩個 CentOS 7 伺服器 * 有效的網絡連線 * 最少兩個虛擬碟盤,一個供操作系統用(sda),一個作為 GlusterFS 儲存器(sdb)。這個做法仿效現實世界的部署,把 GlusterFS 儲存器從操作系統中分割出來。
註:GlusterFS 在 /var/lib/glusterd 儲存它動態建立出來的設定檔,要是 GlusterFS 在任何時候無法寫入這些檔案,小則導致你的系統出現反常現象,大則導致系統完全癱瘓。因此我們建議為 /var/log 等目錄建立獨立分割區,確保以上情況不會出現。
3. 第二步 —— 格式化及掛載磚塊
(在兩個節點): 註:這些範例假設磚塊將會位於 /dev/sdb1。
# mkfs.xfs -i size=512 /dev/sdb1 # mkdir -p /bricks/brick1 # vi /etc/fstab
加入以下內容:
/dev/sdb1 /bricks/brick1 xfs defaults 1 2
儲存檔案及離開
# mount -a && mount
你應該看見 sdb1 掛載在 /bricks/brick1
註:在 CentOS 6,你必須安裝 xfsprogs 套件才能格式化 XFS 檔案系統
# yum install xfsprogs
4. 第三步 —— 安裝 GlusterFS
(在兩個節點) 安裝所需軟件:
# yum install glusterfs-server
啟動管理 GlusterFS 的常駐程式(此範例採用 CentOS 7,在 CentOS 6,service 會有不同的輸出):
# systemctl enable glusterd ln -s '/usr/lib/systemd/system/glusterd.service' '/etc/systemd/system/multi-user.target.wants/glusterd.service' # systemctl start glusterd # systemctl status glusterd glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled) Active: active (running) since Fri 2015-11-13 10:16:09 CET; 3s ago Process: 25972 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 25973 (glusterd) CGroup: /system.slice/glusterd.service └─25973 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
儲存 SIG 亦為其它生態環境(例如 Samba)提供 Gluster 套件。套件的詳情已記錄在此處
5. 第四步 —— 設置 iptables
你可以通過 iptables 規則執行 gluster,但你須決定如何設置這些規則。根據預設值,glusterd 將會在 tcp/24007 上聆聽,但單單在 gluster 節點上開啟該連接埠並不足夠。 每次你加入一台新的機器,它將會開啟一個新的連接埠(你可以透過 gluster volume status 來查閱)
視乎你的設計,利用專屬的網絡卡來傳輸 gluster/儲存器的數據是較好的選擇,因此你可利用 netfilter 方案(CentOS 是 /etc/sysconfig/iptables 及 firewalld/firewall-cmd)來「信任」某網絡卡/子網/gluster 節點。
設置 iptables 的方法已超越此文檔的範疇,但你可以在 IPTables 的專屬 wiki 頁面讀取有用的資訊。
6. 第五步 —— 設定互信組別
在 server1 上
# gluster peer probe server2
註:採用主機名稱時,首台伺服器必須獲另一台伺服器偵察才能設定主機名稱。
在 server2 上
# gluster peer probe server1
註:設立組別後,只有獲信任的成員才能偵察新伺服器加進組別。一台新的伺服器無法偵察組別,它必須由組別偵察出來。
7. 第六步 —— 設立 GlusterFS 磁區
在 server1 及 server2 上:
# mkdir /bricks/brick1/gv0
在任何一台伺服器上:
# gluster volume create gv0 replica 2 server1:/bricks/brick1/gv0 server2:/bricks/brick1/gv0 # gluster volume start gv0
確定磁區匯報 Started(已啟動):
# gluster volume info
註:要是磁區未能啟動,你可在其中一台或兩台伺服器的 /var/log/glusterfs 目錄下的日誌檔找尋有關錯誤的線索 —— 信息多數記錄在 etc-glusterfs-glusterd.vol.log
8. 第七步 —— 測試 GlusterFS 磁區
在此步驟,我們將會利用其中一台伺服器掛載磁區。一般來說,你應該在另一台電腦,稱為「客端」,進行此動作。但由於這個步驟涉及在客端電腦上安裝額外的套件,因此伺服器為我們的首輪測試提供了一個方便的測試點。
# mount -t glusterfs server1:/gv0 /mnt # for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
首先,檢查掛載點:
# ls -lA /mnt | wc -l
你應該看見 100 個檔案。 接著,檢查每台伺服器的 GlusterFS 掛載點:
# ls -lA /bricks/brick1/gv0
採用上述的測試方法,你應該在每台伺服器上看見 100 個檔案。在一個不複製、分佈式的磁區上(不會在此詳述),你應該在每台機器看見約 50 個檔案。
總結
就這樣了,這大概是最快速的方法。懇請你閱讀 Admin Guide 及 New User Guide 來取得更深入的理解,但這裡已經為測試提供了一個很好的起點。
此頁的靈感源自 Gluster 社群 的 快速入門指南
詳情請參閱 Gluster 社群的文檔主頁。
Translation of revision 28