sheepdog是為kvm虛擬化量身定做的分布式檔案系統,針對kvm系統做了深入的優化,是kvm虛擬化分布式檔案系統的終極解決方案,目前版本0.4,如果要在生產環境中使用,還有很多任務作要做,需要等待更成熟的版本發布。
說明:設計目的:
1. 集群設計虛擬機器容量70-100臺,占用1個機櫃,全部由1u伺服器組成,每台伺服器6臺,300g*8;
sheepdog集群架構:
1. 組成,儲存伺服器通過雜湊演算法,可以彈性增加或者減少,並實現冗餘;
2. 儲存伺服器每台機器至少需要4塊網絡卡,如果機器只有板載的2塊網絡卡,需要在加1塊雙口網絡卡,做4塊網絡卡的繫結,這樣可以提高網路頻寬;
3. 每台伺服器是儲存節點也是計算節點;
sheepdog集群搭建:
注意事項:本文介紹在centos 6.3的安裝,如果要使用libvirt需要在在fedora17上安裝。
1 安裝
安裝epel源
rpm -uvh
yum install corosynclib-devel
如果是centos6.x 需要先解除安裝corosync,因為系統攜帶的版本過舊
yum remove corosync corosynclib corosynclib-devel
需要源**安裝
yum install nss-devel -y
git clone git:
cd corosync
git checkout -b flatiron origin/flatiron
./autogen.sh
./configure --enable-nss
make install
修改corosync配置文件
# please read the corosync.conf 5 manual page
cat << eof >/etc/corosync/corosync.conf
compatibility: whitetank
ai***ec {
user: root
group: root
service {
name: pacemaker
ver: 0
totem {
version: 2
secauth: off
threads: 0
inte***ce {
ringnumber: 0
bindnetaddr: 你的ip網段,比如192.168.1.0
mcastaddr: 226.94.1.1
mcastport: 5405
ttl: 64
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: no
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: amf
debug: off
amf {
mode: disabled
eofservice corosync restart
安裝最新的qemu
git clone git:
cd qemu
./configure
make install
cd ..
安裝sheepdog
源**安裝
rpm -uvh
yum install userspace-rcu-devel -y
cd /root
git clone git:
cd sheepdog
./autogen.sh
./configure
make install
cd ..
安裝最新的libvirt(需要比較新的核心支援)
yum install python-devel -y
yum install libnl-devel -y
yum install lib-xml2 -y
yum install -y gnutls-devel
git clone git:
cd libvirt
./autogen.sh
make
make install
2 使用
mkdir -p /var/lib/sheepdog
需要有個塊裝置或者分割槽供sheepdog使用,這裡是乙個lv
mount /dev/vg_datap/lv_for_sheep /var/lib/sheepdog
啟動服務
/etc/init.d/sheepdog start
或者sheep /var/lib/sheepdog
/var/lib/sheepdog是sheepdog的儲存位置,這個目錄必須是xattr ext3 ext4格式之一
增加乙個使用者給sheepdog使用
重新掛載sheepdog儲存位置
格式化sheepdog集群
collie cluster format --copies=3
copies是映象冗餘數
也可以後台格式化
collie cluster format -b farm --copies=3
重用操作
1) 檢視集群狀態
collie node list
[root@dell3 ~]# collie node list
m id host:port v-nodes zone
- 0 10.10.11.100:7000 64 2030766602
- 1 10.10.11.101:7000 64 -720696822
- 2 10.10.11.102:7000 64 -167048694
- 3 10.10.11.103:7000 64 -133494262
2) 產生乙個映象
qemu-img create sheepdog:alice 256g
3) 將乙個現有的映象轉化到sheepdog中
qemu-img convert -t writethrough ~/amd64.raw sheepdog:bob
4) 檢視映象
collie vdi list
5) 虛擬機器啟動
qemu-system-x86_64 sheepdog:alice
6) 修改快取方式
qemu-system-x86_64 -drive file=sheepdog:alice,cache=writeback
7) 建立虛擬機器快照
qemu-img snapshot -c name sheepdog:alice
8) 快照檢視
collie vdi list
name id size used shared creation time object id
bob 0 2.0 gb 1.6 gb 0.0 mb 2010-03-23 16:16 80000
alice 0 256 gb 0.0 mb 0.0 mb 2010-03-23 16:21 c0000
alice 1 256 gb 0.0 mb 0.0 mb 2010-03-23 16:16 40000
9) 從指定的快照啟動
qemu-system-x86_64 sheepdog:alice:1
10) 從快照轉殖
qemu-img create -b sheepdog:alice:1 sheepdog:charlie
collie vdi list
name id size used shared creation time object id
bob 0 2.0 gb 1.6 gb 0.0 mb 2010-03-23 16:16 80000
alice 0 256 gb 0.0 mb 0.0 mb 2010-03-23 16:21 c0000
s alice 1 256 gb 0.0 mb 0.0 mb 2010-03-23 16:16 40000
charlie 0 256 gb 0.0 mb 0.0 mb 2010-03-23 16:23 100000
11) 停止集群
collie cluster shutdown
12) libvirt支援
13) 啟動乙個虛擬機器,vnc埠是5902,網絡卡是e1000
qemu-system-x86_64 --enable-kvm -m 2048 -drive file=sheepdog:w2k3 -drive file=sheepdog:w2k3d -net nic,model=e1000 -vnc :2
高可用 開源的Redis快取集群方案
由於單台redis伺服器的記憶體管理能力有限,使用過大記憶體的redis又會使得伺服器的效能急劇下降,一旦伺服器發生故障將會影響更大範圍業務,而redis 3.0 beta1支援的集群功能還不適合生產環境的使用。於是為了獲取更好的redis快取效能及可用性,很多公司都研發了redis快取集群方案。現...
高可用 開源的Redis快取集群方案
由於單台redis伺服器的記憶體管理能力有限,使用過大記憶體的redis又會使得伺服器的效能急劇下降,一旦伺服器發生故障將會影響更大範圍業務,而redis 3.0 beta1支援的集群功能還不適合生產環境的使用。於是為了獲取更好的redis快取效能及可用性,很多公司都研發了redis快取集群方案。現...
虛擬機器遷移及虛擬機器高可用方案
公司現有三颱物理伺服器,安裝windows server 2008 r2作業系統,啟用了hyper v,三颱物理伺服器裡面各有三颱虛擬機器 共9臺虛擬機器 現有環境不支援虛擬機器高可用性,現計畫配置windows群集來支援虛機高可用。說明 虛擬機器都是固定大小磁碟,無scvmm。1 請問三颱物理伺服...