歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS 6安裝sheepdog虛擬機分布式儲存

CentOS 6安裝sheepdog虛擬機分布式儲存

日期:2017/2/27 15:58:01   编辑:Linux教程
前言
sheepdog是一個專門為qemu設計的虛擬機分布式文件系統,采用完全對稱的結構,沒有元數據服務的中心節點,因此免除了單點故障的隱患.本文基於最新的0.7.0版本測試,介紹sheepdog的安裝配置和使用.

sheepdog的後端集群管理
sheepdog的後端集群管理用於管理節點間的成員關系和消息通訊.目前可使用四種模式,分別是local driver(用於單機測試),corosync (默認), zookeeper and Accord.

分為兩種模型:
– 全對稱 (依賴 Corosync ,運行於 Sheepdog 的地址空間)
● 缺點:規模小 [<100]
● 優點:無需配置

– 單獨的控制集群 (依賴 Accord* 或者 Zookeeper ,運行於獨立地址空間)
● 缺點:需要配置控制集群
● 優點:規模大 [>1000]

本測試使用的就是默認的Corosync模式.

安裝前准備:
先做一些系統設置
echo "* soft nofile 65533" >> /etc/security/limits.conf
echo "* hard nofile 65533" >> /etc/security/limits.conf
yum install -y make automake autoconf gcc nss-devel wget git glib2
安裝epel源
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安裝sheepdog
1).安裝corosync
centos6自帶的版本過舊,我們需要安裝新版
yum remove corosync corosynclib corosynclib-devel -y
git clone git://github.com/corosync/corosync.git
cd corosync
git checkout -b flatiron origin/flatiron 
./autogen.sh
./configure --enable-nss
make install

2).安裝sheepdog
cd /home2/install
git clone git://github.com/collie/sheepdog.git
cd sheepdog
./autogen.sh
./configure
make install
配置corosync和sheepdog
cd /etc/corosync
cp corosync.conf.example corosync.conf
編輯corosync.conf修改bindnetaddr成你的網段如192.168.1.0
  # delayed/resent/misordered multicast packets. 
  # fail_recv_const: 5000
  interface {
    ringnumber: 0
    bindnetaddr: 192.168.1.0
    mcastaddr: 226.94.1.1
    mcastport: 5405
  }
}
logging {
  fileline: off
  to_stderr: no
  to_logfile: yes
  to_syslog: yes
  # the pathname of the log file
  logfile: /var/log/cluster/corosync.log
  debug: off
  timestamp: on
  logger_subsys {
    subsys: AMF
    debug: off
  }
}
amf {
  mode: disabled
}
啟動服務
/etc/init.d/corosync start
#或通過命令啟動(/var/lib/sheepdog是sheepdog使用的數據目錄,你可以更改到其他)
#sheep /var/lib/sheepdog
sheepdog要求/var/lib/sheepdog目錄所在的分區支持xattr
mount -o remount,user_xattr /
以上操作需要在每一台sheepdog節點執行

格式化sheepdog集群並設置3個副本,只需要在其中一台節點執行
collie cluster format --copies=3
查看節點狀態
collie node list
至此sheepdog集群已經配置完畢

使用qemu-img創建sheepdog磁盤鏡像
由於centos6自帶的qemu1.2版本並不支持sheepdog,這裡要編譯新版的qemu.

安裝依賴的包
yum install zlib-devel glib2-devel -y
編譯qemu
wget http://wiki.qemu-project.org/download/qemu-1.5.2.tar.bz2 
tar jxvf qemu-1.5.2.tar.bz2 
cd qemu-1.5.2 
./configure 
make;make install

創建磁盤
/usr/local/bin/qemu-img create -f qcow2 sheepdog:MyFirstDisk 10G
如果sheepdog運行在其他機器上,需要指定IP和端口
/usr/local/bin/qemu-img create -f qcow2 sheepdog:192.168.1.100:7000:MyFirstDisk 10G
列出sheepdog裡的鏡像
collie vdi list
將現有的鏡像轉換到sheepdog裡
qemu-img convert ./mysystem.raw sheepdog:mysystem

啟動虛擬機
qemu-system-x86_64 --enable-kvm -m 1024 -drive file=sheepdog:MyFirstDisk,cache=writeback   -vnc :15 -cdrom /data/CentOS-6.4-i386-minimal.iso

其他用法
1)創建快照
qemu-img snapshot -c name sheepdog:MyFirstDisk
快照創建後查看鏡像列表
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
  MyFirstDisk  0  256 GB  0.0 MB  0.0 MB 2010-03-23 16:21      c0000
s MyFirstDisk  1  256 GB  0.0 MB  0.0 MB 2010-03-23 16:16      40000
用快照啟動虛擬機
qemu-system-x86_64 sheepdog:MyFirstDisk:1
2)磁盤克隆
qemu-img create -b sheepdog:MyFirstDisk sheepdog:Disk2
3)關閉sheepdog集群
collie cluster shutdown
此命令會關閉所有節點的進程

4)使用fuse掛載sheepdog
首先建立一個名為my_volume的卷
echo my_volume > /var/lib/sheepdog/vdi/mount
格式化為ext4並掛載
mkfs.ext4 /var/lib/sheepdog/volume/my_volume
mount -o loop /var/lib/sheepdog/volume/my_volume /mnt
當連接的sheepdog機器宕機我們可以在線切換到另一台sheepdog
echo ip:port > /var/lib/sheepdog/config/sheep_info
From:http://my.oschina.net/kisops/blog/153576
Copyright © Linux教程網 All Rights Reserved