虛擬化KVM(資源)

虛擬化介紹

• VMware Workstation就是虛擬化html

• 虛擬化簡單講,就是把一臺物理計算機虛擬成多臺邏輯計算機,每一個邏輯計算機裏面能夠運行不一樣的操做系統,相互不受影響,這樣就能夠充分利用硬件資源linux

• 關鍵詞Hypervisor(VMM) 虛擬機管理器docker

• 虛擬化技術分爲全虛擬化和半虛擬化centos

• 早期的CPU硬件不支持虛擬化,虛擬機上的操做系統(guestos)要想使用cpu資源,須要經過VMM來翻譯指令,這個過程比較耗費資源,這種虛擬化技術叫作全虛擬化(VMware Workstation)安全

• 半虛擬化技術經過修改guestos內核,讓guestos能夠直接使用CPU資源,而不須要翻譯指令了,從而節省了資源,但修改內核比較雞肋(XEN)服務器

• 後續cpu廠商直接支持虛擬化,不須要經過VMM翻譯指令了,無所謂半虛擬化和全虛擬化網絡

• 參考 http://www.cnblogs.com/xusongwei/archive/2012/07/30/2615592.html  http://itoedr.lofter.com/post/1472ba_69c62fa架構

常見虛擬化軟件

• VMware系列dom

• VMware workstation、VMware vsphere(VMware esxi)、VMware Fusion(Mac)。工具

• Xen 開源 半虛擬化。

• XenServer 商業,廠商Ctirx,基於Xen的。

• KVM 開源 基於linux內核模塊。

• Hyper-V 商業,廠商微軟。

• Openvz 開源  基於linux 虛擬機和宿主機共用一個內核。

• VirtualBox 開源  Sun公司開發  Oracle收購Sun。

• http://developer.huawei.com/ict/forum/thread-23385-1-1.html。

• 企業級虛擬化技術類型:徹底虛擬化、半虛擬化、模擬虛擬化、庫虛擬化、 應用虛擬化、實時遷移,雲計算底層虛擬化技術 。

Kvm企業級高級用法,動態添加網卡、動態增刪Interface、腳本實現動態管 理、硬盤熱加載、故障遷移等。

X86平臺虛擬化技術難點及相關解決方案原理、Xen虛擬化技術、全面介紹CPU 虛擬化、內存虛擬化及I0虛擬化,虛擬化種類及相關特

虛擬化架構

 

KVM介紹

• KVM是以色列初創公司Qumranet開發,2008年9月RedHat公司收購了Qumranet

• KVM是Linux內核的一個模塊,它把Linux內核變成了一個Hypervisor

• KVM是徹底開源的,RedHat基於KVM的虛擬化解決方案叫作RHEV

• KVM在Linux操做系統裏面以進程的形式出現,由標準的Linux調度程序進行調度,這使得KVM可以使用Linux內核的已有功能

• 只有一個KVM內核模塊還不能實現虛擬化的所有功能,就比如操做系統只有內核還不能成爲一個完整的操做系統同樣

• QEMU是一個開源的虛擬化軟件,純軟件,能夠虛擬化因此的硬件,性能不強

• KVM基於QEMU開發了一個可以運行在用戶空間的工具QEMU-KVM

• 磁盤、網絡設備等都是經過QEMU-KVM這個工具模擬出來的

• KVM和QEMU-KVM通訊是經過/dev/kvm實現的

• libvirt是用來管理KVM虛擬機的API,其命令爲virsh

KVM架構圖

Centos7上安裝KVM

• 前提是CPU支持虛擬化

• 虛擬機設置內存2G,增長一個50G的虛擬磁盤,處理器2核,虛擬化引擎兩個虛擬化相關的選項打上對勾

• 關閉iptables或者firewalld

• 關閉selinux

• 格式化新磁盤,掛載到/kvm_data

• 下載一個centos7的鏡像文件

• 檢查cpu參數是否支持虛擬化 

• grep -Ei 'vmx|svm' /proc/cpuinfo

• 安裝kvm

• yum install -y  virt-*  libvirt  bridge-utils qemu-img

實例:

環境搭建:

在關機狀態設置

第一步

第二步

設置完成以後,開機

 

查看系統的內存

查看設置的內核:cat /proc/cpuinfo

檢查cpu參數是否支持虛擬化  :grep -Ei 'vmx|svm' /proc/cpuinfo

                  只要出現vmx和svm,其中一個就好了,出現了說明支持虛擬化

查看新增的硬盤

格式化EXT4

查看格式化的硬盤狀況

編輯配置文件,讓他開機啓動

