前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KVM虚拟化开源高可用方案(四)sheepdog

KVM虚拟化开源高可用方案(四)sheepdog

作者头像
力哥聊运维与云计算
发布2019-06-28 12:45:42
1.2K0
发布2019-06-28 12:45:42
举报
clip_p_w_picpath002
clip_p_w_picpath002

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 http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm

yum install corosynclib-devel

如果是centos6.x 需要先卸载corosync,因为系统携带的版本过旧

yum remove corosync corosynclib corosynclib-devel

需要源代码安装

yum install nss-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

修改corosync配置文档

# Please read the corosync.conf 5 manual page

cat <&lt; EOF >/etc/corosync/corosync.conf

compatibility: whitetank

aisexec {

user: root

group: root

}

service {

name: pacemaker

ver: 0

}

totem {

version: 2

secauth: off

threads: 0

interface {

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

}

EOF

service corosync restart

安装最新的qemu

git clone git://git.sv.gnu.org/qemu.git

cd qemu

./configure

make install

cd ..

安装sheepdog

源代码安装

rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm

yum install userspace-rcu-devel -y

cd /root

git clone git://github.com/collie/sheepdog.git

cd sheepdog

./autogen.sh

./configure

make install

cd ..

安装最新的libvirt(需要比较新的内核支持)

yum install device-mapper-devel -y

yum install python-devel -y

yum install libnl-devel -y

yum install lib-xml2 -y

yum install -y gnutls-devel

git clone git://libvirt.org/libvirt.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支持

<disk type='network'>

<driver name="qemu" type="raw" io="threads" ioeventfd="on" event_idx="off"/>

<source protocol="sheepdog" name="p_w_picpath_name">

<host name="hostname" port="7000"/>

</source>

<target dev="hdb" bus="ide"/>

<boot order='1'/>

<transient/>

<address type='drive' controller='0' bus='1' unit='0'/>

</disk>

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云 HDFS
云 HDFS(Cloud HDFS,CHDFS)为您提供标准 HDFS 访问协议,您无需更改现有代码,即可使用高可用、高可靠、多维度安全、分层命名空间的分布式文件系统。 只需几分钟,您就可以在云端创建和挂载 CHDFS,来实现您大数据存储需求。随着业务需求的变化,您可以实时扩展或缩减存储资源,CHDFS 存储空间无上限,满足您海量大数据存储与分析业务需求。此外,通过 CHDFS,您可以实现计算与存储分离,极大发挥计算资源灵活性,同时实现存储数据永久保存,降低您大数据分析资源成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档