kvm虛擬化平台搭建


一、虛擬化

虛擬化是指計算機元件在虛擬的基礎上而不是真實的基礎上運行。虛擬化技術可以擴大硬件的容量,簡化軟件的重新配置過程。CPU的虛擬化技術可以單CPU模 擬多CPU並行,允許一個平台同時運行多個操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。

物理機我們一般稱為宿主機(Host),宿主機上面的虛擬機稱為客戶機(Guest)。那么 Host 是如何將自己的硬件資源虛擬化,並提供給 Guest 使用的呢?這個主要是通過一個叫做 Hypervisor 的程序實現的。根據 Hypervisor 的實現方式和所處的位置,虛擬化又分為兩種: 1型虛擬化和2型虛擬化

1型虛擬化

Hypervisor 直接安裝在物理機上,多個虛擬機在 Hypervisor 上運行。這種虛擬化中 Hypervisor 直接管理調用硬件資源,不需要底層操作系統,也可以理解為 Hypervisor 被做成了一個很薄的操作系統。 這種方案的性能處於主機虛擬化與操作系統虛 擬化之間 。代表是VMware ESX Server、Citrix XenServer 和 Microsoft Hyper-V,Linux KVM。

 

2型虛擬化

物理機上首先安裝常規的操作系統,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作為 OS 上的一個程序模塊運行,並對管理虛擬機進行管理。KVM、VirtualBox 和 VMWare Workstation 都屬於這個類型。

 

 

二、kvm架構

kvm是一種基於內核的虛擬化(屬於2型虛擬化),主要分為兩大部分

1、位於內核空間的的kvm.io:主要負責虛擬機的虛擬CPU也就是vCPU ,還有就是對虛擬內存進行管理和調度

2、QEMU-KVM:qemu運行在用戶空間,kvm運行在內核空間,兩者通過/dev/kvm打交道。這個QEMU-KVM就是通過修改QEMU代碼而得出的專門用來創建和管理虛擬機的管理工具,是為了KVM能更好的和內核打交道。VM 運行期間,QEMU 會通過 KVM 模塊提供的系統調用進入內核,由 KVM 負責將虛擬機置於處理的特殊模式運行。為一個虛擬機提供的是io等設備。

 

三、kvm實現示例

實驗環境:VMware Workstation 10、centos7(64位)

前提:(需要開啟VMware 創建的虛擬機支持虛擬化,如下圖紅框所示)

 

1、查看系統是否支持

看到“vmx”表示支持

2、安裝kvm相關包

yum install qemu-kvm libvirt virt-install virt-manager bridge-utils
systemctl start libvirtd
  •  qemu-kvm    ----模擬計算機的工具,為KVM虛擬機提供IO設備
  •  libvirt    ----用於管理 KVM 的Hypervisor
  •  virt-install    ----命令行的虛擬機創建安裝工具
  •  bridge-utils   ----網橋工具
  •  virt-manager 是 KVM 圖形化管理工具

 3、在宿主機創建用於虛擬化的網橋

 1)增加 /etc/sysconfig/network-scripts/ifcfg-br0

   

 2)找到本機現在ip使用的網卡,本例中為  /etc/sysconfig/network-scripts/ifcfg-eno16777736

 

 3)重啟網卡

systemctl restart network

可以看到ip,已經跑到br0上去了。

4、在宿主機創建虛擬機

 1)下載測試鏡像:cirros-0.3.4-x86_64-disk.img  ,從網址:http://download.cirros-cloud.net

 2) 創建安裝磁盤

[root@localhost ~]# qemu-img create -f qcow2 /var/kvm-images/disk-10g.img 10G
Formatting '/var/kvm-images/disk-10g.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off 

 3)安裝虛擬機

[root@localhost ~]# virt-install --name boshen-vm --virt-type kvm --vcpus 1 --ram 512 -c /var/kvm-images/cirros-0.3.4-x86_64-disk.img --network bridge=br0 --noautoconsole --graphics none --console pty,target_type=serial --os-type=linux --os-variant=rhel7 --disk path=/var/kvm-images/disk-10g.img,size=10,format=qcow2

Starting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

 

5、虛擬機基本管理命令

 1)查看虛擬機列表

[root@localhost ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 2     boshen-vm                      running

2)進入虛擬機

virsh console boshen-vm

3)關閉虛擬機

virsh shutdown boshen-vm

4)強制關閉虛擬機

virsh destroy boshen-vm
[root@localhost ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     boshen-vm                      shut off

5)啟動虛擬機

[root@localhost ~]# virsh start boshen-vm
Domain boshen-vm started
[root@localhost ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 5     boshen-vm                      running

6)刪除虛擬機

virsh destroy boshen-vm
virsh undefine boshen-vm

7)查看虛擬機硬盤

[root@localhost ~]# qemu-img info /var/kvm-images/disk-10g.img
image: /var/kvm-images/disk-10g.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

8)添加硬盤

首先創建一塊新的硬盤:disk-5g.img

[root@localhost ~]# qemu-img create -f qcow2 /var/kvm-images/disk-5g.img 5G
Formatting '/var/kvm-images/disk-5g.img', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off

然后為虛擬機添加硬盤

[root@localhost ~]# virsh attach-disk boshen-vm /var/kvm-images/disk-5g.img vdb --live --cache=none --subdriver=qcow2
Disk attached successfully

9)卸載硬盤

[root@localhost ~]# virsh detach-disk boshen-vm --target vdb
Disk detached successfully

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM