KVM 虚拟机搭建

项目要求

目前可用的服务器资源只有两台,但实际上需要架设六种服务,而且也没有

 配备SAN或者磁盘阵列之类的存储设备。综合考虑,决定使用KVM虚拟技术。

 一种服务一台虚拟机,一块硬盘,磁盘通过LVM动态分配挂载。内存和cpu

平均分配,包括宿主机正好充分利用资源。实际的运行性能需要上线之后做

监控分析。


拓扑图

wKioL1Qf5EfjH2s1AAG0KOvfXEk817.jpg

















服务器配置

data_master  


cpu model:Xeon E5645

cpu cores:六核超线程

memory:16G

disk:300G*4


father:192.168.121.55

merge:57

wms:58

mongo:59


data_slave


cpu model:Xeon E3-1230

cpu cores:四核超线程

memory:8G

disk:300G*4

father:192.168.121.50

merge:51   

wms:52     

mongo:53 


基本知识

1.KVM虚拟机三大存储模式

   一般情况下我们通常使用KVM存储池或者LVM逻辑卷的方式存储,个人觉得LVM逻辑卷

  的方式对磁盘的动态扩展会非常方便,而且在性能方面也非常的好。


2.KVM镜像存储格式

   一般使用raw和qcow2,具体区别可以查阅相关资料


CPU检测

egrep "vmx" /proc/cpuinfo   如果不支持则无法使用KVM技术,基本上都支持


安装KVM

yum -y install bridge-utils qemu-kvm libvirt virt-manager


网桥设置

vim ifcfg-eth0


DEVICE=eth0
HWADDR=00:1E:67:8B:CC:15
TYPE=Ethernet
#UUID=65f347a8-cdfa-48f0-bfe2-2048225cb913
ONBOOT=yes
#NM_CONTROLLED=yes
#BOOTPROTO=static
#IPADDR=192.168.121.50
#GATEWAY=192.168.121.1
#PREFIX=24
BRIDGR=br0   通过连接桥接器br0


vim ifcfg-br0    br0是一个桥接器,相当于一个路由


DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.121.50   这个就是实际机器的ip
GATEWAY=192.168.121.1 实际网关
PREFIX=24


brctl addif br0 eth0   把eth0加入br0桥接器

brctl show  出现下面的对应关系说明配置成功

wKioL1Qf5MrwprCYAABOfgfKE_o935.jpg


安装KVM虚拟机

qemu-img create -f qcow2 /app/kvm/cenots.img 10G

virt-install -n centos_mdmerge_slave -r 2048 --accelerate --vcpus=1 -c /app/iso/CentOS-6.5-x86_64-minimal.iso --os-type=linux  --disk path=/app/kvm/cenots.img,size=10,format=qcow2 --network bridge=br0,model=virtio  --graphics vnc


这里有一点要提到的是,第一次我用的方法是--disk path直接指定存储在LVM逻辑卷上,没有创建

一个镜像文件,这种方法导致的两个问题就是虚拟机IO性能很差还有不能指定格式为qcow2,而起

装系统时也不能够自定义布局。之后便把系统存储在镜像文件里,然后采用挂载LVM逻辑的方式

来存储其它数据,这样这个硬盘只要不损坏就可已挂载在任意服务器上。

accelerate 加速

model=virtio  不然虚拟机无法访问外网

vnc  使用vnc安装


VNC链接

使用CRT软件端口转发, netstat -antup 查看qemu-kvm监听端口(5900),转发到本地一个端口

通过VNC软件链接安装系统,链接是ip为127.0.0.1,端口为转发端口


创建快照

qemu-img snapshot -c merge_data_slave_bak1.img merge_data_slave.img   快照文件在原来镜像文件里面,不会新生成文件

qemu-img snapshot -l merge_data_slave.img

 

复制虚拟机

virt-clone -o merge_data_slave -n wms_data_slave -f /app/kvm/wms_data_slave.img --force

 

虚拟机网络配置

像普通机器一样配置即可


虚拟机多网卡配置


虚拟机磁盘扩展

动态扩展

virsh attach-disk merge_data_slave /dev/VGroup00/lv00 hdb

mkfs.ext4 /dev/vda

mount /dev/vda /home/

echo "mount /dev/vda /home/" >>/etc/rc.local

 

 静态扩展,永久保存

  virsh edit merge_data_slave

  <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/VGroup00/test'/>
      <target dev='hdb' bus='ide'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
  </disk>



KVM进阶和高可用

1.ISCSI 和SAN技术实现KVM的高可用性

2.存储格式性能区别

http://www.cnblogs.com/feisky/archive/2012/07/03/2575167.html

3.sheepdog实现KVM集群高可用

http://zhumeng8337797.blog.163.com/blog/static/100768914201284105140361/

4.ISCSI+KVM+DRBD 实现高可用


问题总结

1.宿主服务器重启之后 GRUP 损坏

  不知道和KVM有没有关系,升级系统,选择安装引导文件,解决了,数据完好


2.Duplicate ID 'drive-ide0-0-0' for drive

   disk drive id 重复, unit='1',unit 设成不一样的数字 


3.Bringing up interface eth0: device eth0 does not seem present, delaying initialization.

   主要是因为网卡MAC地址重复导致的,删除该文件:/etc/udev/rules.d/70-persistent-net.rules

   重启之后,会自动生成新的MAC地址,但是会指定在当前没有使用的网卡上,例如eth0已经在

   使用了,MAC新地址会分配给eth1,如果想仍然使用eth0网卡,只要把eth0哪一行删掉,把eth1

   该成0即可。

   更高级的设置,请使用kickstart无人执守方案


4.ERROR    Failed to connect socket to '/var/run/libvirt/libvirt-sock'

   libvirtd -d  开启 libvirtd 服务


5.lsmod |grep kvm_intel  没有被加载

   开启服务器CPU虚拟支持Virtualization


6.WARNING  KVM acceleration not available, using 'qemu'
   开启CPU虚拟支持




你可能感兴趣的:(kvm,vnc,网桥)