在Centos6.5上部署kvm虛擬化技術(shù)

KVM是什么睡互?

KVM 全稱是 基于內(nèi)核的虛擬機(Kernel-based Virtual Machine)肠套,它是一個?Linux?的一個內(nèi)核模塊舰涌,該內(nèi)核模塊使得 Linux 變成了一個 Hypervisor:

? ?   它由 Quramnet 開發(fā),該公司于 2008年被 Red Hat 收購你稚。

? ?   它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU瓷耙。

? ?   它從 Linux 2.6.20 起就作為一模塊被包含在 Linux 內(nèi)核中刁赖。

? ?   它需要支持虛擬化擴展的 CPU哺徊。

? ?   它是完全開源的。

KVM架構(gòu)

KVM 是基于虛擬化擴展(Intel VT 或者 AMD-V)的 X86 硬件的開源的 Linux 原生的全虛擬化解決方案乾闰。KVM 中落追,虛擬機被實現(xiàn)為常規(guī)的 Linux 進程,由標(biāo)準(zhǔn) Linux 調(diào)度程序進行調(diào)度;虛機的每個虛擬 CPU 被實現(xiàn)為一個常規(guī)的 Linux 進程涯肩。這使得 KMV 能夠使用 Linux 內(nèi)核的已有功能轿钠。

但是,KVM 本身不執(zhí)行任何硬件模擬病苗,需要客戶空間程序通過 /dev/kvm 接口設(shè)置一個客戶機虛擬服務(wù)器的地址空間疗垛,向它提供模擬的 I/O,并將它的視頻顯示映射回宿主的顯示屏硫朦。目前這個應(yīng)用程序是 QEMU贷腕。

Linux 上的用戶空間、內(nèi)核空間和虛機:

Guest:客戶機系統(tǒng)咬展,包括CPU(vCPU)泽裳、內(nèi)存、驅(qū)動(Console破婆、網(wǎng)卡涮总、I/O 設(shè)備驅(qū)動等),被 KVM 置于一種受限制的 CPU 模式下運行祷舀。

KVM:運行在內(nèi)核空間瀑梗,提供CPU 和內(nèi)存的虛級化,以及客戶機的 I/O 攔截裳扯。Guest 的 I/O 被 KVM 攔截后抛丽,交給 QEMU 處理。

QEMU:修改過的為 KVM 虛機使用的 QEMU 代碼饰豺,運行在用戶空間亿鲜,提供硬件 I/O 虛擬化,通過 IOCTL /dev/kvm 設(shè)備和 KVM 交互哟忍。

KVM功能

KVM 所支持的功能包括:

? ?   支持CPU 和 memory 超分(Overcommit)

? ?   支持半虛擬化I/O (virtio)

? ?   支持熱插拔 (cpu狡门,塊設(shè)備陷寝、網(wǎng)絡(luò)設(shè)備等)

? ?   支持對稱多處理(Symmetric Multi-Processing,縮寫為 SMP )

? ?   支持實時遷移(Live Migration)

? ?    支持 PCI 設(shè)備直接分配和 單根I/O 虛擬化 (SR-IOV)

? ?   支持 內(nèi)核同頁合并 (KSM )

? ?   支持 NUMA (Non-Uniform Memory Access其馏,非一致存儲訪問結(jié)構(gòu) )

KVM常用工具

libvirt:操作和管理KVM虛機的虛擬化 API凤跑,使用 C 語言編寫,可以由 Python,Ruby, Perl, PHP, Java 等語言調(diào)用叛复∽幸可以操作包括 KVM,vmware褐奥,XEN咖耘,Hyper-v, LXC 等 Hypervisor。? ?   Virsh:基于 libvirt 的命令行工具 (CLI)? ?   Virt-Manager:基于 libvirt 的 GUI 工具? ?   virt-v2v:虛機格式遷移工具? ?   virt-* 工具:包括 Virt-install (創(chuàng)建KVM虛機的命令行工具)撬码, Virt-viewer (連接到虛機屏幕的工具)儿倒,Virt-clone(虛機克隆工具),virt-top 等? ?   sVirt:安全工具

KVM安裝

安裝前要查看CPU是否支持虛擬化

Lntel CPU:

[root@localhost ~]# cat /proc/cpuinfo |grep vmx

若以上操作有輸出呜笑,就說明CPU支持虛擬化

實驗環(huán)境

KVM:Centos6.5 64位操作系統(tǒng)內(nèi)存4GB硬盤20G

開啟CPU虛擬化支持:

安裝依賴關(guān)系

[root@localhost ~]# yum -y install qemu-kvm qemu-kvm-tools python-virtinst.noarch qemu-img bridge-utils libvirt virt-manager

查看是否加載了KVM模塊[root@localhost ~]# lsmod | grep kvmkvm_intel? ? ? ? ? ? ? 54285? 0kvm? ? ? ? ? ? ? ? ? 333172? 1 kvm_intel 在libvirt中運行KVM網(wǎng)絡(luò)有兩種方法:NAT和bridge夫否,默認(rèn)是NAT。將以bridge(橋接模式)為例叫胁。[root@localhost ~]# ip a1: lo:mtu 16436 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: mtu 1500 qdisc pfifo_fast state UP qlen 1000

? ? link/ether 00:0c:29:88:85:64 brd ff:ff:ff:ff:ff:ff

? ? inet 192.168.2.113/24 brd 192.168.2.255 scope global eth0

? ? inet6 fe80::20c:29ff:fe88:8564/64 scope link

? ? ? valid_lft forever preferred_lft forever

3: pan0:? mtu 1500 qdisc noop state DOWN

link/ether c2:34:e0:1c:77:37 brd ff:ff:ff:ff:ff:ff

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-br0

[root@localhost network-scripts]# vim ifcfg-br0

DEVICE=br0

HWADDR=00:0c:29:88:85:64

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.2.113

NETMASK=255.255.255.0

[root@localhost network-scripts]# vim ifcfg-eth0

DEVICE=eth0

HWADDR=00:0c:29:88:85:64

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

BRIDGE="br0"? #橋接虛擬網(wǎng)卡名稱

[root@localhost ~]# /etc/init.d/network restart

[root@localhost ~]# ip a

安裝KVM

[root@localhost ~]# mkdir -pv /data_kvm/{store,iso}

mkdir: 已創(chuàng)建目錄 "/data_kvm"

mkdir: 已創(chuàng)建目錄 "/data_kvm/store"

mkdir: 已創(chuàng)建目錄 "/data_kvm/iso"

進入圖形界面

[root@localhost ~]# virt-manager

連接出錯凰慈,重啟就好了

重啟libvirtd

[root@localhost ~]# /etc/init.d/libvirtd? start

[root@localhost ~]# virt-manager

添加池

雙擊localhost{QEMU}----存儲-----“+”添加池

選擇瀏覽-----找到剛才創(chuàng)建的目錄------完成

創(chuàng)建存儲卷

單機剛創(chuàng)建的KVM01池----新建卷

新建虛擬機

具體安裝過程與安裝Linux系統(tǒng)一樣(linux系統(tǒng)安裝教程)

查看KVM的配置文件存放目錄

[root@localhost ~]# ls /etc/libvirt/qemu

centos6.5.xml? networks

查看虛擬機狀態(tài)

[root@localhost ~]# virsh list --all

Id? ? 名稱? ? ? ? ? ? ? ? ? ? ? ? 狀態(tài)

----------------------------------------------------

2? ? centos6.5? ? ? ? ? ? ? ? ? ? ? running(開啟)

虛擬機的關(guān)機、開機自啟等操作

要保證acpid服務(wù)安裝并運行

[root@localhost ~]# yum -y install acpid

[root@localhost ~]# /etc/init.d/acpid start

[root@localhost ~]# /etc/init.d/haldaemon stop

正在關(guān)閉 HAL 守護進程:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]

[root@localhost ~]# /etc/init.d/acpid start

[root@localhost ~]# /etc/init.d/haldaemon start

啟動 HAL 守護進程:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]

[root@localhost ~]# /etc/init.d/acpid status

acpid (pid? 1417) 正在運行...

關(guān)機KVM虛擬機

[root@localhost ~]# virsh shutdown centos6.5

域 centos6.5 被關(guān)閉

[root@localhost ~]# virsh destroy centos6.5

域 centos6.5 被刪除

[root@localhost ~]# virsh list --all

Id? ? 名稱? ? ? ? ? ? ? ? ? ? ? ? 狀態(tài)

----------------------------------------------------

-? ? centos6.5? ? ? ? ? ? ? ? ? ? ? 關(guān)閉

開機KVM虛擬機

[root@localhost ~]# virsh start centos6.5

域 centos6.5 已開始

[root@localhost ~]# virsh list --all

Id? ? 名稱? ? ? ? ? ? ? ? ? ? ? ? 狀態(tài)

----------------------------------------------------

4? ? centos6.5? ? ? ? ? ? ? ? ? ? ? running

虛擬機伴隨宿主機自動啟動

[root@localhost ~]# virsh autostart centos6.5

域 centos6.5標(biāo)記為自動開始

[root@localhost ~]# ls /etc/libvirt/qemu

autostart? centos6.5.xml? networks

導(dǎo)出虛擬機配置

[root@localhost ~]# virsh dumpxml centos6.5 > /etc/libvirt/qemu/centos6.5_bak.xml

刪除虛擬機

[root@localhost ~]# virsh undefine centos6.5

修改虛擬機配置信息

[root@localhost ~]# virsh edit centos6.5

KVM文件管理驼鹅,raw格式轉(zhuǎn)換為qcow2格式

虛擬機磁盤文件分為raw與qcow2格式微谓,KVM默認(rèn)格式是raw裸設(shè)備。

raw好處:性能好输钩、速度最快豺型。缺點:不支持一些新的功能。如:鏡像张足、zlib磁盤壓縮触创,AES加密等

libguestfs-tools工具實現(xiàn)格式轉(zhuǎn)換

[root@localhost ~]# yum -y install libguestfs-tools

[root@localhost ~]# qemu-img info /data_kvm/store/KVM011.imgimage: /data_kvm/store/KVM011.imgfile format: rawvirtual size: 3.9G (4194304000 bytes)disk size: 3.9G [root@localhost ~]# virsh shutdown centos6.5域 centos6.5 被關(guān)閉 格式轉(zhuǎn)換坎藐,需要一些時間[root@localhost ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/KVM011.img /data_kvm/store/KVM011.qcow2 [root@localhost ~]# ls /data_kvm/store/KVM011.img? KVM011.qcow2 [root@localhost ~]# ls /etc/libvirt/qemuautostart? centos6.5_bak.xml? centos6.5.xml? networks [root@localhost ~]# virsh edit centos6.5編輯了域 centos6.5 XML 配置为牍。 修改centos6.5的xml配置文件 2324Virt-cat命令,類似于cat岩馍,可查看虛擬機里的文件 查看虛擬機里的network文件碉咆,需要些時間[root@localhost ~]# virt-cat -a /data_kvm/store/centos6.5.qcow2 /etc/sysconfig/network Virt-edit命令,用于編輯文件蛀恩,用法與vim基本相同[root@localhost ~]# virt-edit -a /data_kvm/store/centos6.5.qcow2 /etc/sysconfig/networ Virt-df命令用查看虛擬機磁盤信息[root@localhost ~]# virt-df -h centos6.5Filesystem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Size? ? ? Used? Available? Use%centos6.5:/dev/sda1? ? ? ? ? ? ? ? ? ? ? 484M? ? ? ? 33M? ? ? 427M? ? 7%centos6.5:/dev/sdb1? ? ? ? ? ? ? ? ? ? ? 4.2G? ? ? 4.2G? ? ? ? ? 0? 100%centos6.5:/dev/VolGroup/lv_root? ? ? ? ? 3.0G? ? ? 1.0G? ? ? 1.8G? 34%

