轉帖|行業資訊|編輯:龔雪|2016-01-04 10:15:43.000|閱讀 475 次
概述:本文主要靈感來自老男孩架構師班-趙班長實戰講解KVM,以及speedy Cloud云公司CEO董偉(董總)云計算與虛擬化講座,綜合整理而來。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動剛才創建的CentOS7KVM虛擬機
DomainCentOS-7-x86_64 started
[root@linux-node1opt]# virsh list #查看KVM虛擬機是否啟動
Id Name State
----------------------------------------------------
3 CentOS-7-x86_64 running
1.4.1CPU擴容
[root@linux-node1opt]# virsh edit CentOS-7-x86_64 #為了實現CPU的熱添加,就需要更改Cpu的最大值,當然熱添加值不能超過最大值
4 #當前為1,自動擴容最大為4
[root@linux-node1opt]# virsh shutdown CentOS-7-x86_64 #關閉KVM虛擬機
DomainCentOS-7-x86_64 is being shutdown
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動KVM虛擬機
DomainCentOS-7-x86_64 started
[root@linux-node1opt]# virsh setvcpus CentOS-7-x86_64 2 --live #熱修改為2個cpu(不知減少),高版本自動激活
[root@KVM]#grep processor /proc/cpuinfo |wc -l #通過vnc登錄KVM虛擬機查看是否擴容成功
2
在創建虛擬機時指定cpu
[root@linux-node1~]# virt-install --help|grep vcpus
--vcpus VCPUS 為虛擬機配置的 vcpus 數。例如:
--vcpus 5
--vcpus5,maxcpus=10,cpuset=1-4,6,8
--vcpussockets=2,cores=4,threads=2,
1.4.2內存擴容
內存的設置擁有一個氣球(balloon)機制,可以增大減少,但是也要設置一個最大值,默認并沒有最大值,也可以在安裝時指定。
[root@linux-node1opt]# virsh edit CentOS-7-x86_64 #為了實現CPU的熱添加,就需要更改Cpu的最大值,當然熱添加值不能超過最大值
4194304 #修改最大支持內存擴容為4G
1048576 #當前KVM虛擬機內存為1G
重啟虛擬機
[root@linux-node1opt]# virsh shutdown CentOS-7-x86_64 #關閉KVM虛擬機
DomainCentOS-7-x86_64 is being shutdown
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動KVM虛擬機
DomainCentOS-7-x86_64 started
[root@linux-node1~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon #查看當前KVM內存大小
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硬盤管理
更改虛擬機中存儲,硬盤設置(不建議生產環境使用硬盤的擴大收縮模式,很容易產生故障)
[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):設置多大就是多大,寫入速度快,方便的轉換為其他格式,性能最優,但是占用空間大。 稀疏格式(代表qcow2):支持壓縮,快照,鏡像,更小的存儲空間(即用多少占多少)
1.4.4網絡管理
默認情況KVM的網絡是NAT模式,但是在生產情況,用的多的都是網橋模式。
修改eth0(這里CentOS7的eth0在裝機時就指定了,那如果沒指定怎么辦?
[root@linux-node1~]# brctl addbr br0 #添加一個網卡
[root@linux-node1~]# brctl show #查看網卡信息
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加入網橋,使用橋接模式,給br設置ip,添加路由網關,關閉防火墻
[root@linux-node1~]# ifconfig br0 #查看網橋的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 #編輯虛擬機的網絡配置使用br0網橋模式
#虛擬機網絡連接方式
#為虛擬機分配MAC地址,務必唯一,如果是dhcp獲得同樣IP會引起沖突
#當前主機網橋名稱
重啟虛擬機
[root@linux-node1opt]# virsh shutdown CentOS-7-x86_64 #關閉KVM虛擬機
DomainCentOS-7-x86_64 is being shutdown
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #啟動KVM虛擬機
DomainCentOS-7-x86_64 started
#然后配置靜態IP地址,重啟網卡,即可以通過xshell連接上KVM虛擬機了。
[root@linux-node1~]# virt-install #建立kvm虛擬機
[root@linux-node1~]# virsh list #查看正在運行的KVM虛擬機
[root@linux-node1~]# virsh list --all #查看所有KVM虛擬機
[root@linux-node1~]# virsh start name #啟動KVM虛擬機
[root@linux-node1~]# virsh shutdown name #正常關閉KVM虛擬機
[root@linux-node1~]# virsh destroy name #強制關閉KVM虛擬機(類似于直接斷電)
[root@linux-node1~]# virsh suspend name #掛起KVM虛擬機
[root@linux-node1~]# virsh resume name #恢復掛起的KVM虛擬機
[root@linux-node1~]# virsh dumpxml name #查看KVM虛擬機配置文件
[root@linux-node1~]# virsh edit name #編輯KVM虛擬機的xml配置文件
[root@linux-node1~]# virsh undefine name #徹底刪除KVM虛擬機,不可逆,如果想找回來,需要備份/etc/libvirt/qemu的xml文件)
1.6.1CPU優化
inter的cpu的運行級別,按權限級別高低Ring3->Ring1->Ring0(Ring2和Ring1暫時用不上)Ring3為用戶態,Ring0為內核態
Ring3的用戶態是沒有權限管理硬件的,需要切換到內核態Ring0,這樣的切換(系統調用)稱為上下文切換,物理機到虛擬機多次的上下文切換,勢必會導致性能出現問題。對于全虛擬化,inter實現了技術VT-x,在CPU硬件上實現了加速轉換,CentOS7默認是不需要開啟的。
1.6.2內存優化
宿主機虛擬內存-> 宿主機物理內存
虛擬機的虛擬內存 -> 虛擬機的物理內存
VMM通過采用影子列表解決內存轉換的問題,影子頁表是一種比較成熟的純軟件的內存虛擬化方式,但影子頁表固有的局限性,影響了VMM的性能,例如,客戶機中有多個CPU,多個虛擬CPU之間同步頁面數據將導致影子頁表更新次數幅度增加,測試頁表將帶來異常嚴重的性能損失。如下圖1-1為影子頁表的原理圖
在此之際,Inter在最新的Core I7系列處理器上集成了EPT技術(對應AMD的為RVI技術),以硬件輔助的方式完成客戶物理內存到機器物理內存的轉換,完成內存虛擬化,并以有效的方式彌補了影子頁表的缺陷,該技術默認是開啟的,如下圖1-2為EPT技術的原理。
1.6.3磁盤IO優化
1、Noop Scheduler:簡單的FIFO隊列,最簡單的調度算法,由于會產生讀IO的阻塞,一般使用在SSD硬盤,此時不需要調度,IO效果非常好
2、Anticipatory IO Scheduler(asscheduler)適合大數據順序順序存儲的文件服務器,如ftp server和web server,不適合數據庫環境,DB服務器不要使用這種算法。
3、Deadline Schedler:按照截止時間的調度算法,為了防止出現讀取被餓死的現象,按照截止時間進行調整,默認的是讀期限短于寫期限,就不會產生餓死的狀況,一般應用在數據庫
4、Complete Fair Queueing Schedule:完全公平的排隊的IO調度算法,保證每個進程相對特別公平的使用IO [root@linux-node1~]# dmesg|grep -i "scheduler" #查看本機Centos7默認所支持的調度算法
[ 1.332147] io scheduler noop registered
[ 1.332151] io scheduler deadline registered(default)
[ 1.332190] io scheduler cfq registered
臨時更改某個磁盤的IO調度算法,將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調度算法永久生效,需要更改內核參數
kernel/boot/vmlinuz-3.10.0-229.el7 ro root=LABEL=/ elevator=deadline rhgb quiet
1.在開始創建過虛擬磁盤,并命名為CentOS-7.1-x86_64.raw,這個是虛擬機鏡像。
[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. 分區的時候,只分一個/分區(不需要swap分區)。
3. 刪除網卡里面{UUID,MAC}
4. 如果有/etc/udev/rules.d/70-persistent-ipoib.rules 則刪除。
5. iptables關閉、selinux關閉
6.安裝基礎軟件包。(net-tools lrzsz screen tree vim wget)
轉載自
2016革新之年,雙節同慶驚喜不斷!優惠詳情點擊查看>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn