云計(jì)算和KVM虛擬機(jī)基礎(chǔ)梳理(轉(zhuǎn))

云計(jì)算介紹

云計(jì)算是一種按使用量付費(fèi)的模式,這種模式提供可用的浆洗、便捷的催束、按需的網(wǎng)絡(luò)訪問(wèn),進(jìn)入可配置的計(jì)算資源共享池伏社,(資源包括網(wǎng)絡(luò)抠刺、服務(wù)器塔淤、存儲(chǔ)、應(yīng)用軟件速妖、服務(wù))高蜂,這些資源能夠被快速提供,需要投入很少的管理工作罕容,或與服務(wù)供應(yīng)商進(jìn)行很少的交互备恤。

1)云計(jì)算之前的使用模式

IDC 托管
IDC 租用
虛擬主機(jī)(買(mǎi)空間)
VPS:虛擬專(zhuān)用主機(jī)

2)傳統(tǒng)數(shù)據(jù)中心面臨的問(wèn)題

資源使用率低
資源分配不均
自動(dòng)化能力差

3)云計(jì)算的優(yōu)勢(shì)

云計(jì)算是一種使用模式,不是一種技術(shù)
云計(jì)算的使用方式:通過(guò)網(wǎng)絡(luò)訪問(wèn)
云計(jì)算的優(yōu)勢(shì):彈性計(jì)算杀赢、按需計(jì)費(fèi)

4)云計(jì)算的特點(diǎn)

資源池化
無(wú)處不在的網(wǎng)絡(luò)訪問(wèn)
可隨時(shí)調(diào)節(jié)的自助服務(wù)
可測(cè)量的服務(wù)量
快速的變化伸縮

5)云計(jì)算的服務(wù)模式

image
image
1--支撐服務(wù)

由支撐網(wǎng)絡(luò)來(lái)提供烘跺,云計(jì)算模式實(shí)現(xiàn)的使用的方式。

2--IaaS基礎(chǔ)設(shè)施即服務(wù)

消費(fèi)者通過(guò)支撐網(wǎng)絡(luò)可以從完善的計(jì)算機(jī)基礎(chǔ)設(shè)施獲得服務(wù)脂崔。這類(lèi)服務(wù)稱(chēng)為基礎(chǔ)設(shè)施即服務(wù)滤淳,基于 Internet 的服務(wù)(如存儲(chǔ)和數(shù)據(jù)庫(kù))是 IaaS的一部分。

3--PaaS平臺(tái)即服務(wù)

PaaS(Platform-as-a-Service:平臺(tái)即服務(wù))是指將軟件研發(fā)的平臺(tái)作為一種服務(wù)砌左,以SaaS的模式提交給用戶(hù)脖咐。因此,PaaS也是SaaS模式的一種應(yīng)用汇歹。

4--SaaS

它是一種通過(guò)Internet提供軟件的模式屁擅,廠商將應(yīng)用軟件統(tǒng)一部署在自己的服務(wù)器上,客戶(hù)可以根據(jù)自己實(shí)際需求产弹,通過(guò)互聯(lián)網(wǎng)向廠商定購(gòu)所需的應(yīng)用軟件服務(wù)派歌,按定購(gòu)的服務(wù)多少和時(shí)間長(zhǎng)短向廠商支付費(fèi)用,并通過(guò)互聯(lián)網(wǎng)獲得廠商提供的服務(wù)痰哨。用戶(hù)不用再購(gòu)買(mǎi)軟件胶果,而改用向提供商租用基于Web的軟件,來(lái)管理企業(yè)經(jīng)營(yíng)活動(dòng)斤斧,且無(wú)需對(duì)軟件進(jìn)行維護(hù)早抠,服務(wù)提供商會(huì)全權(quán)管理和維護(hù)軟件,軟件廠商在向客戶(hù)提供互聯(lián)網(wǎng)應(yīng)用的同時(shí)撬讽,也提供軟件的離線操作和本地?cái)?shù)據(jù)存儲(chǔ)蕊连,讓用戶(hù)隨時(shí)隨地都可以使用其定購(gòu)的軟件和服務(wù)。對(duì)于許多小型企業(yè)來(lái)說(shuō)游昼,SaaS是采用先進(jìn)技術(shù)的最好途徑甘苍,它消除了企業(yè)購(gòu)買(mǎi)、構(gòu)建和維護(hù)基礎(chǔ)設(shè)施和應(yīng)用程序的需要烘豌。

6)云計(jì)算的類(lèi)型

1--公有云

公有云通常指第三方提供商為用戶(hù)提供的能夠使用的云羊赵,公有云一般可通過(guò) Internet 使用,可能是免費(fèi)或成本低廉的,公有云的核心屬性是共享資源服務(wù)昧捷。這種云有許多實(shí)例,可在當(dāng)今整個(gè)開(kāi)放的公有網(wǎng)絡(luò)中提供服務(wù)罐寨。例如:阿里云靡挥、騰訊云、青云鸯绿、百度云跋破、盛大云、迅達(dá)云瓶蝴、等等毒返。

2--私有云

私有云(Private Clouds)是為一個(gè)客戶(hù)單獨(dú)使用而構(gòu)建的,因而提供對(duì)數(shù)據(jù)舷手、安全性和服務(wù)質(zhì)量的最有效控制拧簸。該公司擁有基礎(chǔ)設(shè)施,并可以控制在此基礎(chǔ)設(shè)施上部署應(yīng)用程序的方式男窟。私有云可部署在企業(yè)數(shù)據(jù)中心的防火墻內(nèi)盆赤,也可以將它們部署在一個(gè)安全的主機(jī)托管場(chǎng)所,私有云的核心屬性是專(zhuān)有資源歉眷。

3--混合云

混合云融合了公有云和私有云牺六,是近年來(lái)云計(jì)算的主要模式和發(fā)展方向。我們已經(jīng)知道私企業(yè)主要是面向企業(yè)用戶(hù)汗捡,出于安全考慮淑际,企業(yè)更愿意將數(shù)據(jù)存放在私有云中,但是同時(shí)又希望可以獲得公有云的計(jì)算資源扇住,在這種情況下混合云被越來(lái)越多的采用春缕,它將公有云和私有云進(jìn)行混合和匹配,以獲得最佳的效果台囱,這種個(gè)性化的解決方案淡溯,達(dá)到了既省錢(qián)又安全的目的。

虛擬化介紹

虛擬化簿训,是指通過(guò)虛擬化技術(shù)將一臺(tái)計(jì)算機(jī)虛擬為多臺(tái)邏輯計(jì)算機(jī)咱娶。在一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)邏輯計(jì)算機(jī),每個(gè)邏輯計(jì)算機(jī)可運(yùn)行不同的操作系統(tǒng)强品,并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響膘侮,從而顯著提高計(jì)算機(jī)的工作效率。
虛擬化使用軟件的方法重新定義劃分IT資源的榛,可以實(shí)現(xiàn)IT資源的動(dòng)態(tài)分配琼了、靈活調(diào)度、跨域共享,提高IT資源利用率雕薪,使IT資源能夠真正成為社會(huì)基礎(chǔ)設(shè)施昧诱,服務(wù)于各行各業(yè)中靈活多變的應(yīng)用需求。

0)幾種主要的虛擬化

ESXi是VMware公司研發(fā)的虛擬機(jī)服務(wù)器所袁,ESXi已經(jīng)實(shí)現(xiàn)了與Virtual Appliance Marketplace的直接整合盏档,使用戶(hù)能夠即刻下載并運(yùn)行虛擬設(shè)備。這為

即插即用型軟件的交付與安裝提供了一種全新和極其簡(jiǎn)化的方式燥爷。

通過(guò)iso鏡像(比如VMWare ESXi 5.5.iso)在服務(wù)器上安裝ESXi虛擬化服務(wù)蜈亩,接著在本地PC機(jī)(win10)上安裝VMware vSphere Clent客戶(hù)端工具去連

接遠(yuǎn)程的ESXi服務(wù)器,然后在VMware vSphere Clent工具界面里進(jìn)行虛擬機(jī)的創(chuàng)建和管理前翎。

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

XenServer是思杰公司基于Xen的虛擬化服務(wù)器稚配,Citrix XenServer是一種全面而易于管理的服務(wù)器虛擬化平臺(tái),基于強(qiáng)大的Xen Hypervisor程序之上港华。

通過(guò)iso鏡像(比如XenServer-7.1.1-``install``-``cd``.iso)在服務(wù)器上安裝XenServer服務(wù)道川,接著在本地PC機(jī)(win10)上安裝Citrix XenCenter客戶(hù)端

工具去連接遠(yuǎn)程的XenServer服務(wù)器,然后在Citrix XenCenter工具界面里進(jìn)行虛擬機(jī)的創(chuàng)建和管理苹丸。

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

KVM(Kernel-based Virtual Machine)是一個(gè)開(kāi)源的系統(tǒng)虛擬化模塊愤惰,自Linux 2.6.20之后集成在Linux的各個(gè)主要發(fā)行版本中。它使用Linux自身

的調(diào)度器進(jìn)行管理赘理,所以相對(duì)于Xen宦言,其核心源碼很少。KVM目前已成為學(xué)術(shù)界的主流VMM之一商模。KVM的虛擬化需要硬件支持(如Intel VT技術(shù)或者AMD V技術(shù))奠旺,

是基于硬件的完全虛擬化。而Xen早期則是基于軟件模擬的Para-Virtualization施流,新版本則是基于硬件支持的完全虛擬化响疚。但Xen本身有自己的進(jìn)程調(diào)度器,

存儲(chǔ)管理模塊等瞪醋,所以代碼較為龐大忿晕。廣為流傳的商業(yè)系統(tǒng)虛擬化軟件VMware ESX系列是基于軟件模擬的Full-Virtualization。
---------------------------------------------------------------------------------------------------------------------------------
KVM虛擬化部署有以下幾種方法:

方法一:通過(guò)自身的virt-manager工具進(jìn)行虛擬機(jī)的創(chuàng)建和管理

方法二:通過(guò)WebVirtMgr工具進(jìn)行虛擬機(jī)的創(chuàng)建和管理

方法三:通過(guò)OpenStack工具進(jìn)行虛擬機(jī)的創(chuàng)建和管理银受。

以上三種方法的部署在博客中都會(huì)一一介紹践盼。

1)虛擬化的分類(lèi)

全虛擬化:直接使用底層的硬件 比如:KVM
半虛擬化:通過(guò)一個(gè)中間件,來(lái)調(diào)用底層的硬件 比如:xen
平臺(tái)虛擬化
硬件虛擬化(Inter vt-x/EPT) (AMD AMD-v /RVI)
軟件虛擬化
桌面虛擬化
應(yīng)用虛擬化
存儲(chǔ)虛擬化
網(wǎng)絡(luò)虛擬化

2)虛擬化的優(yōu)勢(shì)

虛擬化可以虛擬出不同的虛擬操作系統(tǒng)宾巍。
虛擬機(jī)之間是相互獨(dú)立互不影響的咕幻。
支持異構(gòu)。
支持快照顶霞、克隆肄程、還原等操作
云計(jì)算與虛擬化的區(qū)別與聯(lián)系

云計(jì)算與虛擬化的區(qū)別與聯(lián)系

1)虛擬化是一種技術(shù),云計(jì)算是一種使用模式。
2)虛擬化是指將物理的實(shí)體蓝厌,通過(guò)軟件模式玄叠,形成若干虛擬存在的系統(tǒng),其實(shí)真是運(yùn)作還是在實(shí)體上褂始,只是劃分了若干區(qū)域或者時(shí)域劃分诸典。
3)云計(jì)算的基礎(chǔ)是虛擬化,但虛擬化只是云計(jì)算的一部分崎苗,云計(jì)算其實(shí)就是在虛擬化出若干資源池以后的應(yīng)用,但虛擬化并不是只對(duì)應(yīng)云計(jì)算的舀寓。

KVM虛擬化

KVM是開(kāi)源軟件胆数,全稱(chēng)是kernel-based virtual machine(基于內(nèi)核的虛擬機(jī))。
KVM是x86架構(gòu)且硬件支持虛擬化技術(shù)(如 intel VT 或 AMD-V)的Linux全虛擬化解決方案互墓。
它包含一個(gè)為處理器提供底層虛擬化 可加載的核心模塊kvm.ko(kvm-intel.ko或kvm-AMD.ko)必尼。
KVM還需要一個(gè)經(jīng)過(guò)修改的QEMU軟件(qemu-kvm),作為虛擬機(jī)上層控制和界面篡撵。
KVM能在不改變linux或windows鏡像的情況下同時(shí)運(yùn)行多個(gè)虛擬機(jī)判莉,(它的意思是多個(gè)虛擬機(jī)使用同一鏡像)并為每一個(gè)虛擬機(jī)配置個(gè)性化硬件環(huán)境(網(wǎng)卡、磁盤(pán)育谬、圖形適配器……)券盅。