虛擬機的克隆

[root@localhost ~]# virsh destroy centos6.5

域 centos6.5 被刪除

[root@localhost ~]# virsh list --all

Id? ? 名稱? ? ? ? ? ? ? ? ? ? ? ? 狀態(tài)

----------------------------------------------------

-? ? centos6.5? ? ? ? ? ? ? ? ? ? ? 關(guān)閉

從centos6.5克隆為centos6.5-clome

[root@localhost ~]# virt-clone -o centos6.5 -n centos6.5-clome -f /data_kvm/store/KVM011-clone.qcow2

Clone 'centos6.5-clome' created successfully.

[root@localhost ~]# virsh list --all

Id? ? 名稱? ? ? ? ? ? ? ? ? ? ? ? 狀態(tài)

----------------------------------------------------

-? ? centos6.5? ? ? ? ? ? ? ? ? ? ? 關(guān)閉

-? ? centos6.5-clome? ? ? ? ? ? ? ? 關(guān)閉

虛擬機的快照

創(chuàng)建快照[root@localhost ~]# virsh snapshot-create centos6.5Domain snapshot 1535644190 created 1535644190:快照的版本號(距離1970年1月1日過去了多少秒) 查看快照信息[root@localhost ~]# virsh snapshot-list centos6.5 名稱? ? ? ? ? ? ? Creation Time? ? ? ? ? ? 狀態(tài)------------------------------------------------------------ 1535644190? ? ? ? ? 2018-08-30 23:49:50 +0800 shutoff 恢復(fù)快照[root@localhost ~]# virsh snapshot-list centos6.5 名稱? ? ? ? ? ? ? Creation Time? ? ? ? ? ? 狀態(tài)------------------------------------------------------------ 1535644190? ? ? ? ? 2018-08-30 23:49:50 +0800 shutoff 1535644574? ? ? ? ? 2018-08-30 23:56:14 +0800 shutoff [root@localhost ~]# virsh snapshot-revert centos6.5 1535644190[root@localhost ~]# virsh snapshot-current centos6.51535644190shutoff刪除快照[root@localhost ~]# virsh snapshot-delete centos6.5 1535644190Domain snapshot 1535644190 deleted [root@localhost ~]# virsh snapshot-list centos6.5 名稱? ? ? ? ? ? ? Creation Time? ? ? ? ? ? 狀態(tài)------------------------------------------------------------ 1535644574? ? ? ? ? 2018-08-30 23:56:14 +0800 shutoff

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疫铜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子双谆,更是在濱河造成了極大的恐慌壳咕,老刑警劉巖席揽,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谓厘,居然都是意外死亡幌羞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門竟稳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來属桦,“玉大人,你說我怎么就攤上這事他爸∧舯觯” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵诊笤,是天一觀的道長系谐。 經(jīng)常有香客問我,道長讨跟,這世上最難降的妖魔是什么蔚鸥? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮许赃,結(jié)果婚禮上止喷,老公的妹妹穿的比我還像新娘。我一直安慰自己混聊,他們只是感情好弹谁,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著句喜,像睡著了一般预愤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咳胃,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天植康,我揣著相機與錄音,去河邊找鬼展懈。 笑死销睁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的存崖。 我是一名探鬼主播冻记,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼来惧!你這毒婦竟也來了冗栗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隅居,沒想到半個月后钠至,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡胎源,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年棕洋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乒融。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡掰盘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赞季,到底是詐尸還是另有隱情愧捕,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布申钩,位于F島的核電站次绘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏撒遣。R本人自食惡果不足惜邮偎,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望义黎。 院中可真熱鬧禾进,春花似錦、人聲如沸廉涕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狐蜕。三九已至宠纯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間层释,已是汗流浹背婆瓜。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贡羔,地道東北人廉白。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像治力,于是被迫代替她去往敵國和親蒙秒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容