生活随笔
收集整理的這篇文章主要介紹了
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。
1、環境準備
2、規劃說明
開啟之后修改IP地址:
本次規劃IP地址
| IP地址 | 硬盤大小 | 內存大小 |
| 10.0.0.88 | 8G | 2G |
3、虛擬化概念
1.軟件模擬
優點:能夠模擬任何硬件,包括不存在的
缺點:功能非常低效,一般用于研究,生產環境不同。
代表:QEM
2.虛擬化層翻譯
2.1 軟件全虛擬化,通過虛擬化層翻譯 ===> 你和美國人說話 —需要通過翻譯=VMware
2.2 半虛擬化 ?改動虛擬機的內核(linux)加上虛擬化層翻譯
======>學了英語在和美國人交流 ? xen(被淘汰)
2.3 硬件支持的全虛擬化 ? ===>你重生到美國和美國人交流 ?KVM
3.容器虛擬化 docker
安裝
KVM已經集成了,我們需要安裝管理軟件
[root@kvm /]# egrep '(vmx|svm)' /proc/cpuinfo?flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep[root@kvm /]# yum -y install qemu-kvm qemu-kvm-tools virt-manager libvirt python-virtinst libvirt-python[root@kvm yum.repos.d]# rpm -qa qemu-kvm qemu-kvm-tools virt-manager libvirt python-virtinst libvirt-pythonlibvirt-python-0.10.2-60.el6.x86_64python-virtinst-0.600.0-29.el6.noarchvirt-manager-0.9.0-31.el6.x86_64qemu-kvm-0.12.1.2-2.491.el6_8.1.x86_64libvirt-0.10.2-60.el6.x86_64qemu-kvm-tools-0.12.1.2-2.491.el6_8.1.x86_64[root@kvm yum.repos.d]# lsmod|grep kvmkvm_intel ? ? ? ? ? ? ?55624 ?0?kvm ? ? ? ? ? ? ? ? ? 341551 ?1 kvm_intel 查看我們的管理工具
[root@kvm yum.repos.d]# rpm -ql qemu-kvm/etc/ksmtuned.conf/etc/modprobe.d/blacklist-kvm.conf/etc/rc.d/init.d/ksm/etc/rc.d/init.d/ksmtuned/etc/sasl2/qemu-kvm.conf/etc/sysconfig/ksm/etc/sysconfig/modules/kvm.modules/etc/udev/rules.d/80-kvm.rules/usr/libexec/qemu-kvm/usr/sbin/ksmtuned/usr/share/doc/qemu-kvm-0.12.1.2/COPYING/usr/share/doc/qemu-kvm-0.12.1.2/COPYING.LIB/usr/share/doc/qemu-kvm-0.12.1.2/Changelog/usr/share/doc/qemu-kvm-0.12.1.2/LICENSE/usr/share/doc/qemu-kvm-0.12.1.2/README/usr/share/doc/qemu-kvm-0.12.1.2/README.systemtap/usr/share/doc/qemu-kvm-0.12.1.2/TODO/usr/share/doc/qemu-kvm-0.12.1.2/qemu-doc.html/usr/share/doc/qemu-kvm-0.12.1.2/qemu-tech.html/usr/share/man/man1/qemu-kvm.1.gz/usr/share/qemu-kvm/usr/share/qemu-kvm/bios.bin/usr/share/qemu-kvm/dump-guest-memory.py/usr/share/qemu-kvm/dump-guest-memory.pyc/usr/share/qemu-kvm/dump-guest-memory.pyo/usr/share/qemu-kvm/extboot.bin/usr/share/qemu-kvm/keymaps/usr/share/qemu-kvm/keymaps/ar/usr/share/qemu-kvm/keymaps/common/usr/share/qemu-kvm/keymaps/da/usr/share/qemu-kvm/keymaps/de/usr/share/qemu-kvm/keymaps/de-ch/usr/share/qemu-kvm/keymaps/en-gb/usr/share/qemu-kvm/keymaps/en-us/usr/share/qemu-kvm/keymaps/es/usr/share/qemu-kvm/keymaps/et/usr/share/qemu-kvm/keymaps/fi/usr/share/qemu-kvm/keymaps/fo/usr/share/qemu-kvm/keymaps/fr/usr/share/qemu-kvm/keymaps/fr-be/usr/share/qemu-kvm/keymaps/fr-ca/usr/share/qemu-kvm/keymaps/fr-ch/usr/share/qemu-kvm/keymaps/hr/usr/share/qemu-kvm/keymaps/hu/usr/share/qemu-kvm/keymaps/is/usr/share/qemu-kvm/keymaps/it/usr/share/qemu-kvm/keymaps/ja/usr/share/qemu-kvm/keymaps/lt/usr/share/qemu-kvm/keymaps/lv/usr/share/qemu-kvm/keymaps/mk/usr/share/qemu-kvm/keymaps/modifiers/usr/share/qemu-kvm/keymaps/nl/usr/share/qemu-kvm/keymaps/nl-be/usr/share/qemu-kvm/keymaps/no/usr/share/qemu-kvm/keymaps/pl/usr/share/qemu-kvm/keymaps/pt/usr/share/qemu-kvm/keymaps/pt-br/usr/share/qemu-kvm/keymaps/ru/usr/share/qemu-kvm/keymaps/sl/usr/share/qemu-kvm/keymaps/sv/usr/share/qemu-kvm/keymaps/th/usr/share/qemu-kvm/keymaps/tr/usr/share/qemu-kvm/linuxboot.bin/usr/share/qemu-kvm/multiboot.bin/usr/share/qemu-kvm/pxe-e1000.bin/usr/share/qemu-kvm/pxe-ne2k_pci.bin/usr/share/qemu-kvm/pxe-pcnet.bin/usr/share/qemu-kvm/pxe-rtl8139.bin/usr/share/qemu-kvm/pxe-virtio.bin/usr/share/qemu-kvm/sgabios.bin/usr/share/qemu-kvm/simpletrace.py/usr/share/qemu-kvm/simpletrace.pyc/usr/share/qemu-kvm/simpletrace.pyo/usr/share/qemu-kvm/systemtap/conf.d/qemu_kvm.conf/usr/share/qemu-kvm/systemtap/script.d/qemu_kvm.stp/usr/share/qemu-kvm/trace-events/usr/share/qemu-kvm/vapic.bin/usr/share/qemu-kvm/vgabios-cirrus.bin/usr/share/qemu-kvm/vgabios-qxl.bin/usr/share/qemu-kvm/vgabios-stdvga.bin/usr/share/qemu-kvm/vgabios-vmware.bin/usr/share/qemu-kvm/vgabios.bin/usr/share/systemtap/tapset/qemu-kvm-simpletrace.stp/usr/share/systemtap/tapset/qemu-kvm.stp 軟件包解釋
[root@m01 kvm]# rpm -qa|grep -E 'qemu|libvirt|virt'libvirt-python-0.10.2-60.el6.x86_64????? #libvirt的圖形化虛擬機管理軟件,需要圖形界面操作系統virt-what-1.11-1.2.el6.x86_64??????????? #基于Libvirt的圖像化虛擬機管理軟件,需要圖形界面操作系統qemu-img-0.12.1.2-2.491.el6_8.1.x86_64???#用于操作虛擬機硬盤鏡像的創建、查看和格式化轉化gpxe-roms-qemu-0.9.7-6.15.el6.noarch?????#虛擬機IPXE的啟動固件,支持虛擬機從網絡啟動libvirt-client-0.10.2-60.el6.x86_64????? #Libvirt的客戶端,最重要的功能之一就是在宿主機關機時可以通過虛擬機也關機,使虛擬機系統正常關機,而不是被強制關機,造成數據丟失python-virtinst-0.600.0-29.el6.noarch??? #一套Python的虛擬機安裝工具virt-manager-0.9.0-31.el6.x86_64?????????#基于Libvirt的圖像化虛擬機管理軟件,需要圖形界面操作系統qemu-kvm-0.12.1.2-2.491.el6_8.1.x86_64???#KVM在用戶運行的程序libvirt-0.10.2-60.el6.x86_64??????????? ?#用于管理虛擬機,它提供了一套虛擬機操作APIqemu-kvm-tools-0.12.1.2-2.491.el6_8.1.x86_64 加入host 解析
vim /etc/host10..0.88 kmv
啟動服務(libvirt)管理kvm
[root@kvm yum.repos.d]# /etc/init.d/libvirtd startStarting libvirtd daemon: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
生成了幾個網卡
[root@kvm yum.repos.d]# ip add1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN?? ? link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00? ? inet 127.0.0.1/8 scope host lo? ? inet6 ::1/128 scope host?? ? ? ?valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000? ? link/ether 00:0c:29:30:e9:bc brd ff:ff:ff:ff:ff:ff? ? inet 10.0.0.88/24 brd 10.0.0.255 scope global eth0? ? inet6 fe80::20c:29ff:fe30:e9bc/64 scope link?? ? ? ?valid_lft forever preferred_lft forever3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000? ? link/ether 00:0c:29:30:e9:c6 brd ff:ff:ff:ff:ff:ff? ? inet 172.16.1.88/24 brd 172.16.1.255 scope global eth1? ? inet6 fe80::20c:29ff:fe30:e9c6/64 scope link?? ? ? ?valid_lft forever preferred_lft forever
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN?? ? link/ether 52:54:00:57:95:13 brd ff:ff:ff:ff:ff:ff? ? inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr05: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500? ? link/ether 52:54:00:57:95:13 brd ff:ff:ff:ff:ff:ff DNS小工具
[root@kvm yum.repos.d]# ps -ef|grep dnsnobody ? ? 2735 ? ? ?1 ?0 11:31 ? ? ? ? ?00:00:00 /usr/sbin/dnsmasq --strict-order --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --bind-interfaces --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases --dhcp-lease-max=253 --dhcp-no-override --dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile --addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhostsroot ? ? ? 2793 ? 2272 ?0 11:32 pts/1 ? ?00:00:00 grep dns
管理dhcp的一些功能。
1.創建虛擬磁盤
[root@kvm yum.repos.d]# qemu-img create -f raw /opt/kvm.raw 10GFormatting '/opt/kvm.raw', fmt=raw size=10737418240?================================================================[root@kvm yum.repos.d]# df -h??????????????????????Filesystem ? ? ?Size ?Used Avail Use% Mounted on/dev/sda3 ? ? ? 6.6G ?1.9G ?4.4G ?31% /tmpfs ? ? ? ? ? 932M ? ? 0 ?932M ? 0% /dev/shm/dev/sda1 ? ? ? 190M ? 36M ?145M ?20% /boot
2.掛載鏡像光盤
掛載(此處不能使用mount)
[root@kvm ~]# dd if=/dev/cdrom of=CentOS6.7.ios[root@kvm ~]# dd if=/dev/cdrom of=CentOS6.7.ios7608320+0 records in7608320+0 records out3895459840 bytes (3.9 GB) copied, 164.972 s, 23.6 MB/s
下載軟件包
TightVNC_2.7.10
最后界面
創建虛擬機
[root@kvm ~]#virt-install?--virt-type=kvm?--name=kvm-demo?-r 1024 -c?/root/CentOS6.7.iso?--network?network=default?--graphics?vnc,listen=0.0.0.0?--noautoconsole?--os-type=linux?--os-variant=rhel6?--disk?path=/opt/kvm.raw ?[root@kvm ~]# mv CentOS6.7.ios /opt/[root@kvm ~]# virt-install --virt-type=kvm --name=kvm-demo -r 1024 -c /opt/CentOS6.7.ios --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --disk path=/opt/kvm.rawStarting install...Creating domain... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?0 B ? ? 00:01 ? ??Domain installation still in progress. You can reconnect to?the console to complete the installation process.
和安裝操作系統一樣
選包文章:http://oldboy.blog.51cto.com/2561410/1564620
[root@kvm?~]#?virsh?list?–all 查看所有虛擬機
[root@kvm ~]# virsh start kvm-demo ?關閉虛擬機,接虛擬機名字即可 Domain kvm-demo started
開啟接上即可
[root@kvm opt]# virsh destroy kvm-demo 停止
[root@kvm ~]#?netstat?-tunlp|grep?qemu-kvm 查看啟動的進程
[root@kvm opt]?virsh?undefine?kvm-demo 強制關閉
[root@kvm?~]#?virsh?resume?kvm-demo ? 暫停
生成kvm虛擬機:virt-install 查看在運行的虛擬機:virsh?list
查看所有虛擬機:virsh?list?–all
查看kvm虛擬機配置文件:virsh?dumpxml?name
啟動kvm虛擬機:virsh?start?name
正常關機:virsh?shutdown?name?
非正常關機(相當于物理機直接拔掉電源):virsh?destroy?name
刪除:virsh?undefine?name(徹底刪除,找不回來了,如果想找回來,需要備份/etc/libvirt/qemu的xml文件)
根據配置文件定義虛擬機:virsh?define?file-name.xml
掛起,終止:virsh?suspend?name
恢復掛起狀態:virsh?resume?name
=====================================
配置網絡,連接! ?ok~
[root@kvm ~]# virt-install –virt-type=kvm –name=kvm-demo -r 1024 -c /opt/CentOS6.7.ios –network network=default –graphics vnc,listen=0.0.0.0,
port=5901?–noautoconsole –os-type=linux –os-variant=rhel6 –disk path=/opt/kvm.raw
在添加一臺需要指定端口port
http://blog.csdn.net/starshine/article/details/8179483
使用undefined 刪除只是刪除這下面的文件
[root@m01 oldboy]# cd /etc/libvirt/qemu [root@m01 qemu]# ls kvm-demo.xml ?networks
制作快照
raw 和qcow2簡單區別 raw不支持快照 qcow2支持快照
[root@m01 kvm]# qemu-img convert -c -f raw -O qcow2 kvm.raw kvm.qcow2 [root@m01 kvm]# ll -h total 6.7G -rw-r–r– 1 qemu qemu 3.7G Jul ?5 12:49 CentOS6.7.ios -rw-r–r– 1 root root 756M Jul ?5 16:00 kvm.qcow2 -rw-r–r– 1 qemu qemu ?18G Jul ?5 16:01 kvm.raw drwx—— 2 root root ?16K Jul ?5 12:43 lost+found
virsh?edit?kvm-demo
提示raw類型分區無法進行制作快照,所以我們修改分區類型
23行<driver name='qemu' type='raw' cache='none'/><driver name='qemu' type='qcow2' cache='none'/>24行<source file='/kvm/kvm.raw'/><source file='/kvm/kvm.qcow2'/>
[root@m01 kvm]# ps -ef|grep –color=auto qcow ? 檢查
[root@m01 kvm]# virsh snapshot-create-as kvm-demo kvm-demo-shot1 ?創建快照
kvm-demo=虛擬機名
kvm-demo-shot1 =快照名
查看所有虛擬機快照
[root@m01 kvm]# virsh snapshot-list kvm-demo ?指定虛擬機快照 Name ? ? ? ? ? ? ? ? Creation Time ? ? ? ? ? ? State ———————————————————— kvm-demo-shot1 ? ? ? 2016-07-05 16:20:50 +0800 running
查看某一個虛擬機快照的信息
[root@m01 kvm]# virsh snapshot-info kvm-demo kvm-demo-shot1?kvm-demo=虛擬機kvm-demo-shot1 =快照名Name: ? ? ? ? ? kvm-demo-shot1Domain: ? ? ? ? kvm-demoCurrent: ? ? ? ?yesState: ? ? ? ? ?runningLocation: ? ? ? internalParent: ? ? ? ? -Children: ? ? ? 0Descendants: ? ?0Metadata: ? ? ? yes
存放虛擬機的配置路徑
[root@m01 kvm]# ll /var/lib/libvirt/qemu/虛擬機配置文件
[root@m01 kvm]#?ls?/etc/libvirt/qemu/ 網絡配置文件(服務)
快照存放路徑
[root@m01 kvm]# ll /var/lib/libvirt/qemu/snapshot/kvm-demo/ total 4 -rw——- 1 root root 3475 Jul ?5 16:20 kvm-demo-shot1.xml
還原快照
[root@m01 kvm]#?virsh?snapshot-revert?kvm-demo?kvm-demo-shot1?
刪除快照
[root@m01 kvm]#?virsh snapshot-delete kvm-demo kvm-demo-shot1 ??
克隆虛擬機
1.設置網卡,關閉selinux和iptables
2.清空/etc/udev
導出xml文件
[root@m01 kvm]# virsh dumpxml kvm-demo >kvm-clone.xml
復制kvm.qcow2(導出磁盤文件)
[root@m01 kvm]# cp kvm.qcow2 kvm-clone.qcow2
[root@m01 kvm]# ll -h total 7.8G -rw-r–r– 1 qemu qemu 3.7G Jul ?5 12:49 CentOS6.7.ios
-rw-r–r– 1 root root 981M Jul ?5 17:13 kvm-clone.qcow2 -rw-r–r– 1 root root 2.8K Jul ?5 17:12 kvm-clone.xml -rw-r–r– 1 root root 981M Jul ?5 17:11 kvm.qcow2 -rw-r–r– 1 root root ?18G Jul ?5 16:12 kvm.raw drwx—— 2 root root ?16K Jul ?5 12:43 lost+found
修改xml配置文件
[root@m01 kvm]# vim kvm-clone.xml?
? <name>kvm-clone</name>?<uuid>0bb17855-95db-442b-ac9f-d855d63badd2</uuid><source file='/kvm/kvm-clone.qcow2'/><mac address='52:54:00:ae:49:b1'/>
===============================================
可以隨機生成uuid
[root@m01 oldboy]# cat /proc/sys/kernel/random/uuid?0bb17855-95db-442b-ac9f-d855d63badd2
修改了以下結果
?[root@kvm?opt]#?diff?kvm-clone.xml*2,3c2,3<???<name>kvm-clone</name><???<uuid>0a515a20-ea43-4b4b-9683-688c4792800f</uuid>--->???<name>kvm-demo</name>>???<uuid>45fd0d59-268f-0968-7101-e27d633286b7</uuid>24c24<???????<source?file='/opt/kvm-clone.qcow2'/>--->???????<source?file='/opt/kvm.qcow2'/>53c53<???????<mac?address='52:54:00:9a:7a:1d'/>--->???????<mac?address='52:54:00:9a:7a:bd'/> 導入進去
[root@m01 kvm]# virsh define kvm-clone.xml?Domain kvm-clone defined from kvm-clone.xml[root@m01 kvm]# virsh list --all?Id ? ?Name ? ? ? ? ? ? ? ? ? ? ? ? ? State----------------------------------------------------?- ? ? kvm-clone ? ? ? ? ? ? ? ? ? ? ?shut off?- ? ? kvm-demo ? ? ? ? ? ? ? ? ? ? ? shut off
啟動虛擬機
[root@m01 kvm]# virsh start kvm-cloneDomain kvm-clone started[root@m01 kvm]# virsh list --all?Id ? ?Name ? ? ? ? ? ? ? ? ? ? ? ? ? State----------------------------------------------------?7 ? ? kvm-clone ? ? ? ? ? ? ? ? ? ? ?running?- ? ? kvm-demo ? ? ? ? ? ? ? ? ? ? ? shut off[root@m01 kvm]# virsh start kvm-demoDomain kvm-demo started[root@m01 kvm]# virsh list --all?Id ? ?Name ? ? ? ? ? ? ? ? ? ? ? ? ? State----------------------------------------------------?7 ? ? kvm-clone ? ? ? ? ? ? ? ? ? ? ?running?8 ? ? kvm-demo ? ? ? ? ? ? ? ? ? ? ? running
更多介紹: openstack ? cloudstack ovirt? RHEV,即Red Hat Enterprise virtualization的縮寫,中文全稱紅帽企業虛擬化
總結
以上是生活随笔為你收集整理的KVM 安装的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。