1)KVM的優(yōu)勢(shì)

嵌入到Linux的Kernel中 (提高兼容性)
代碼級(jí)資源調(diào)用(提高性能)
虛擬機(jī)就是一個(gè)進(jìn)程
直接支持MUMA技術(shù)(NUMA(Non Uniform Memory Access Architecture)技術(shù)可以使眾多服務(wù)器像單一系統(tǒng)那樣運(yùn)轉(zhuǎn),同時(shí)保留小系統(tǒng)便于編程和管理的優(yōu)點(diǎn)膛檀。

2)KVM安裝前提
CPU要支持虛擬化锰镀,服務(wù)器上默認(rèn)一般是開(kāi)啟的,虛擬機(jī)要自己?jiǎn)?dòng)VT-EPT技術(shù)
[root@oldboy-node1 ~]# grep -E "(vmx|svm)" /proc/cpuinfo
Inter處理器對(duì)應(yīng):VMX
AMD處理器對(duì)應(yīng):SVM
3)KVM虛擬機(jī)安裝
查看系統(tǒng)版本
[root@linux-node1~] cat /etc/redhat-release 
CentOSLinux release 7.1.1503 (Core)
安裝KVM相關(guān)的組件
[root@oldboy-node1 ~] yum -y install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install
kvm:linux內(nèi)核中的一個(gè)模塊咖刃,不需要安裝只要加載就行泳炉,通過(guò)用戶(hù)態(tài)進(jìn)程來(lái)管理。
qemu:虛擬化軟件嚎杨,支持多種架構(gòu)花鹅,可擴(kuò)展,可移植
qemu-kvm:用戶(hù)態(tài)管理KVM枫浙,網(wǎng)卡刨肃、聲卡、PCI設(shè)備等的管理
libvirt:是一個(gè)虛擬化 API 和虛擬機(jī)(VMs)管理后臺(tái)自脯,支持遠(yuǎn)程或本地訪問(wèn)之景,支持多種虛擬化后端 (QEMU/KVM, VirtualBox膏潮, Xen锻狗,等等) 。
檢查KVM是否加載
[root@oldboy-node1 ~] lsmod | grep kvm
kvm_intel 148081 0
kvm 461126 1 kvm_intel
啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)libvirt
[root@linux-node1~]# systemctl enable libvirtd.service 
[root@linux-node1~]# systemctl start libvirtd.service
[root@oldboy-node1 ~]# systemctl status libvirtd.service
創(chuàng)建虛擬機(jī)
1--虛擬機(jī)的創(chuàng)建命令
–virt-type:指定虛擬機(jī)類(lèi)型(kvm、qemu轻纪、xen)
–name:指定虛擬機(jī)的名稱(chēng)
–raw:指定內(nèi)存大小
–cpu:指定cpu的核數(shù)(默認(rèn)為1)
–cdrom:指定鏡像
–disk:指定磁盤(pán)路徑(即上文創(chuàng)建的虛擬磁盤(pán))
–network:指定網(wǎng)絡(luò)類(lèi)
2--創(chuàng)建硬盤(pán)(創(chuàng)建虛擬磁盤(pán),-f指定格式,路徑/opt/CentOS-7.1-x86_64.raw油额,大小10G)
[root@oldboy-node1 ~] qemu-img create -f raw /opt/CentOS-7.1-x86_64.raw 10G
Formatting '/opt/CentOS-7.1-x86_64.raw', fmt=raw size=10737418240
3--鏡像的拷貝
[root@oldboy-node1 ~] dd if=/dev/cdrom of=/opt/CentOS-7.1.iso
4--虛擬機(jī)的創(chuàng)建
[root@oldboy-node1 ~] virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/opt/CentOS-7.1-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

5--使用VNC連接虛擬機(jī)

使用VNC客戶(hù)端連接虛擬機(jī) 物理機(jī)的地址:5900 默認(rèn)是從5900開(kāi)始,以此類(lèi)推刻帚。也可以通過(guò)端口grep vnc查看潦嘶。

6--修改網(wǎng)卡的名稱(chēng)

因?yàn)镃entOS7以后,網(wǎng)卡的命名發(fā)生改變崇众〉嘟可以在安裝的時(shí)候就做出修改

image

按下Tab鍵,然后在quiet后面添加 net.ifnames=0 biosdevname=0
至此顷歌,一臺(tái)KVM虛擬機(jī)安裝成功锰蓬。

KVM的日常應(yīng)用管理
1--虛擬機(jī)的查看

當(dāng)前正在運(yùn)行中的虛擬機(jī)

[root@linux-node1 opt] virsh list 
Id Name State
—————————————————-
1 CentOS-7-x86_64running

當(dāng)前物理機(jī)中的所有的虛擬機(jī)

[root@linux-node1 opt] virsh list --all

也可以在物理機(jī)進(jìn)程中查看,KVM虛擬機(jī)就是一個(gè)KVM進(jìn)程在運(yùn)行

2--虛擬機(jī)的開(kāi)關(guān)
關(guān)閉虛擬機(jī)
[root@oldboy-node1 ~] virsh shudown CentOS-7.1-x86_64(主機(jī)名)
[root@oldboy-node1 ~] virsh destroy CentOS-7.1-x86_64(主機(jī)名)
打開(kāi)虛擬機(jī)
[root@oldboy-node1 ~] virsh start CentOS-7.1-x86_64
刪除虛擬機(jī)
[root@oldboy-node1 ~] virsh undefine CentOS-7.1-x86_64
掛起
[root@oldboy-node1 ~] virsh suspended CentOS-7.1-x86_64
恢復(fù)
[root@oldboy-node1 ~] virsh resume CentOS-7.1-x86_64
3--虛擬機(jī)CPU的擴(kuò)容

編輯虛擬機(jī)

virsh edit CentOS-7.1-x86_64
為了實(shí)現(xiàn)CPU的熱添加眯漩,就需要更改Cpu的最大值,當(dāng)然熱添加值不能超過(guò)最大值
當(dāng)前為1芹扭,自動(dòng)擴(kuò)容最大為4
[root@linux-node1 opt] virsh edit CentOS-7-x86_64 
<vcpu placement=’auto’ current=”1″>4</vcpu> 
熱修改為2個(gè)cpu(不知減少),高版本自動(dòng)激活
[root@linux-node1 opt]virsh setvcpus CentOS-7-x86_64 2 –live 
通過(guò)vnc登錄KVM虛擬機(jī)查看是否擴(kuò)容成功
[root@KVM] grep processor /proc/cpuinfo |wc -l 
在創(chuàng)建虛擬機(jī)時(shí)指定cpu
[root@linux-node1 ~] virt-install –help|grep vcpus
–vcpus VCPUS 
"""
為虛擬機(jī)配置的 vcpus 數(shù)。
例如:
–vcpus 5
–vcpus 5,maxcpus=10,cpuset=1-4,6,8
–vcpus sockets=2,cores=4,threads=2,
"""
4--內(nèi)存熱膨脹和壓縮
查看當(dāng)前KVM內(nèi)存大小
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 –hmp –cmd info balloon 
balloon: actual=1024
熱添加600M
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 –hmp –cmd balloon 600
在配置文件中修改
[root@linux-node1 network-scripts]# virsh edit CentOS-7.1-1-x86_64

最大內(nèi)存<memory unit='KiB'>4048576</memory>
當(dāng)前內(nèi)存<currentMemory unit='KiB'>1048576</currentMemory>
5--硬盤(pán)的模式

生產(chǎn)中不建議對(duì)線上的服務(wù)器的硬盤(pán)進(jìn)行更改赦抖,因此直接不對(duì)此贅述舱卡。

硬盤(pán)格式:
RAW:全鏡像格式:設(shè)置多大就是多大,寫(xiě)入速度快队萤,可以隨便轉(zhuǎn)換成其他的格式轮锥。性能最優(yōu)。但是占用空間大浮禾。
QCOW2:稀疏格式:支持寫(xiě)時(shí)拷貝(Cow,copy-on-write)壓縮交胚,快照,鏡像盈电,更小的存儲(chǔ)空間蝴簇。(用多少給多少)可選擇基于Zlib的壓縮方式,可以選擇AES加密
創(chuàng)建qcow2和raw文件
[root@linux-node1 ~] qemu-img create -f qcow2 test.qcow2 10G
Formatting 'test.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
[root@linux-node1 ~] qemu-img create -f raw test.raw 10G
Formatting 'test.raw', fmt=raw size=10737418240
空間使用情況對(duì)比
[root@linux-node1 ~] ll -sh test.*
200K -rw-r--r-- 1 qiaoliyong qiaoliyong 193K 5 月 6 10:29 test.qcow2
0 -rw-r--r-- 1 qiaoliyong qiaoliyong 10G 5 月 6 10:28 test.raw
[root@linux-node1 ~] stat test.raw
文件:"test.raw"
大写抑恪:10737418240 塊:0 IO 塊:4096 普通文件
[root@linux-node1 ~]# stat test.qcow2
文件:"test.qcow2"
大邪敬省:197120 塊:400 IO 塊:4096 普通文件
6--網(wǎng)卡的配置
先建立一個(gè)虛擬網(wǎng)卡,名稱(chēng)為br0(可以看做是一個(gè)邏輯網(wǎng)段吸重,也可以看做是一個(gè)VLAN名稱(chēng))
[root@linux-node1~] brctl addbr br0
查看網(wǎng)卡信息
[root@linux-node1 ~] brctl show 
bridge
name bridge id STP enabled interfaces
br0 8000.000000000000 no
virbr0 8000.5254009f0311 yes virbr0-nic
把eth0加入網(wǎng)橋,使用橋接模式,給br0設(shè)置ip段互拾,添加路由網(wǎng)關(guān),關(guān)閉防火墻
[root@linux-node1 ~] brctl addif br0 eth0 && ip addr del dev eth0 192.168.56.111/24 && ifconfig br0 192.168.56.111/24 up && route add default gw192.168.56.2 && iptables -F
查看網(wǎng)橋的IP
[root@linux-node1~] ifconfig br0 
br0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.111 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::20c:29ff:fe5d:cc27 prefixlen 64scopeid 0x20<link>
ether 00:0c:29:5d:cc:27 txqueuelen 0(Ethernet)
RX packets 4813 bytes 472527 (461.4 KiB)
RX errors 0 dropped 0overruns 0 frame 0
TX packets 2705 bytes 510369 (498.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0collisions 0
編輯虛擬機(jī)的網(wǎng)絡(luò)配置使用br0網(wǎng)橋模式
[root@linux-node1 ~] virsh edit CentOS-7-x86_64 
<interface type=’bridge’>        #虛擬機(jī)網(wǎng)絡(luò)連接方式
<mac address=’52:54:00:22:04:0f’/>        #為虛擬機(jī)分配MAC地址,務(wù)必唯一,如果是dhcp獲得同樣IP會(huì)引起沖突
<source bridge=’br0’/>        #當(dāng)前主機(jī)網(wǎng)橋名稱(chēng)
重啟虛擬機(jī)
關(guān)閉KVM虛擬機(jī)
[root@linux-node1 opt] virsh shutdown CentOS-7-x86_64 
Domain CentOS-7-x86_64 is being shutdown
啟動(dòng)KVM虛擬機(jī)
[root@linux-node1 opt] virsh start CentOS-7-x86_64 
Domain CentOS-7-x86_64 started
然后配置靜態(tài)IP地址,重啟網(wǎng)卡,即可以通過(guò)xshell連接上KVM虛擬機(jī)了。
KVM性能優(yōu)化
1)CPU的優(yōu)化

Inter的cpu運(yùn)行級(jí)別嚎幸,按權(quán)限級(jí)別高低Ring3->Ring1->Ring0(Ring2和Ring1暫時(shí)不使用)Ring3為用戶(hù)態(tài)颜矿;Ring0為內(nèi)核態(tài)

image

Ring3的用戶(hù)態(tài)是沒(méi)有權(quán)限管理硬件的,需要切換到內(nèi)核態(tài)Ring0嫉晶,這樣的切換(系統(tǒng)調(diào)用)稱(chēng)為上下文切換骑疆,物理機(jī)到虛擬機(jī)多次的上下文切換田篇,勢(shì)必會(huì)導(dǎo)致性能出現(xiàn)問(wèn)題。對(duì)于全虛擬化箍铭,inter實(shí)現(xiàn)了技術(shù)VT-x泊柬,在CPU硬件上實(shí)現(xiàn)了加速轉(zhuǎn)換,CentOS7默認(rèn)是不需要開(kāi)啟的诈火。

2)CPU緩存綁定
[root@linux-node1 ~] lscpu|grep cache
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K

L1是靜態(tài)緩存兽赁,造價(jià)高。
L2,L3是動(dòng)態(tài)緩存冷守,通過(guò)脈沖的方式寫(xiě)入0和1刀崖,造價(jià)較低。
cache解決了cpu處理快拍摇,內(nèi)存處理慢的問(wèn)題蒲跨,類(lèi)似于memcaced和數(shù)據(jù)庫(kù)。
如果cpu調(diào)度器把進(jìn)程隨便調(diào)度到其他cpu上授翻,而不是當(dāng)前L1,L2,L3的緩存cpu上,緩存就不生效了孙咪,就會(huì)產(chǎn)生miss堪唐,為了減少cache miss,需要把KVM進(jìn)程綁定到固定的cpu上翎蹈。
可以使用taskset把某一個(gè)進(jìn)程綁定(cpu親和力綁定,可以提高20%的性能)在某一個(gè)cpu上淮菠,例如:taskset -cp 125718(1指的是cpu1,也可以綁定到多個(gè)cpu上,25718是指的pid).
cpu綁定的優(yōu)點(diǎn):提高性能荤堪,20%以上
cpu綁定的缺點(diǎn):不方便遷移合陵,靈活性差
3)內(nèi)存優(yōu)化
原本實(shí)現(xiàn)方式:

虛擬機(jī)的虛擬內(nèi)存===>虛擬機(jī)的物理內(nèi)存
宿主機(jī)的虛擬內(nèi)存===>宿主機(jī)的物理內(nèi)存

現(xiàn)在實(shí)現(xiàn)方式:EPT(inter)

虛擬機(jī)的虛擬內(nèi)存=====EPT=====宿主機(jī)的物理內(nèi)存
VMM通過(guò)采用影子列表解決內(nèi)存轉(zhuǎn)換的問(wèn)題,影子頁(yè)表是一種比較成熟的純軟件的內(nèi)存虛擬化方式澄阳,但影子頁(yè)表固有的局限性拥知,影響了VMM的性能,例如碎赢,客戶(hù)機(jī)中有多個(gè)CPU低剔,多個(gè)虛擬CPU之間同步頁(yè)面數(shù)據(jù)將導(dǎo)致影子頁(yè)表更新次數(shù)幅度增加,測(cè)試頁(yè)表將帶來(lái)異常嚴(yán)重的性能損失肮塞。如下圖1-1為影子頁(yè)表的原理圖:

image

在此之際襟齿,Inter在最新的Core I7系列處理器上集成了EPT技術(shù)(對(duì)應(yīng)AMD的為RVI技術(shù)),以硬件輔助的方式完成客戶(hù)物理內(nèi)存到機(jī)器物理內(nèi)存的轉(zhuǎn)換枕赵,完成內(nèi)存虛擬化猜欺,并以有效的方式彌補(bǔ)了影子頁(yè)表的缺陷,該技術(shù)默認(rèn)是開(kāi)啟的拷窜,如下圖1-2為EPT技術(shù)的原理开皿。

image
KSM內(nèi)存合并

宿主機(jī)上默認(rèn)會(huì)開(kāi)啟ksmd進(jìn)程涧黄,該進(jìn)程作為內(nèi)核中的守護(hù)進(jìn)程存在,它定期執(zhí)行頁(yè)面掃描副瀑,識(shí)別副本頁(yè)面并合并副本弓熏,釋放這些頁(yè)面以供它用,CentOS7默認(rèn)是開(kāi)啟狀態(tài)

[root@linux-node1 ~] ps aux |grep ksmd
root 280 0.0 0.0 0 0 ? SN 20:37 0:00 [ksmd]
大頁(yè)內(nèi)存

Linux默認(rèn)的內(nèi)存頁(yè)面大小都是4K糠睡,HugePage進(jìn)程會(huì)將默認(rèn)的每個(gè)內(nèi)存頁(yè)面可以調(diào)整為2M挽鞠,CentOS7默認(rèn)開(kāi)啟的

