GlusterFS是一種Scale-Out存儲解決方案!!
企業面對著各種資料量的暴增,資料儲存已成為一個必須要注重的問題。
運用GlusterFS特點,讓您打造出彈性又靈活的企業級儲存解決方案。
筆者(百原科技)將分享在Ubuntu平台建置GlusterFS叢集儲存及相關的應用。
相關資源請參閱
GLUSTER COMMUNITY
http://www.gluster.org
有朋友提起如果在分散式結構下轉換影音檔是否可以加快轉檔的速度?
以下是筆者所做的測試。
1.設定四部Ubuntu Server虛擬機網路組態
Gluster叢集儲存時,網路的正確連接很重要,請大家先修改/etc/hosts檔案
相關的ip資訊以及hostname如下:
(1).虛擬機主機名稱:deepin 網路IP位置:192.168.2.61
(2).虛擬機主機名稱:n1 網路IP位置:192.168.2.62
(3).虛擬機主機名稱:n2 網路IP位置:192.168.2.63
(4).虛擬機主機名稱:n3 網路IP位置:192.168.2.64
(5).虛擬機主機名稱:n4 網路IP位置:192.168.2.65
2.環境確認
STEP.1
確認n1主機下的/etc/hosts的設定
使用命令:nano /etc/hosts
圖例參考:
STEP.2
確認n2主機下的/etc/hosts的設定
使用命令:nano /etc/hosts
圖例參考:
STEP.3
確認n3主機下的/etc/hosts的設定
使用命令:nano /etc/hosts
圖例參考:
STEP.4
確認n4主機下的/etc/hosts的設定
使用命令:nano /etc/hosts
圖例參考:
STEP.5
確認deepin主機下的/etc/hosts的設定
使用命令:nano /etc/hosts
圖例參考:
STEP.6
在n1以fping確定n2、n3、n4、deepin可以ping的到
使用命令:fping n1 n2 n3 n4 deeping
圖例參考:
STEP.7
在n2以fping確定n1、n3、n4、deepin可以ping的到
使用命令:fping n1 n2 n3 n4 deeping
圖例參考:
STEP.8
在n3以fping確定n1、n2、n4、deepin可以ping的到
使用命令:fping n1 n2 n3 n4 deeping
圖例參考:
STEP.9
在n4以fping確定n1、n2、n3、deepin可以ping的到
使用命令:fping n1 n2 n3 n4 deeping
圖例參考:
STEP.10
在n4以fping確定n1、n2、n3、n4可以ping的到
使用命令:fping n1 n2 n3 n4 deeping
圖例參考:
STEP.11
在n1的glusterfs服務是否正常
使用命令:service glusterfs-server status
圖例參考:
STEP.12
在n2的glusterfs服務是否正常
使用命令:service glusterfs-server status
圖例參考:
STEP.13
在n3的glusterfs服務是否正常
使用命令:service glusterfs-server status
圖例參考:
STEP.14
在n4的glusterfs服務是否正常
使用命令:service glusterfs-server status
圖例參考:
STEP.15
在deepin的glusterfs服務是否正常
使用命令:service glusterfs-server status
圖例參考:
3.建立分散式卷冊環境並以deepin掛載該卷冊
步驟說明:
1.將n1、n2、n3、n4加入到叢集中,並建立為一分散試卷冊,卷冊命名為dis-vol。
STEP.1
將n1、n2、n3、n4加入到叢集中
使用命令:gluster peer probe n1
使用命令:gluster peer probe n2
使用命令:gluster peer probe n3
使用命令:gluster peer probe n4
圖例參考:
STEP.2
檢查叢集狀態
使用命令:gluster peer status
圖例參考:
STEP.3
建立卷冊
使用命令:gluster volume create dis-vol n1:/dis-vol n2:/dis-vol n3:/dis-vol n4:/dis-vol
圖例參考:
STEP.4
啟用卷冊
使用命令:gluster volume start dis-vol
圖例參考:
2.將命名為dis-vol的卷冊由deepin掛載起來。
使用命令:mount.glusterfs deepin:/dis-vol /mnt/mydisvol/
圖例參考:
4.在deepin中安裝影音轉檔軟體
步驟說明:
1.下載影音轉檔軟體:此次筆者所使用的軟體是Mobile Media Converter
此套軟體的下載網址在這裡,並請選擇For Ubuntu Linux
請選擇您所需的版本下載
2.安裝Mobile Media Converter軟體:
點選mmc_1.7.5_amd64.deb開始安裝
點選Install Package
點選"是"
開始安裝
安裝完成
3.啟動Mobile Media Converter軟體:
啟動程式路徑在:應用程式->影音->Mobile Media Converter
啟動Mobile Media Converter的畫面
5.轉換影音檔案
筆者在deepin中的"/home/glusterfs/影片/" 以及 "/mnt/mydisvol"各放了一個20110603.rmvb的檔案,檔案大小為417.4MB,作為轉檔的來源。
步驟說明:
1.在本機的磁碟作轉檔動作
檔案來源:/home/glusterfs/影片/
轉檔後檔案儲存位置:/home/glusterfs/影片/
選擇Add->Add File
選擇檔案在 "/home/glusterfs/影片/" 的20110603.rmvb檔案
確認"Output File/Folder"路徑在"/home/glusterfs/影片/"
選擇輸出檔案格式"Conversion To"為"AVI Video"
然後按"Convert!"開始轉換
檔案轉換中
轉換完成後約花費19分37秒
2.在dis-vol磁碟作轉檔動作
檔案來源:/mnt/mydisvol/
轉檔後檔案儲存位置:/mnt/mydisvol/
選擇Add->Add File
選擇檔案在 "/mnt/mydisvol/" 的20110603.rmvb檔案
確認"Output File/Folder"路徑在"/mnt/mydisvol/"
選擇輸出檔案格式"Conversion To"為"AVI Video"
然後按"Convert!"開始轉換
檔案轉換中
轉換完成後約花費17分24秒
兩個路徑下的檔案轉換完成後,檔案路徑"/mnt/mydisvol/"下的轉換時間快了2分多鐘。
快了2分多中的速度對於有些人可能認為沒有太大的效益,甚至可能認為GlusterFS的叢集儲存也不過如此。其實不然,原因是對於單一或者少量的檔案來說GlusterFS可能無法展現出效能,但是如果對於大量的檔案的存取GlusterFS是不錯的選擇,因為對於GlusterFS來說分散式的儲存才真正可以發揮其功效的。
在轉換完成後筆者有觀察到在"/mnt/mydisvol/"路徑下的轉換前檔案"20110603.rmvb"以及轉換後檔案"20110603.avi"都是儲存在n4的主機上。
deepin主機中"/mnt/mydisvol/"檔案列表
n1主機中"/dis-vol/"檔案列表
n2主機中"/dis-vol/"檔案列表
n3主機中"/dis-vol/"檔案列表
n4主機中"/dis-vol/"檔案列表
此次所有的檔案都儲存在n4主機上,這會不會是因為沒有發揮GlusterFS分散式功能而導致效能沒有提升的原因之一?如果一次同時轉換多個的檔案GlusterFS會不會因此大幅提升速度,展現應有的分散式儲存效能呢?
預設的Distributed mode分散的單位是檔案.
如果你一個資料夾有好幾個檔案, 就會看到有些檔案在brick1, 有些在brick2.
單一檔案要分到一個以上的brick, 要用striped mode.
但是這種模式對小檔案的效率很糟, 而且想當然耳... 掉了brick就代表丟掉所有的資料, 跟RAID0壞硬碟一樣. 官方目前建議用stripe的理由... 如果你有檔案比brick容量還大的時候~
目前做過最大的GlusterFS系統, 用4個brick+10Gb Ethernet組成60TB. 效率還算OK. 老實說也沒有比較方便的其他做法了, 本來是規劃用Lustre... 但是如果MDS沒弄好會把效率搞得更糟. 要做大檔案Stripe目前還是Lustre比較成熟(也比較麻煩, 哈)
GlustreFS最棒是方便性. 現在已經被RedHat買去變成Redhat Storage Server, 所以RH有商用支援.