0

Centos6 KVM libvirt sheepdog安装部署教程

1.安装规划:

物理服务器:3台,CPU支持硬件虚拟户,千M网口至少一个,最佳为万M

支持端口聚合的千M交换机或万M交换机一台

当然测试环境,网络的问题也可不必纠结,但网络性能将直接影响到sheepdog性能

2.安装前的准备

统一安装Centos6 X86_64位服务器系统,选择base环境

安装后关闭selinux,配置iptables规则

sheepdog同时需要tcp 7000端口和udp协议支持

故规则如下:


iptables -I INPUT -i eth0 -p all  -j ACCEPT

service iptables save

servie iptables restart

我们之所以设置所有协议都通过,是为方面测试需要,实际上可根据实际运用,仅需要允许TCP 7000端口 SSH端口,libvirt监听端口以及内网指定地址段的UDP通信即可

运行

setenforce 0

来确保selinux已经关闭.

卸载不必要的包

yum groupremove "Arabic Support" " Armenian Support" "Fonts" "Georgian Support" "Hebrew Support"  "Inuktitut Support" "Java Platform" "Lao Support"

如果有需要最好升级内核


yum update kernel

升级后重启进行如下操作

安装epel源,


rpm -ivh  <a href="ftp://rpmfind.net/linux/epel/6/x86_64/epel-release-6-7.noarch.rpm">ftp://rpmfind.net/linux/epel/6/x86_64/epel-release-6-7.noarch.rpm</a>

安装必要的依赖包


yum -y install gcc gcc-c++ zlib-devel alsa-lib-devel SDL SDL-devel glib2-devel.x86_64 gnutls-devel pixman-spice.x86_64 spice-common-devel.x86_64 spice -server.x86_64 spice-glib.x86_64 spice-glib-devel.x86_64 spice-protocol.noarch spice-server.x86_64 spice-server-devel.x86_64 spice-vdagent.x86_64 ffmpeg-spic e-devel.x86_64 ffmpeg-spice-libs.x86_64 pixman-spice-devel.x86_64 python-devel libjpeg-devel zlib-devel tcl-devel freetype-devel libevent-devel openssl-devel  db4-devel curl-devel pcre-devel corosynclib-devel autoconf autoconf-devel userspace-rcu userspace-rcu-devel

我们这里安装了很多spice和语音、视频驱动,方便在kvm中使用性能更好的spice虚拟桌面来替代VNC,如果不需要可以把 alsa\sdl\spice\ffmpeg等去掉。

下载安装libvirtd


yum install libvirt libvirt-devel libvirt-python

1

下载和安装KVM

1

wget <a href="http://sourceforge.net/projects/kvm/files/qemu-kvm/1.0/qemu-kvm-1.0.tar.gz/download">http://sourceforge.net/projects/kvm/files/qemu-kvm/1.0/qemu-kvm-1.0.tar.gz/download</a>

tar zxvf qemu-kvm-1.0.tar.gz

cd qemu-kvm-1.0

./configure --enable-spice

make&&make install

modprobe kvm-intel

modinfo kvm

ln -s /usr/local/bin/qemu-img /usr/bin/qemu-img

ln -s /usr/local/bin/qemu-io /usr/bin/qemu-io

ln -s /usr/local/bin/qemu-nbd /usr/bin/qemu-nbd

ln -s /usr/local/bin/qemu-system-x86_64 /usr/bin/qemu

ln -s /usr/local/bin/qemu-system-x86_64 /usr/bin/kvm

ln -s /usr/local/bin/qemu-system-x86_64 /usr/libexec/qemu-kvm

在这里一定要注意。BIOS已经开启了CPU硬件虚拟化,反复确认KVM模块加载情况,建议部署后重启再次确认模块加载情况

同时因为我们的KVM是编译安装的,故为了方便给libvirt调用,创建了许多软连接。这些软连接是确保编译后kvm输出的bin文件路径和yum安装的一致。

现在开始安装sheepdog


wget <a href="https://github.com/collie/sheepdog/zipball/master">https://github.com/collie/sheepdog/zipball/master</a>

unzip master

cd collie-sheepdog-2f087c0/

./autogen.sh

如果autofen.sh报错,尝试运行如下指令


autoconf -i

automake --add-missing

autoconf -i force

现在可以运行anuogen.sh了


./autogen.sh

./configure

make&&make install

OK,再到其他机器上进行以上操作,直至三台机器准备完成。

在使用之前,我们先需要把corosync的配置文件做出修改


mv /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf

vim /etc/corosync/corosync.conf

corosync.conf唯一要修改的就是其IP地址在各个机器上分别设置为本机的IP

totem {         version: 2         secauth: off         threads: 0         interface {                 ringnumber: 0                 bindnetaddr: 10.10.254.9                 mcastaddr: 226.94.1.1                 mcastport: 5405                 ttl: 1         } }

我们的环境中是10.10.254.0网段

设置完成后,启动corosync

corosync
sheep /你准备好的存储目录或者设备路径

