• 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是以色列初創公司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
• 前提是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
• 配置網卡,增長橋接網卡
• 設置一個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
實例:
• 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
實例:
• 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
實例:
• 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子機
實例:
一、出現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
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
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備忘(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