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虛擬支持




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章