官网的示例为 sheep ~/store_dir

这其实是不建议的。我们在同样另外的机器也上启动。

然后在其中一个节点上,格式化

collie cluster format --copies=3

这里设置了副本为三份。另外还需要注意的是,以后新加节点进来,新节点不需要格式化,别想某2B一样。。。格式化你会悲剧一生的。。。

查看sheepdog节点列表信息

collie node list

集群状态

collie cluster info

创建一个镜像到sheepdog上。

qemu-img create sheepdog:fuckyou 10G

镜像名称是fuckyou 大小为10G

编辑一个虚拟机配置文件。启动libvirtd

编辑完后从virsh创建此虚拟机,我们的虚拟机配置文件内容如下:

<domain type=’kvm’>   <name>centos02</name>   <uuid>335c8e81-c204-f009-a1be-cb04794ce020</uuid>   <memory unit=’KiB’>2097152</memory>   <currentMemory unit=’KiB’>2097152</currentMemory>   <memtune>     <hard_limit unit=’KiB’>2097152</hard_limit>   </memtune>   <vcpu placement=’static’>4</vcpu>   <os>     <type arch=’x86_64′ machine=’pc-1.0′>hvm</type>   </os>   <clock offset=’utc’/>   <on_poweroff>destroy</on_poweroff>   <on_reboot>restart</on_reboot>   <on_crash>destroy</on_crash>   <devices>     <emulator>/usr/libexec/qemu-kvm</emulator>     <disk type=’network’ device=’disk’>       <driver name=’qemu’ type=’raw’ io=’threads’/>       <source protocol=’sheepdog’ name=’centos-c2′>         <host name=’localhost’ port=’7000′/>       </source>       <target dev=’hdb’ bus=’ide’/>       <boot order=’1′/>       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0′/>     </disk>     <controller type=’usb’ index=’0′>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×01′ function=’0×2′/>     </controller>     <controller type=’ide’ index=’0′>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×01′ function=’0×1′/>     </controller>     <interface type=’bridge’>       <mac address=’52:54:00:12:34:02′/>       <source bridge=’virbr0′/>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×03′ function=’0×0′/>     </interface>     <input type=’mouse’ bus=’ps2′/>     <graphics type=’vnc’ port=’5912′ autoport=’no’ listen=’10.10.254.9′>       <listen type=’address’ address=’10.10.254.9′/>     </graphics>     <video>       <model type=’cirrus’ vram=’9216′ heads=’1′/>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×02′ function=’0×0′/>     </video>     <memballoon model=’virtio’>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×04′ function=’0×0′/>     </memballoon>   </devices>

<seclabel type=’none’/> </domain>

<memory unit=’KiB’>2097152</memory>   <currentMemory unit=’KiB’>2097152</currentMemory>   <memtune>     <hard_limit unit=’KiB’>2097152</hard_limit>   </memtune>   <vcpu placement=’static’>4</vcpu>   <os>     <type arch=’x86_64′ machine=’pc-1.0′>hvm</type>   </os>   <clock offset=’utc’/>   <on_poweroff>destroy</on_poweroff>   <on_reboot>restart</on_reboot>   <on_crash>destroy</on_crash>   <devices>     <emulator>/usr/libexec/qemu-kvm</emulator>     <disk type=’network’ device=’disk’>       <driver name=’qemu’ type=’raw’ io=’threads’/>       <source protocol=’sheepdog’ name=’centos-c2′>         <host name=’localhost’ port=’7000′/>       </source>       <target dev=’hdb’ bus=’ide’/>       <boot order=’1′/>       <address type=’drive’ controller=’0′ bus=’1′ target=’0′ unit=’0′/>     </disk>     <controller type=’usb’ index=’0′>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×01′ function=’0×2′/>     </controller>     <controller type=’ide’ index=’0′>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×01′ function=’0×1′/>     </controller>     <interface type=’bridge’>       <mac address=’52:54:00:12:34:02′/>       <source bridge=’virbr0′/>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×03′ function=’0×0′/>     </interface>     <input type=’mouse’ bus=’ps2′/>     <graphics type=’vnc’ port=’5912′ autoport=’no’ listen=’10.10.254.9′>       <listen type=’address’ address=’10.10.254.9′/>     </graphics>     <video>       <model type=’cirrus’ vram=’9216′ heads=’1′/>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×02′ function=’0×0′/>     </video>     <memballoon model=’virtio’>       <address type=’pci’ domain=’0×0000′ bus=’0×00′ slot=’0×04′ function=’0×0′/>     </memballoon>   </devices>   <seclabel type=’none’/> </domain>

保存后启动此虚拟机

virsh create xxx.xml xxx.xml为虚拟机配置文件名称

如果没问题就可以了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Filed in: 杂技 Tags: , , ,

Related Posts

Bookmark and Promote!

Leave a Reply

You must be Logged in to post comment.

© 2021 陈李粮. All rights reserved. XHTML / CSS Valid.
.