天天看點

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。

  PS:1,雲計算不等于虛拟化

     2,雲計算需要使用虛拟化計算

二,使用VM虛拟機開啟虛拟化支援

KVM虛拟化

 三,檢視虛拟機是否支援KVM

  grep -E '(vmx|svm)' /proc/cpuinfo 

KVM虛拟化

 三,安裝管理KVM管理軟體包

  kvm内置在核心當中,不需要安裝但是需要安裝管理工具軟體包

  yum -y install qemu-kvm libvirt

  安裝安裝虛拟機用工具virt-install

  yum -y install virt-install

  設定libvirtd開啟啟動,并且啟動libvirt

  systemctl enable libvirtd

  systemctl start libvirtd

  使用ifconfig檢視網卡(CentOS7沒有這個指令,使用yum -y install net-tools)

KVM虛拟化

  

四,使用kvm安裝虛拟機

  1,建立硬碟

  qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G

  建立了一個格式為raw大小為10G的磁盤

  2,使用指令安裝

  假如硬碟格式是qcow2安裝指令為

   假如網絡也使用橋接那麼完整的安裝指令是

  --name虛拟機名字

  --ram 配置設定的記憶體大小(CentOS記憶體配置設定如果是1024可能無法啟動圖形化界面是以這裡配置設定大一點)

  --cdrom 指定安裝系統的鏡像

  --disk path 安裝的硬碟及第1步建立的硬碟

  --network 使用預設網絡

  --graphics 預設圖形化界面為vnc

  使用了br0網卡橋接以後安裝網絡的參數為 --network bridge=br0

  3,使用Tighrvnc快速連接配接(預設開始端口是5900如果如建立端口5901以此類推)

    使用vnc連接配接之前需要關閉防火牆及selinux

KVM虛拟化

  在界面按tab輸入一下指令可以讓CentOS7的網卡命名和6一樣

KVM虛拟化

   4,虛拟機的管理指令

    虛拟機的配置檔案在/etc/libvirt/qemu檔案夾下面,無法直接使用vim編輯需要使用以下指令編輯

    virsh edit CentOS-7-x86_64

    CentOS7支援cpu熱添加需要

    修改以下行(代表cpu是自動的最大為4個目前是一個)

    

    然後在指令行輸入以下指令熱添加cpu(單獨使用kvm有點用,使用openstack不支援熱添加删除,最後還是不要使用這種功能)

     

    檢視目前虛拟機的記憶體大小

   熱修改記憶體大小

    記憶體的最大大小在配置檔案裡面配置(編輯xml檔案需要生效的話需要重新開機虛拟機)

  設定虛拟機橋接

  預設的虛拟機是使用nat連接配接的隻能使用vnc連接配接主控端的5900及往後推的端口

  主控端用于橋接的網卡

  檢視橋接模式

  增加一塊橋接的網卡

   

   PS:這個時候網絡就會斷了,生産不能這樣玩,可以寫一個腳本

  腳本第一步添加橋接網卡,第二步橋接網卡與實體網卡綁定,第三步删除原實體網卡IP,第四步啟動橋接網卡

  使用虛拟機終端連接配接檢視br0橋接到實體網卡eth0上面

  把eth0的位址删掉設定在br0上面

   這個時候ip位址已經配置到br0上面了但是還是無法連接配接公網設定以下網關

   修改xml配置檔案修改以下兩個地方

  重新開機虛拟機

   在vnc設定靜态ip位址

  重新開機網卡

   這個時候就可以在本機使用xshell直接連接配接虛拟機裡面的虛拟機了

五,kvm性能優化

  1,cpu優化

  CPU Ring 0 核心空間 Ring使用者空間

  為了減少cpu 的cache miss可以使用taskset把cpu綁定到對應的程序(可提高性能10%隻有)

  taskset -cp 1 程序id

  2,記憶體優化

  虛拟機的實體記憶體其實是主控端的虛拟記憶體

  影子頁表技術

  Intel 使用EPT 技術 AMD使用RVI技術

  大頁記憶體 預設主控端是開啟的

  配置檔案 /sys/kernel/mm/transparent_hugepage/enabled

  記憶體重複合并ksm(預設開啟)

  3,I/O優化

  virto半虛拟化技術優化I/O

  I/O排程算法(2.6核心又四種排程算法3.10為三種)

  檢視目前的I/O排程算法

   幾種IO排程算法比較

作業

1,下載下傳一個IOS

2,建立虛拟機磁盤

3,virt-install安裝虛拟機

  1,不适應swap分區

  2,隻分一個/

  3,不使用LVM等

4,安裝完畢後

  1,關閉Selinux,iptables 

  2,修改網卡配置取得UUID,MAC等

  3,安裝必備軟體zabbix-agent等

繼續閱讀