1)查看cpu插槽數(shù)量 [root@kvm ~]# cat /proc/cpuinfo |grep 'physical id' |wc -l24 2)查看cpu核心數(shù)量 [root@kvm ~]# cat /proc/cpuinfo |grep 'core id'| wc -l24 3)查看cpu的模型 [root@kvm ~]# cat /proc/cpuinfo |grep modelmodel : 62model name : Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHzmodel : 62model name : Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHzmodel : 62model name : Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHzmodel : 62 4)設(shè)置CPU的個(gè)數(shù) [root@kvm ~]# virsh shutdown vm1 #先關(guān)閉vm[root@kvm ~]# vi /etc/libvirt/qemu/vm1.xml #修改xml配置文件 5)設(shè)置CPU模型 ps:虛擬機(jī)的CPU model可以通過配置文件定義 custom模式 可以根據(jù)需求自定義CPU的model xml配置文件如下:
host-model模式 根據(jù)物理CPU的特性,選擇一個(gè)最靠近其特性的標(biāo)準(zhǔn)CPU型號。CPU默認(rèn)的模型就是host-model模式 xml配置文件如下:
host-passthrough模式 直接將物理CPU暴露給虛擬機(jī)使用,在虛擬機(jī)上完全可以看到的就是物理CPU的型號,一般用于嵌套虛擬化,讓虛擬機(jī)的CPU支持虛擬化技術(shù),這種模型有一個(gè)弊端,就是當(dāng)要進(jìn)行kvm遷移的時(shí)候,被遷移機(jī)器的物理特性要和遷移機(jī)器的一樣。 xml配置文件如下:
host-passthrough模式實(shí)驗(yàn) [root@kvm ~]# virsh shutdown vm1 #先關(guān)閉vm[root@kvm ~]# vi /etc/libvirt/qemu/vm1.xml #修改vm的xml配置文件 1)設(shè)置內(nèi)存大小 [root@vm1 ~]# free –h #查看當(dāng)前的內(nèi)存大小total used free shared buff/cache availableMem: 992M 96M 779M 6.6M 116M 767M[root@kvm ~]# virsh shutdown vm1 #關(guān)閉vm[root@kvm ~]# vi /etc/libvirt/qemu/vm1.xml #修改vm的xml文件 2)內(nèi)存限制 ps:只有當(dāng)內(nèi)存競爭發(fā)生時(shí),內(nèi)存限制才會生效。 命令行格式為: virsh memtune virtual_machine --parameter size [parameter]:
memtune生效方式有3種
應(yīng)用示例:
限制虛擬機(jī)競爭時(shí)為7g內(nèi)存 memtune virthost --soft-limit 7340032 --config 限制虛擬機(jī)最大內(nèi)存加可以使用的宿主機(jī)的swap不超過10g memtune virthost--swap-hard-limit 10488320 --config 保證虛擬機(jī)最少可以使用4g內(nèi)存 memtune virthost--min-guarantee 4194304 --config xml配置文件示例: 3)內(nèi)存氣球 KVM支持內(nèi)存氣球技術(shù),允許不關(guān)閉虛擬機(jī),實(shí)現(xiàn)動態(tài)調(diào)整內(nèi)存大小 [root@vm1 ~]# lsmod |grep virio_balloon #需要加載virio_balloon驅(qū)動virtio_balloon 13664 0virtio_ring 21524 5 virtio_blk,virtio_net,virtio_pci,virtio_balloon,virtio_consolevirtio 15008 5 virtio_blk,virtio_net,virtio_pci,virtio_balloon,virtio_console 查看內(nèi)存氣球空間 [root@kvm ~]# virsh qemu-monitor-command vm1 --hmp --cmd info balloonballoon: actual=1024 調(diào)整內(nèi)存氣球空間 [root@kvm ~]# virsh qemu-monitor-command vm1 --hmp --cmd balloon 800[root@kvm ~]# virsh qemu-monitor-command vm1 --hmp --cmd info balloonballoon: actual=800 4)內(nèi)存共享 KVM有著內(nèi)存共享的強(qiáng)大功能,內(nèi)存共享通過一項(xiàng)名為內(nèi)核同頁合并(Kernel Samp-page Merging,KSM)的功能來實(shí)現(xiàn)。KSM掃描每個(gè)虛擬機(jī)的內(nèi)存,如果虛擬機(jī)用于相同的內(nèi)存頁面,KSM將這些頁面合并到一個(gè)在虛擬機(jī)之間共享的頁面,僅存儲一個(gè)副本。可以提供內(nèi)存利用率。要在linux下實(shí)現(xiàn)內(nèi)存合并,只需要啟動KSM,ksmtuned服務(wù) [root@kvm ~]# systemctl status ksm● ksm.service - KernelSamepage Merging Loaded: loaded(/usr/lib/systemd/system/ksm.service; enabled; vendor preset: enabled) Active: active (exited) since Sat 2017-04-4 18:25:32 CST;1 day 2h ago [root@kvm ~]# systemctl status ksmtuned● ksmtuned.service -Kernel Samepage Merging (KSM) Tuning Daemon Loaded: loaded(/usr/lib/systemd/system/ksmtuned.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2017-04-4 18:25:32CST; 1 day 2h ago 創(chuàng)建6個(gè)內(nèi)存4G的虛擬機(jī) [root@kvm ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm1.qcow2 20G[root@kvm ~]# virt-install --cdrom=/opt/iso/CentOS-7.2-x86_64-DVD.iso --vcpu=2 --ram=4096 --network bridge=virbr0 --disk path=/var/lib/libvirt/images/vm1.qcow2 --graphics spice,listen=0.0.0.0 --name=vm1vm2-------vm5略[root@vm1 ~]# virsh list Id Name State---------------------------------------------------- 1 vm1 running2 vm2 running3 vm3 running4 vm4 running5 vm5 running6 vm6 running 我的物理機(jī)是16G的內(nèi)存,由于我啟用了內(nèi)存共享的功能,所有可以創(chuàng)建6個(gè)內(nèi)存為4G的虛擬機(jī)。 1)KVM的存儲模式:宿主機(jī)提供一個(gè)存儲池,從存儲池里面劃分存儲卷給虛擬機(jī)使用。 2)創(chuàng)建存儲池(基于LVM) [root@kvm ~]# pvcreate /dev/sdb #把/dev/sdb做成pv Physical volume '/dev/sdb'successfully created[root@kvm ~]# vgcreate kvm-storage /dev/sdb #創(chuàng)建vg Volume group 'kvm-storage'successfully created[root@kvm ~]# lvcreate -L 18G -n kvm-data /dev/kvm-storage #創(chuàng)建lv Logical volume 'kvm-data' created.[root@kvm ~]# lvs #查看創(chuàng)建的lv kvm-data kvm-storage -wi-a----- 18.00g[root@kvm ~]# vi kvm-data.xml #編輯存儲池xml文件 3)從存儲池劃分存儲卷給虛擬機(jī)使用 [root@kvm ~]# virsh shutdown vm1 #關(guān)閉vm1[root@kvm ~]# vim /etc/libvirt/qemu/vm1.xml #編輯vm1的xml文件 虛擬機(jī)上外網(wǎng)的方式有兩種:一種通過橋接方式,一種通過nat方式
下載軟件包 [root@kvm ~]# yum -y install bridge-utils 編輯網(wǎng)橋的配置文件 [root@kvm network-scripts]# cat ifcfg-brexDEVICE=brex #指定網(wǎng)橋?yàn)閎rexBOOTPROTO=static #IP獲取方式為靜態(tài)ONBOOT=yes #啟用該設(shè)備TYPE=bridge #指定類型為網(wǎng)橋IPADDR=172.16.1.111 #網(wǎng)橋的IP地址PREFIX=24 #網(wǎng)橋的掩碼GATEWAY=172.16.1.1 #網(wǎng)橋的網(wǎng)關(guān)DNS1=202.96.128.133 #網(wǎng)橋的首選DNSDNS2=202.96.128.166 #網(wǎng)橋的備用DNSSTP=yes #啟用STP功能 編輯要綁定到橋的物理網(wǎng)卡的配置文件 [root@kvm network-scripts]# cat ifcfg-enp10s0 DEVICE=enp10s0 IPADDR=172.16.1.111PREFIX=24GATEWAY=172.16.1.1DNS1=202.96.128.133DNS2=202.96.128.166ONBOOT=yesNM_CONTROLLD=yesBRIDGE=brex #指定綁定到橋brex 重啟網(wǎng)絡(luò) [root@kvm network-scripts]# systemctl restart network 查看網(wǎng)絡(luò)狀態(tài) [root@kvm~]# ip add show 4:enp10s0: 編輯虛擬機(jī)的XML文件 [root@kvm ~]# vi /etc/libvirt/qemu/vm1.xml 查看網(wǎng)橋的狀態(tài) [root@kvm~]# brctl show bridgename bridge id STP enabled interfacesbrex 8000.70e28405fa30 yes enp10s0 vnet0virbr0 8000.5254000f5751 yes virbr0-nic 在VM1上驗(yàn)證 [root@vm1 ~]# ip add show1: lo: ping外網(wǎng)測試 [root@vm1 ~]# ping www.baidu.com PINGwww.a.shifen.com (14.215.177.37) 56(84) bytes of data.64bytes from 14.215.177.37: icmp_seq=1 ttl=53 time=11.8 ms64bytes from 14.215.177.37: icmp_seq=2 ttl=53 time=11.4 ms
下載openvswitch軟件yum源 [root@kvm ~]# yum -y install centos-release-openstack-newton 安裝openvswitch [root@kvm ~]# yum -y install *openvswitch* 編輯nat橋的配置文件 [root@kvm network-scripts]#cat ifcfg-natex DEVICE=natex #指定設(shè)備為natexBOOTPROTO=static #IP獲取方式為靜態(tài)ONBOOT=yes #開機(jī)啟用該設(shè)備TYPE=OVSBridge #類型為OVS橋DEVICETYPE=ovs #設(shè)備類型為ovsIPADDR=192.168.133.80 #橋的IP地址NETMASK=255.255.255.0 #橋的掩碼GATEWAY=192.168.133.1 #橋的網(wǎng)關(guān) 編輯要綁定到橋的物理網(wǎng)卡的配置文件 [root@kvm network-scripts]# cat ifcfg-enp10s0DEVICE=enp10s0 ONBOOT=yesTYPE=OVSPortDEVICETYPE=ovs #設(shè)備類型為ovsOVS_BRIDGE=natex #指定要綁定到的網(wǎng)橋?yàn)閚atex 編輯VM的xml文件,橋接到物理網(wǎng)卡 [root@kvm ~]# vi /etc/libvirt/qemu/vm1.xml 查看宿主機(jī)網(wǎng)絡(luò)狀態(tài) [root@kvm ~]# ip add show4: enp10s0: 查看ovs橋 [root@kvm network-scripts]# ovs-vsctl show521d2c60-16ce-49b2-9e76-c28e0e6ea38b Bridge natex Port 'enp10s0' Interface 'enp10s0' Port 'vnet0' Interface 'vnet0' Port natex Interface natex type: internalovs_version:'2.5.0' 虛擬機(jī)上驗(yàn)證 [root@vm1 ~]# ip add show2:ens3: ping外網(wǎng)測試 [root@vm1 ~]# ping g.cn PINGg.cn (203.208.40.52) 56(84) bytes of data.64bytes from 203.208.40.52: icmp_seq=1 ttl=52 time=33.3 ms64 bytesfrom 203.208.40.52: icmp_seq=2 ttl=52 time=32.3 ms
如有紕漏,歡迎指正。
|
|