vi /etc/fstab

查看防火牆規則,把firewalld和iptables都關閉了

安裝KVM

 

配置網卡並安裝centos7

• 配置網卡,增長橋接網卡

• 設置一個br0網卡,TYPE爲Bridge,IP地址設置爲ens33的ip

• ens33配置文件裏把IP地址去掉,增長BRIDGE=br0

• 檢查KVM模塊是否加載

• lsmod|grep kvm

• 啓動libvirtd服務

• systemctl start  libvirtd

• brctl show能夠看到兩個網卡br0和virbr0

• 命令行安裝centos7

• virt-install --name=aminglinux01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-17081.iso --disk path=/kvm_data/aminglinux01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial  --extra-args="console=tty0 conso

實例:

設置一個br0網卡,TYPE爲Bridge,IP地址設置爲ens33的ip

le=tt

[root@localhost 01]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-br0   #假入第一塊網卡是ens33,重命名並移到ifcfg-br0
[root@localhost network-scripts]# vi ifcfg-br0 
[root@localhost 01]#
[root@localhost 01]#
[root@localhost 01]#
[root@localhost 01]#
[root@localhost 01]#
[root@localhost 01]#


S0"

虛擬機管理

• 安全完虛擬機須要重啓,要退出虛擬機使用快捷鍵ctrl ]

• ps aux |grep kvm           //查看kvm進程

• virsh list        //查看虛擬機列表,只能看到運行的虛擬機

• virsh list --all         //查看虛擬機列表,包括未運行的虛擬機

• virsh console aminglinux01                 //進入指定虛擬機

• virsh shutdown aminglinux01      //關閉虛擬機

• virsh start aminglinux01       //開啓虛擬機

• virsh destroy aminglinux01         //相似stop,這個是強制中止

• virsh undefine aminglinux01        //完全銷燬虛擬機,會刪除虛擬機配置文件,virsh list --all就看不到了

• ls /etc/libvirt/qemu/            //能夠查看虛擬機配置文件

• virsh autostart aminglinux01        //宿主機開機該虛擬機也開機

• virsh autostart --disable aminglinux01     //解除開機啓動

• virsh suspend aminglinux01         //掛起

• virsh resume aminglinux01     //恢復

實例:

 

克隆虛擬機

• virsh shutdown aminglinux01

• virt-clone  --original aminglinux01 --name aminglinux02 --file /kvm_data/aminglinux02.img

• --original指定克隆源虛擬機

• --name指定克隆後的虛擬機名字

• --file指定目標虛擬機的虛擬磁盤文件

• 若是aminglinux01虛擬機開機狀態,則提示先關閉或者暫停虛擬機

快照管理

• 建立快照  virsh snapshot-create aminglinux01

• raw格式的虛擬磁盤不支持作快照,qcow2支持

• qemu-img info /kvm_data/aminglinux01.img //查看aminglinux01.img信息,同時會查看到快照列表

• virsh snapshot-list aminglinux01 //列出全部快照

• virsh snapshot-current aminglinux01//查看當前快照版本

• ls /var/lib/libvirt/qemu/snapshot/aminglinux01//查看全部快照配置文件

• virsh snapshot-revert aminglinux01 1513440854//恢復指定快照

• virsh snapshot-delete aminglinux01  1513440854//刪除快照

實例:

 

磁盤格式

• 虛擬磁盤經常使用格式raw、qcow2

• qemu-img info /kvm_data/aminglinux01.img//查看虛擬磁盤格式

• qemu-img create -f raw /kvm_data/aminglinux01_2.img 2G//建立2G的raw格式磁盤

• 把raw格式的磁盤轉換爲qcow2格式

• qemu-img convert -O qcow2 /kvm_data/aminglinux01_2.img /kvm_data/aminglinux01_2.qcow2

• 轉換後用ls -lh查看磁盤文件的大小,能夠看到qcow2文件比較小,raw文件大小和咱們指定空間大小同樣是2G

• raw格式的磁盤性能比qcow2要好,可是raw格式的磁盤沒法作快照

• 給aminglinux02轉換爲raw格式的磁盤

• virsh shutdown aminglinux02

• qemu-img convert -O raw /kvm_data/aminglinux02.img /kvm_data/aminglinux02_3.raw

• virsh edit aminglinux02//更改格式和文件路徑

• virsh start aminglinux02

實例:

 

磁盤擴容 – raw格式

• qemu-img resize /kvm_data/aminglinux02_3.raw +2G

• qemu-img info /kvm_data/aminglinux02_3.raw

• virsh destroy aminglinux02

• virsh start aminglinux02

• virsh console aminglinux02

• fdisk -l 查看磁盤狀況,並分新的分區

• 除了對已有磁盤擴容外,還能夠額外增長磁盤

• qemu-img create -f raw /kvm_data/aminglinux02_2.raw 5G

• virsh edit aminglinux02 //增長<disk>…</disk>,注意更改source、target、slot

• virsh destroy aminglinux02

• virsh start aminglinux02

實例:

 

 

磁盤擴容 – qcow2格式

• qemu-img resize /kvm_data/aminglinux01.img +2G

• 若提示qemu-img: Can't resize an image which has snapshots,須要刪除快照

• qemu-img info /kvm_data/aminglinux01.img

• virsh destroy aminglinux01

• virsh start aminglinux01

• virsh console aminglinux01

• fdisk -l 查看磁盤狀況,並分新的分區

• 除了對已有磁盤擴容外,還能夠額外增長磁盤

• qemu-img create -f qcow2 /kvm_data/aminglinux01_2.img 5G

• virsh edit aminglinux01 //增長<disk>…</disk>,注意更改source、target、slot

• virsh destroy aminglinux01

• virsh start aminglinux01

實例:

 

調整cpu、內存、網卡

• virsh dominfo aminglinux01 //查看配置

• virsh edit aminglinux01//更改以下部份內容

•  <memory unit='KiB'>1048576</memory>

•  <currentMemory unit='KiB'>524288</currentMemory>

•  <vcpu placement='static' current='1'>2</vcpu>

• virsh shutdown aminglinux01

• virsh start aminglinux01

• virsh setmem aminglinux01 800m//動態調整內存

• virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux01.xml//須要把配置寫入到配置文件裏

• virsh setvcpus aminglinux01 2 //動態調整cpu數量

• virsh domiflist aminglinux01//查看網卡

• virsh attach-interface aminglinux01 --type bridge  --source virbr0//增長一塊新的網卡,並設置爲nat網絡模式(virbr0相似vmware的vmnet8),這裏若是寫--source br0,則網絡模式爲橋接

• virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux01.xml//須要把配置寫入到配置文件裏

實例:

 

遷移虛擬機

•該方式要確保虛擬機是關機狀態

• virsh shutdown aminglinux01

• virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux03.xml  // 若是是遠程機器,須要把該配置文件拷貝到遠程機器上

• virsh domblklist aminglinux01  //查看虛擬機磁盤所在目錄

• rsync -av /kvm_data/aminglinux01.img  /kvm_data/aminglinux03.img  //若是是遷移到遠程,則須要把該磁盤文件拷貝到遠程機器上

• vi /etc/libvirt/qemu/aminglinux03.xml  //由於是遷移到本機,配置文件用的是aminglinux01子機的配置,不改會有衝突,因此須要修改該文件,若是是遠程機器不用修改

• 修改domname:   <name>aminglinux03</name>

• 修改uuid(隨便改一下數字,位數不要變)

• 修改磁盤路徑

• virsh define /etc/libvirt/qemu/aminglinux03.xml //定義新虛擬機

• virsh list --all   //會發現新遷移的aminglinux03子機

實例:

 

kvm 安裝操做系統問題

一、出現error processing drive:

解決:

--ram 設置到1024

二、分區的時候磁盤文件大小爲0

解決:建立虛擬機的時候添加參數ormat=qcow2,size=7,bus=virti:

 

連接   :  https://www.cnblogs.com/liang-wei/p/6905310.html

常見問題:

一、若是沒有新磁盤,可不能夠直接找一個空目錄用?

答:保證此目錄所在磁盤分區有足夠大的空間。宿主機裝了docker,不要繼續裝kvm虛擬化

 

連接:

kvm學習路線 :https://mp.weixin.qq.com/s/wtgybHYpz9W6xuALoAKKGw

KVM 介紹(1):簡介及安裝:http://www.cnblogs.com/sammyliu/p/4543110.html

Linux環境下虛擬化之KVM經常使用命令     :https://mp.weixin.qq.com/s/989_2Mh-yc976blEWmDMgg

KVM虛擬化多功能腳本  :  http://blog.51cto.com/xiaogongju/2155547

KVM虛擬化腳本  :  http://blog.51cto.com/xiaogongju/2154120

KVM   系列   :    http://blog.51cto.com/xiaoli110/category6.html/p2

centos7上測試部署kvm虛擬機   :  http://blog.51cto.com/11555417/2149718

centos6.5下kvm環境搭建詳解 : https://www.jb51.net/os/RedHat/542532.html

 kvm 建立新虛擬機命virt-install 使用說明   :  https://www.cnblogs.com/liang-wei/p/6732055.html

KVM虛擬化技術之virt-manager使用及KVM虛擬化平臺網絡模型介紹 : https://www.jb51.net/article/94087.htm

RedHat6.6下安裝配置KVM虛擬機          :  https://www.jianshu.com/p/5aab59d92b43

 

深刻淺出KVM(一) 丨 簡介&安裝   :  https://www.jianshu.com/p/8886009be152

KVM 介紹(2):CPU 和內存虛擬化  : https://www.jianshu.com/p/f40a297bb333

深刻淺出KVM(三) 丨 I/O 全虛擬化和準虛擬化  : https://www.jianshu.com/p/0288235387c7

深刻淺出KVM(四)丨I/O PCI/PCIe設備直接分配和 SR-IOV   :  https://www.jianshu.com/p/0d7aff2e8e34

深刻淺出KVM(五) 丨libvirt 介紹   :   https://www.jianshu.com/p/a7eac9c71ecf

 

深刻淺出KVM (六) 丨Nova 經過 libvirt 管理 QEMU/KVM 虛機  : https://www.jianshu.com/p/dc9cf1858dd3

深刻淺出KVM (七) 丨使用 libvirt 作 QEMU/KVM 快照和 Nova 實例的快照   : https://www.jianshu.com/p/31d11e3bdbbb 

深刻淺出KVM(八)丨使用 libvirt 遷移 QEMU/KVM 虛機和 Nova 虛機 :https://www.jianshu.com/p/84f71dec693b 

 

kvm備忘(1)   :  https://www.jianshu.com/p/5651ef0c218b

kvm備忘(2)   : https://www.jianshu.com/p/67d87c5d7d38

KVM建立和調整虛擬機   :  https://www.jianshu.com/p/aeb1953d6c7f

原  QEMU和QEMU-KVM的關係   :  https://blog.csdn.net/shengxia1999/article/details/52244119

原  KVM中的網絡IO設備虛擬化方式   :  https://blog.csdn.net/shengxia1999/article/details/52211617

CentOS6.5部署KVM及實如今線遷移 薦               : http://blog.51cto.com/zlyang/1902657

cloudstack+gluster+kvm集羣                        :      http://blog.51cto.com/zlyang/1760452

KVM和QEMU簡介            :       https://www.cnblogs.com/hsqdboke/p/4143212.html

Linux-讓Kvm虛擬機開放服務端口!                     : http://virtual.51cto.com/art/201808/580825.htm

技術分享:KVM虛擬化如何取證?        :      http://virtual.51cto.com/art/201808/580821.htm 

kvm 建立新虛擬機命virt-install 使用說明    :  https://www.cnblogs.com/liang-wei/p/6732055.html

讓KVM虛擬機支持console功能               :   https://www.jianshu.com/p/625ac6251e8a

 

Learning KVM - part1 概述                   ;https://www.jianshu.com/p/a83250e13e62

Learning KVM - part2 安裝KVM        :    https://www.jianshu.com/p/63674851a2bf

Learning KVM - part3 配置KVM存儲共享池        :      https://www.jianshu.com/p/413494ebe74e

Learning KVM - part4 建立虛擬機VM        :    https://www.jianshu.com/p/a1c5f04aa60b

Learning KVM - part5 克隆並初始化VM                        :       https://www.jianshu.com/p/198d90e39553

Learning KVM - part6 掛載並擴容磁盤           :            https://www.jianshu.com/p/17c81a1b8722

Learning KVM - part7 如何爲VM添加和刪除內存          :       https://www.jianshu.com/p/829def223798

Learning KVM - part8 如何添加/刪除vCPU到VM                :  https://www.jianshu.com/p/8765106d7892

 

KVM虛擬化平臺部署及管理      :         http://blog.51cto.com/scholar/1675955

讓KVM虛擬機支持console功能 薦      :http://blog.51cto.com/nolinux/1589488

物理虛擬化服務器之間的KVM在線動態遷移 薦     : http://blog.51cto.com/rfyiamcool/1293301

 

Vmaware複製後的虛擬機不能上網問題解決  https://www.cnblogs.com/hsqdboke/p/4148187.html

KVM基於X86硬件輔助的虛擬化技術實現機制【轉】    :     https://www.cnblogs.com/hsqdboke/p/4146422.html

KVM和QEMU簡介       :  https://www.cnblogs.com/hsqdboke/p/4143212.html

相關文章
相關標籤/搜索