OpenStack雲計算與虛擬化---KVM篇

  什麼是虛擬化

首先,咱們須要明白一點雲計算並不等於虛擬化,雲計算只是使用到了虛擬化的技術,而虛擬化的技術分爲不少種,如軟件虛擬化、網絡虛擬化、服務器虛擬化等等,而KVM虛擬化是服務器虛擬化的一種,指經過虛擬化技術將一臺計算機虛擬爲多臺邏輯計算機。在一臺計算機上同時運行多個邏輯計算機,每一個邏輯計算機可運行不一樣的操做系統,而且應用程序均可以在相互獨立的空間內運行而互不影響,從而顯著提升計算機的工做效率。虛擬化使用軟件的方法從新定義劃分IT資源,能夠實現IT資源的動態分配、靈活調度、跨域共享,提升IT資源利用率,使IT資源可以真正成爲社會基礎設施,服務於各行各業中靈活多變的應用需求。跨域

  什麼是KVM

KVM是Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20以後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,因此相對於Xen,其核心源碼不多。KVM目前已成爲學術界的主流VMM之一。安全

KVM的虛擬化須要硬件支持(如Intel VT技術或者AMD V技術)。是基於硬件的徹底虛擬化。而Xen早期則是基於軟件模擬的Para-Virtualization,新版本則是基於硬件支持的徹底虛擬化。但Xen自己有本身的進程調度器,存儲管理模塊等,因此代碼較爲龐大。廣爲流傳的商業系統虛擬化軟件VMware ESX系列是基於軟件模擬的Full-Virtualization。服務器

  KVM架構優點

  • 利用Linux的功能 – 不用重複發明輪子網絡

  • 構建在信任的,穩定的企業級平臺之上架構

  • 調度、內存管理、普遍的硬件支持等dom

  • 高級特性ide

  • 繼承可擴展性,NUMA支持,電源管理,熱拔插等工具

  • SELinux安全,實時調度,RAS支持等性能

  • 獨特的hybrid-mode操做,提供了最大的靈活性ui

  • Linux的應用程序和虛擬機同時並存在同一臺服務器上,有效的利用系統硬件資源,高效平滑的將虛擬化整合到企業數據中心的核心

  • 高性能,基於內核優秀的調度技術,利用硬件虛擬化特性

  KVM工具

■qemu-kvma   ■libvirt   ■virt-install

#查看VMX虛擬化是否開啓
[root@kvm ~]# grep -E '(vmx|svm)' /proc/cpuinfo
#安裝KVM管理工具
[root@kvm ~]# yum -y install qemu-kvm libvirt virt-install
#設置libvirtd開機自啓動
[root@kvm ~]# systemctl enable libvirtd
#啓動libvirtd
[root@kvm ~]# systemctl start libvirtd

  KVM建立虛擬主機

#建立一塊10G的虛擬硬盤
[root@kvm ~]# qemu-img create -f raw /opt/RedHat-Demo.raw 10G
#建立虛擬機
[root@kvm ~]# virt-install --virt-type kvm --name RedHat-Demo --ram 1024 --cdrom=/opt/RedHat-Server-6.3.iso --disk path=/opt/RedHat-Demo.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

#列出虛擬機
[root@kvm ~]# virsh list --all
#關閉虛擬機
[root@kvm ~]# virsh shutdown RedHat-Demo
#啓動虛擬機
[root@kvm ~]# virsh start RedHat-Demo

  libvirt管理工具

後臺進程、API接口、virsh組件

  CPU、內存配置

[root@kvm ~]# virsh edit RedHat-Demo
#修改xml文件使其支持熱添加CPU個數,最大4個,當前1個
<vcpu placement='auto' current='1'>4</vcpu>
#執行cpu添加命令
[root@kvm ~]# virsh setvcpus  RedHat-Demo 2 --live
        
#查看虛擬機當前的內存大小
[root@kvm ~]# virsh qemu-monitor-command RedHat-Demo --hmp --cmd info balloon
#修改虛擬機內存大小(熱修改)
[root@kvm ~]# virsh qemu-monitor-command RedHat-Demo --hmp --cmd balloon 512

  網絡配置

#建立橋接虛擬網卡
[root@kvm ~]# brctl addbr br0
#將真實網卡與橋接虛擬網卡互換
[root@kvm ~]# brctl addif br0 eth0
#刪除真實網卡的IP地址
[root@kvm ~]# ip addr del dev eth0 192.168.137.52/24
#設置橋接虛擬網卡的IP地址,並啓動
[root@kvm ~]# ifconfig br0 192.168.137.52/24 up
#設置網關路由
[root@kvm ~]# route add default gw 192.168.56.1

*注:以上將網絡修改成橋接網絡會使網絡中斷,因此建議使用腳本進行
[root@kvm ~]# virsh edit RedHat-Demo
    <interface type='bridge'>
        <mac address='52:54:00:0b:ab:e9'/>
        <source bridge='br0'/>
        <model type='virtio'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
相關文章
相關標籤/搜索