轉(zhuǎn)帖|行業(yè)資訊|編輯:龔雪|2016-01-04 10:15:43.000|閱讀 475 次
概述:本文主要靈感來自老男孩架構(gòu)師班-趙班長實(shí)戰(zhàn)講解KVM,以及speedy Cloud云公司CEO董偉(董總)云計(jì)算與虛擬化講座,綜合整理而來。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動(dòng)剛才創(chuàng)建的CentOS7KVM虛擬機(jī)
DomainCentOS-7-x86_64 started
[root@linux-node1opt]# virsh list #查看KVM虛擬機(jī)是否啟動(dòng)
Id Name State
----------------------------------------------------
3 CentOS-7-x86_64 running
1.4.1CPU擴(kuò)容
[root@linux-node1opt]# virsh edit CentOS-7-x86_64 #為了實(shí)現(xiàn)CPU的熱添加,就需要更改Cpu的最大值,當(dāng)然熱添加值不能超過最大值
4 #當(dāng)前為1,自動(dòng)擴(kuò)容最大為4
[root@linux-node1opt]# virsh shutdown CentOS-7-x86_64 #關(guān)閉KVM虛擬機(jī)
DomainCentOS-7-x86_64 is being shutdown
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動(dòng)KVM虛擬機(jī)
DomainCentOS-7-x86_64 started
[root@linux-node1opt]# virsh setvcpus CentOS-7-x86_64 2 --live #熱修改為2個(gè)cpu(不知減少),高版本自動(dòng)激活
[root@KVM]#grep processor /proc/cpuinfo |wc -l #通過vnc登錄KVM虛擬機(jī)查看是否擴(kuò)容成功
2
在創(chuàng)建虛擬機(jī)時(shí)指定cpu
[root@linux-node1~]# virt-install --help|grep vcpus
--vcpus VCPUS 為虛擬機(jī)配置的 vcpus 數(shù)。例如:
--vcpus 5
--vcpus5,maxcpus=10,cpuset=1-4,6,8
--vcpussockets=2,cores=4,threads=2,
1.4.2內(nèi)存擴(kuò)容
內(nèi)存的設(shè)置擁有一個(gè)氣球(balloon)機(jī)制,可以增大減少,但是也要設(shè)置一個(gè)最大值,默認(rèn)并沒有最大值,也可以在安裝時(shí)指定。
[root@linux-node1opt]# virsh edit CentOS-7-x86_64 #為了實(shí)現(xiàn)CPU的熱添加,就需要更改Cpu的最大值,當(dāng)然熱添加值不能超過最大值
4194304 #修改最大支持內(nèi)存擴(kuò)容為4G
1048576 #當(dāng)前KVM虛擬機(jī)內(nèi)存為1G
重啟虛擬機(jī)
[root@linux-node1opt]# virsh shutdown CentOS-7-x86_64 #關(guān)閉KVM虛擬機(jī)
DomainCentOS-7-x86_64 is being shutdown
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動(dòng)KVM虛擬機(jī)
DomainCentOS-7-x86_64 started
[root@linux-node1~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon #查看當(dāng)前KVM內(nèi)存大小
balloon:actual=1024
[root@linux-node1~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd balloon #熱添加
unexpected end of expression
[root@linux-node1~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd info balloon #在次查看 balloon: actual=2001
1.4.3硬盤管理
更改虛擬機(jī)中存儲(chǔ),硬盤設(shè)置(不建議生產(chǎn)環(huán)境使用硬盤的擴(kuò)大收縮模式,很容易產(chǎn)生故障)
[root@linux-node1~]# qemu-img --help |grep -i "formats:"
Supportedformats: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppyhost_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftphttps http cloop bochs blkverify blkdebug
硬盤格式都可以通過qeum-img管理,具體qemu-img --help
全鏡像格式(代表raw):設(shè)置多大就是多大,寫入速度快,方便的轉(zhuǎn)換為其他格式,性能最優(yōu),但是占用空間大。 稀疏格式(代表qcow2):支持壓縮,快照,鏡像,更小的存儲(chǔ)空間(即用多少占多少)
1.4.4網(wǎng)絡(luò)管理
默認(rèn)情況KVM的網(wǎng)絡(luò)是NAT模式,但是在生產(chǎn)情況,用的多的都是網(wǎng)橋模式。
修改eth0(這里CentOS7的eth0在裝機(jī)時(shí)就指定了,那如果沒指定怎么辦?
[root@linux-node1~]# brctl addbr br0 #添加一個(gè)網(wǎng)卡
[root@linux-node1~]# brctl show #查看網(wǎng)卡信息
bridgename bridge id STP enabled interfaces
br0 8000.000000000000 no
virbr0 8000.5254009f0311 yes virbr0-nic
[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 #把eth0加入網(wǎng)橋,使用橋接模式,給br設(shè)置ip,添加路由網(wǎng)關(guān),關(guān)閉防火墻
[root@linux-node1~]# ifconfig br0 #查看網(wǎng)橋的IP
br0:flags=4163 mtu 1500
inet 192.168.56.111 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::20c:29ff:fe5d:cc27 prefixlen 64 scopeid 0x20
ether 00:0c:29:5d:cc:27 txqueuelen 0 (Ethernet)
RX packets 4813 bytes 472527 (461.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2705 bytes 510369 (498.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@linux-node1~]# virsh edit CentOS-7-x86_64 #編輯虛擬機(jī)的網(wǎng)絡(luò)配置使用br0網(wǎng)橋模式
#虛擬機(jī)網(wǎng)絡(luò)連接方式
#為虛擬機(jī)分配MAC地址,務(wù)必唯一,如果是dhcp獲得同樣IP會(huì)引起沖突
#當(dāng)前主機(jī)網(wǎng)橋名稱
重啟虛擬機(jī)
[root@linux-node1opt]# virsh shutdown CentOS-7-x86_64 #關(guān)閉KVM虛擬機(jī)
DomainCentOS-7-x86_64 is being shutdown
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動(dòng)KVM虛擬機(jī)
DomainCentOS-7-x86_64 started
#然后配置靜態(tài)IP地址,重啟網(wǎng)卡,即可以通過xshell連接上KVM虛擬機(jī)了。
[root@linux-node1~]# virt-install #建立kvm虛擬機(jī)
[root@linux-node1~]# virsh list #查看正在運(yùn)行的KVM虛擬機(jī)
[root@linux-node1~]# virsh list --all #查看所有KVM虛擬機(jī)
[root@linux-node1~]# virsh start name #啟動(dòng)KVM虛擬機(jī)
[root@linux-node1~]# virsh shutdown name #正常關(guān)閉KVM虛擬機(jī)
[root@linux-node1~]# virsh destroy name #強(qiáng)制關(guān)閉KVM虛擬機(jī)(類似于直接斷電)
[root@linux-node1~]# virsh suspend name #掛起KVM虛擬機(jī)
[root@linux-node1~]# virsh resume name #恢復(fù)掛起的KVM虛擬機(jī)
[root@linux-node1~]# virsh dumpxml name #查看KVM虛擬機(jī)配置文件
[root@linux-node1~]# virsh edit name #編輯KVM虛擬機(jī)的xml配置文件
[root@linux-node1~]# virsh undefine name #徹底刪除KVM虛擬機(jī),不可逆,如果想找回來,需要備份/etc/libvirt/qemu的xml文件)
1.6.1CPU優(yōu)化
inter的cpu的運(yùn)行級(jí)別,按權(quán)限級(jí)別高低Ring3->Ring1->Ring0(Ring2和Ring1暫時(shí)用不上)Ring3為用戶態(tài),Ring0為內(nèi)核態(tài)
Ring3的用戶態(tài)是沒有權(quán)限管理硬件的,需要切換到內(nèi)核態(tài)Ring0,這樣的切換(系統(tǒng)調(diào)用)稱為上下文切換,物理機(jī)到虛擬機(jī)多次的上下文切換,勢必會(huì)導(dǎo)致性能出現(xiàn)問題。對(duì)于全虛擬化,inter實(shí)現(xiàn)了技術(shù)VT-x,在CPU硬件上實(shí)現(xiàn)了加速轉(zhuǎn)換,CentOS7默認(rèn)是不需要開啟的。
1.6.2內(nèi)存優(yōu)化
宿主機(jī)虛擬內(nèi)存-> 宿主機(jī)物理內(nèi)存
虛擬機(jī)的虛擬內(nèi)存 -> 虛擬機(jī)的物理內(nèi)存
VMM通過采用影子列表解決內(nèi)存轉(zhuǎn)換的問題,影子頁表是一種比較成熟的純軟件的內(nèi)存虛擬化方式,但影子頁表固有的局限性,影響了VMM的性能,例如,客戶機(jī)中有多個(gè)CPU,多個(gè)虛擬CPU之間同步頁面數(shù)據(jù)將導(dǎo)致影子頁表更新次數(shù)幅度增加,測試頁表將帶來異常嚴(yán)重的性能損失。如下圖1-1為影子頁表的原理圖
在此之際,Inter在最新的Core I7系列處理器上集成了EPT技術(shù)(對(duì)應(yīng)AMD的為RVI技術(shù)),以硬件輔助的方式完成客戶物理內(nèi)存到機(jī)器物理內(nèi)存的轉(zhuǎn)換,完成內(nèi)存虛擬化,并以有效的方式彌補(bǔ)了影子頁表的缺陷,該技術(shù)默認(rèn)是開啟的,如下圖1-2為EPT技術(shù)的原理。
1.6.3磁盤IO優(yōu)化
1、Noop Scheduler:簡單的FIFO隊(duì)列,最簡單的調(diào)度算法,由于會(huì)產(chǎn)生讀IO的阻塞,一般使用在SSD硬盤,此時(shí)不需要調(diào)度,IO效果非常好
2、Anticipatory IO Scheduler(asscheduler)適合大數(shù)據(jù)順序順序存儲(chǔ)的文件服務(wù)器,如ftp server和web server,不適合數(shù)據(jù)庫環(huán)境,DB服務(wù)器不要使用這種算法。
3、Deadline Schedler:按照截止時(shí)間的調(diào)度算法,為了防止出現(xiàn)讀取被餓死的現(xiàn)象,按照截止時(shí)間進(jìn)行調(diào)整,默認(rèn)的是讀期限短于寫期限,就不會(huì)產(chǎn)生餓死的狀況,一般應(yīng)用在數(shù)據(jù)庫
4、Complete Fair Queueing Schedule:完全公平的排隊(duì)的IO調(diào)度算法,保證每個(gè)進(jìn)程相對(duì)特別公平的使用IO [root@linux-node1~]# dmesg|grep -i "scheduler" #查看本機(jī)Centos7默認(rèn)所支持的調(diào)度算法
[ 1.332147] io scheduler noop registered
[ 1.332151] io scheduler deadline registered(default)
[ 1.332190] io scheduler cfq registered
臨時(shí)更改某個(gè)磁盤的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
noopdeadline [cfq]
[root@linux-node1~]# vim /boot/grub/menu.lst #使更改的IO調(diào)度算法永久生效,需要更改內(nèi)核參數(shù)
kernel/boot/vmlinuz-3.10.0-229.el7 ro root=LABEL=/ elevator=deadline rhgb quiet
1.在開始創(chuàng)建過虛擬磁盤,并命名為CentOS-7.1-x86_64.raw,這個(gè)是虛擬機(jī)鏡像。
[root@linux-node1~]# ll /opt/
total5203344
-rw-r--r-- 1 qemu qemu 4310695936 12月 28 04:46CentOS-7.1.iso
-rw-r--r--.1 qemu qemu 10737418240 12月 28 08:55CentOS-7.1-x86_64.raw
2. 分區(qū)的時(shí)候,只分一個(gè)/分區(qū)(不需要swap分區(qū))。
3. 刪除網(wǎng)卡里面{UUID,MAC}
4. 如果有/etc/udev/rules.d/70-persistent-ipoib.rules 則刪除。
5. iptables關(guān)閉、selinux關(guān)閉
6.安裝基礎(chǔ)軟件包。(net-tools lrzsz screen tree vim wget)
轉(zhuǎn)載自
關(guān)于更多大數(shù)據(jù)相關(guān)資訊>>>
2016革新之年,雙節(jié)同慶驚喜不斷!優(yōu)惠詳情點(diǎn)擊查看>>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn