KVM虛擬化開源高可用方案 四 sheepdog

2021-09-03 10:23:10 字數 4362 閱讀 9319

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 請問三颱物理伺服...