[root@linux-node1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@linux-node1 ~]# ps aux|grep hugepage|grep -v grep
root 2810.0 0.0 00 ? SN 04:220:03 [khugepaged]
4)磁盤(pán)IO優(yōu)化

IO調(diào)度算法,也叫電梯算法狈孔,詳情請(qǐng)看趙班長(zhǎng)博客:http://www.unixhot.com/article/4

1--Noop Scheduler:簡(jiǎn)單的FIFO隊(duì)列信认,最簡(jiǎn)單的調(diào)度算法,由于會(huì)產(chǎn)生讀IO的阻塞均抽,一般使用在SSD硬盤(pán)嫁赏,此時(shí)不需要調(diào)度,IO效果非常好
2--Anticipatory IO Scheduler(as scheduler)適合大數(shù)據(jù)順序順序存儲(chǔ)的文件服務(wù)器油挥,如ftp server和web server潦蝇,不適合數(shù)據(jù)庫(kù)環(huán)境,DB服務(wù)器不要使用這種算法深寥。
3--Deadline Schedler:按照截止時(shí)間的調(diào)度算法攘乒,為了防止出現(xiàn)讀取被餓死的現(xiàn)象,按照截止時(shí)間進(jìn)行調(diào)整惋鹅,默認(rèn)的是讀期限短于寫(xiě)期限则酝,就不會(huì)產(chǎn)生餓死的狀況,一般應(yīng)用在數(shù)據(jù)庫(kù)
4--Complete Fair Queueing Schedule:完全公平的排隊(duì)的IO調(diào)度算法闰集,保證每個(gè)進(jìn)程相對(duì)特別公平的使用IO
查看本機(jī)Centos7默認(rèn)所支持的調(diào)度算法
[root@linux-node1 ~]# dmesg|grep -i “scheduler” 
[ 1.332147] io scheduler noop registered
[ 1.332151] io scheduler deadline registered (default)
[ 1.332190] io scheduler cfq registered
臨時(shí)更改某個(gè)磁盤(pán)的IO調(diào)度算法沽讹,將deadling模式改為cfq模式
[root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
[root@linux-node1 ~]# echo cfq >/sys/block/sda/queue/scheduler 
[root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
使更改的IO調(diào)度算法永久生效,需要更改內(nèi)核參數(shù)
[root@linux-node1 ~]vim /boot/grub/menu.lst 
kernel /boot/vmlinuz-3.10.0-229.el7 ro root=LABEL=/ elevator=deadline rhgb quiet`
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末武鲁,一起剝皮案震驚了整個(gè)濱河市爽雄,隨后出現(xiàn)的幾起案子尼桶,更是在濱河造成了極大的恐慌艰亮,老刑警劉巖仁期,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凡泣,死亡現(xiàn)場(chǎng)離奇詭異蜕猫,居然都是意外死亡删铃,警方通過(guò)查閱死者的電腦和手機(jī)读处,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)峭跳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)排拷,“玉大人侧漓,你說(shuō)我怎么就攤上這事〖嗲猓” “怎么了布蔗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵藤违,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我纵揍,道長(zhǎng)顿乒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任泽谨,我火速辦了婚禮璧榄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吧雹。我一直安慰自己骨杂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布雄卷。 她就那樣靜靜地躺著搓蚪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丁鹉。 梳的紋絲不亂的頭發(fā)上妒潭,一...
    開(kāi)封第一講書(shū)人閱讀 52,549評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音揣钦,去河邊找鬼杜耙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拂盯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播记靡,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谈竿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了摸吠?” 一聲冷哼從身側(cè)響起空凸,我...
    開(kāi)封第一講書(shū)人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎寸痢,沒(méi)想到半個(gè)月后呀洲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡啼止,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年道逗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片献烦。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滓窍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出巩那,到底是詐尸還是另有隱情吏夯,我是刑警寧澤此蜈,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站噪生,受9級(jí)特大地震影響裆赵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜跺嗽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一战授、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抛蚁,春花似錦陈醒、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至肚逸,卻和暖如春爷辙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朦促。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工膝晾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人务冕。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓血当,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親禀忆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子臊旭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361