欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    KVM是業(yè)界主流VMM之一,他以開源而流行,在前兩年KVM非常火,現(xiàn)在也不會差到哪里去。一般公司都會用到。或者真的不差硬件服務器。 (文章比較長,建議收藏后,再查看

    環(huán)境準備

    圓規(guī)正轉(zhuǎn),下面說說KVM的安裝教程,沒有物理機可用(實在太窮),在自己的VMware Workation中搭建完成.

    1. 檢查vm 是否支持虛擬化。 先在虛擬機的設(shè)置里查看,把框里面的兩項打上勾保存。啟動虛擬機

    操作系統(tǒng):CentOS 7.1

    軟件包:系統(tǒng)自帶yum源

    如果是在硬件服務器的話

    備注:進入BIOS中選擇Intel VirtualTechnology這一項,默認disabled(關(guān)閉),選擇enabled(開啟)就可以了

    安裝

    1.檢查是否cpu是否支持虛擬化

    # grep -E 'svm|vmx' /proc/cpuinfo

    vmx 為Intel的CPU指令集svm 為AMD的CPU指令集

    2.安裝KVM

    yum安裝KVM及所需組件

    yum install -y qemu-kvm libvirt virt-install virt-manager bridge-utils

    激活并啟動libvirt服務 (如果沒操作后面運行virsh命令會報錯)

    systemctl stop libvirtd.service

    systemctl start libvirtd.service

    這里貼一下這個幾個組件關(guān)系圖(詳細關(guān)系下一節(jié)中講)

    3.虛擬硬盤

    創(chuàng)建ISO鏡像:

    # dd if=/dev/cdrom of=/opt/CentOS-7.1.iso

    (不用光盤的話,可直接上傳iso到centos上)

    創(chuàng)建虛擬機硬盤:

    # qemu-img create -f qcow2 /kvmdir/test.img 4G

    4.虛擬機安裝系統(tǒng)

    # virt-install -n centos --ram=512 --disk=/opt/kvm/centos7.img --location CentOS-7-x86_64-DVD-1511.iso --graphics none --check all=off --network=default --vcpus=1 --extra-args='console=tty0 console=ttyS0'

    -n 虛擬機名字

    --ram 虛擬內(nèi)存大小

    --disk 虛擬機安裝路徑

    --location 虛擬機安裝介質(zhì)

    --graphics none圖形化輸出到命令行 --

    --check all=off 可刪除

    --check path_in_use=off 或 --check all=off 選項覆蓋

    --vcpus=1 指定cpu個數(shù) --vcpus=1,maxcpu=5 最小一個 最大5個

    --extra-args='console=tty0 console=ttyS0' 這串表示可以通過console的方式連接已經(jīng)創(chuàng)建的虛擬機。

    5.網(wǎng)絡(luò)設(shè)置

    配置橋接網(wǎng)絡(luò)

    默認情況下所有虛擬機只能夠在host內(nèi)部互相通信,如果需要通過局域網(wǎng)訪問虛擬機,需要創(chuàng)建一個橋接網(wǎng)絡(luò)。

    1.停止NetworkManager服務

    # systemctl stop NetworkManager

    該服務開啟的情況下直接去修改網(wǎng)卡的配置文件會造成信息的不匹配而導致網(wǎng)卡激活不了。

    2.修改以太網(wǎng)卡配置文件

    # cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0

    # vim /etc/sysconfig/network-scripts/ifcfg-eth0

    主要修改以下幾項就可以了

    DEVICE=eth0

    BRIDGE=br0

    ONBOOT=yes

    TYPE=Ethernet

    原有的以太網(wǎng)絡(luò)不需要配置IP地址,指定橋接的網(wǎng)卡設(shè)備(如br0)即可。

    3.修改橋接網(wǎng)卡配置文件

    # vim /etc/sysconfig/network-scripts/ifcfg-br0

    TYPE=Bridge

    DEVICE=br0

    ONBOOT=yes

    NM_CONTROLLED=no

    BOOTPROTO=static

    IPADDR=192.168.168.237.131

    GATEWAY=192.168.237.1

    NETMASK=255.255.255.0

    橋接網(wǎng)卡的需要配置IP地址,當然也可以用DHCP。需要注意的是橋接網(wǎng)卡br0中DEVICE的名字一定要與以太網(wǎng)卡eth0中BRIDGE對應。

    網(wǎng)卡配置及這些啥啥啥nat模式不清楚可以參考小編以前寫的

    1. centos 配置網(wǎng)絡(luò)方法

    2. 什么是NAT模式,vmware網(wǎng)絡(luò)設(shè)置詳解

    注意:NM_CONTROLLED參數(shù)表示該網(wǎng)卡是否被NetworkManager服務管理,設(shè)置為no的話就是不接管,那么之前不用停止NetworkManager服務。

    6.連接虛擬機

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

    # virsh -c qemu:///system list ###此命令要在重啟服務器后使用,否則會報錯

    error: failed to connect to the hypervisor

    error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

    # reboot

    console 連接kvm虛擬機

    # virshconsole centos

    OK Kvm初步安裝完成。后面還有很多功能,建快照,復制虛擬機等。

    安裝成功驗證方法:

    1)安裝過程無報錯、輸入#virsh list --all可以查看到已安裝的系統(tǒng)信息。

    2)virsh start Centos

    3)virsh console Centos

    4)成功進入虛擬系統(tǒng)

    覺得本教程有幫助,請小小的點個贊 ,謝謝

    文/小白

    前言

    任何平臺根據(jù)場景的不同,都有相應的優(yōu)化。不一樣的硬件環(huán)境、網(wǎng)絡(luò)環(huán)境,同樣的一個平臺,它跑出的效果也肯定不一樣。就好比一輛法拉利,在高速公路里跑跟鄉(xiāng)村街道跑,速度和激情肯定不同...

    所以,我們做運維工作,也是如此。首先你得充分了解你所用的軟件平臺,然后根據(jù)你現(xiàn)有的生產(chǎn)環(huán)境去充分的測試,最后得出結(jié)果,做最優(yōu)的調(diào)整。

    KVM也是一樣,首先要做的是充分的了解它,看看有哪些參數(shù)和設(shè)置我們可以做出調(diào)整,最終應用以求發(fā)揮最高的性能。

    那么KVM的性能調(diào)優(yōu),我們可以從四個方面入手 —— CPU、內(nèi)存、磁盤IO、網(wǎng)絡(luò)。

    KVM CPU性能調(diào)優(yōu)

    CPU這塊我們是針對NUMA這塊的調(diào)優(yōu),那么什么是NUMA呢?NUMA是英文 Non Uniform Memory Access Architecture 的縮寫,意思就是非統(tǒng)一內(nèi)存訪問,它是一種解決多CPU共同工作的解決方案。我們知道現(xiàn)在的服務器配置都比較高了,CPU很多都是多路多核的,而且CPU是需要跟存儲器進行數(shù)據(jù)交互的,以往的年代,那時候的CPU運算速率不高,而且都是單CPU模式,那么存儲器里的數(shù)據(jù)要放到CPU里進行運算這是完完全全跟得上的。但是現(xiàn)在的CPU運算速度大大增強了,而且都是多CPU模式,于是就出現(xiàn)了不平衡,那就是存儲器里的數(shù)據(jù)完全不夠讓CPU消化,并且還會出現(xiàn)多個CPU搶食存儲器的情況... 這種情況下CPU就表現(xiàn)得非常的饑渴... 數(shù)據(jù)不夠享用,而且存儲器還不夠分配。

    因此計算機科學家為了提升計算機的性能,就認真的研究了下CPU和存儲器之間的協(xié)調(diào)交互模式。總體核心思想就是尋找一個多CPU模式下,如何讓CPU能最大化的“享用”更多來自多個存儲器的數(shù)據(jù)。

    于是就設(shè)計出了以下幾套解決方案:

    1.1 SMP技術(shù)

    最開始是SMP技術(shù),SMP(Symmetric Multi-Processing )技術(shù)就是對稱多處理結(jié)構(gòu),這種結(jié)構(gòu)的最大特點就是CPU共享所有資源,比如總線,內(nèi)存,IO系統(tǒng)等等。

    既然是共享所有的資源,所以,各個CPU之間是平等的關(guān)系,然后操作系統(tǒng)管理著這些CPU對資源的訪問(通常是用隊列的形式去管理)。每個CPU依次的去處理隊列中的進程,如果兩個CPU同時訪問,那么一般是通過軟件鎖的機制去解決爭奪的問題,軟件鎖這概念跟開發(fā)里的線程安全鎖機制道理是一樣的,當一個CPU處理著一進程,一般會先鎖住,處理完再釋放。

    所以說到這里,這里的對稱指的就是CPU之間是平等的無主從,訪問資源也是平等的。我們可以看下面這張圖:

    這個結(jié)構(gòu)是最早出現(xiàn)的方案,但是就是因為最早出現(xiàn),所以它的弊端很快就顯現(xiàn)出來了,那就是它的擴展能力不強。我們看上面這張圖就明顯感覺到,如果服務器要提升性能增加CPU,那么內(nèi)存(內(nèi)存最大化的情況下)就明顯不夠了,因為是共享模式,多一個CPU就多一個吃內(nèi)存數(shù)據(jù)的人... 因此多增加的CPU沒法享受到內(nèi)存的數(shù)據(jù),就會停歇,這樣就造成了CPU的浪費。

    有實驗數(shù)據(jù)表明,SMP型的服務器CPU最好是2-4顆就OK了,多余的就浪費了。

    由此可見,這種方式是有缺陷的。。。因此科學家又想到了另外一個結(jié)構(gòu)方案,那就是NUMA。

    1.2 NUMA技術(shù)

    NUMA剛才我們在前面說了是非統(tǒng)一內(nèi)存訪問的意思,它的出現(xiàn)就很好的解決了SMP的擴展問題。有了NUMA技術(shù)那么就可以把幾十個甚至上百個CPU組合在一個服務器內(nèi)。

    NUMA架構(gòu)設(shè)計圖:

    從圖中我們發(fā)現(xiàn),每個CPU模塊之間都是通過互聯(lián)模塊進行連接和信息交互,CPU都是互通互聯(lián)的,同時,每個CPU模塊平均劃分為若干個Chip(不多于4個),每個Chip都有自己的內(nèi)存控制器及內(nèi)存插槽。

    在NUMA中還有三個節(jié)點的概念:

    1. 本地節(jié)點: 對于某個節(jié)點中的所有CPU,此節(jié)點稱為本地節(jié)點。

    2. 鄰居節(jié)點:與本地節(jié)點相鄰的節(jié)點稱為鄰居節(jié)點。

    3. 遠端節(jié)點:非本地節(jié)點或鄰居節(jié)點的節(jié)點,稱為遠端節(jié)點。

    鄰居節(jié)點和遠端節(jié)點,都稱作非本地節(jié)點(Off Node)。

    這里要注意的是,CPU訪問不同類型節(jié)點內(nèi)存的速度是不相同的,訪問本地節(jié)點的速度最快,訪問遠端節(jié)點的速度最慢,即訪問速度與節(jié)點的距離有關(guān),距離越遠訪問速度越慢,此距離稱作Node Distance。正是因為有這個特點,所以我們的應用程序要盡量的減少不通CPU模塊之間的交互,也就是說,如果你的應用程序能有方法固定在一個CPU模塊里,那么你的應用的性能將會有很大的提升。

    訪問速度:本地節(jié)點>鄰居節(jié)點>遠端節(jié)點

    因此KVM也是一樣,我們在CPU優(yōu)化這塊就是要讓KVM綁定在指定的CPU上,這樣減少跨CPU的交互使用,讓KVM的性能提升。現(xiàn)在我們的服務器還有l(wèi)inux操作系統(tǒng)都是默認走NUMA模式,所以我們接下來說說如何去做CPU的綁定。

    那么具體如何操作?

    1.3 numactl 命令講解

    我們這里用一臺真實的物理機演示,這臺物理機的是IBM 3650M4。

    首先我們用numactl命令查看NUMA的情況,如果你系統(tǒng)沒有這個命令,用 yum install numactl 安裝下即可。

    # numactl --h numactl 幫助命令,主要參數(shù)如下: --interleave=nodes, -i nodes 這個選項用于設(shè)定內(nèi)存的交織分配模式。 也就是說系統(tǒng)在為多個節(jié)點分配內(nèi)存空間的時候,將會以輪詢分發(fā)的方式被分配給這多個節(jié)點。如果在當前眾多的交織分配內(nèi)存節(jié)點中的目標節(jié)點無法正確的分配內(nèi)存空間的話,內(nèi)存空間將會由其他的節(jié)點來分配。多節(jié)點可以通過 --interleave , --membind 和 --cpunodebind 命令來指定。 --membind=nodes, -m nodes 選項 '--membind' 僅用來從節(jié)點中分配內(nèi)存空間所用。 如果在這些節(jié)點中無法分配出所請求的空間大小的話該分配操作將會失敗. 上述命令中指定需要分配空間的 nodes 的方式可以遵照上述 N,N,N , N-N ,N 這種方式來指定. --cpunodebind=nodes, -N nodes 這命令僅用于施加在運行與 cpu 上的進程。這個命令用于顯示 cpu 的個數(shù),cpu 數(shù)目信息同樣記錄在系統(tǒng)中的存放處理器領(lǐng)域信息的 /proc/cpuinfo 文件夾下,或者是按照關(guān)聯(lián)的中央處理器信息 在當前的中央處理器集中所存放。 --localalloc, -l 這個命令選項通常是為當前的節(jié)點分配內(nèi)存的。 --preferred=node 該命令由于指定優(yōu)先分配內(nèi)存空間的節(jié)點,如果無法將空間分配給該節(jié)點的話,應該分配給該節(jié)點上的空間將會被分發(fā)到其他的節(jié)點上 。 該命令選項后面僅接收一個單獨的節(jié)點標號. 相關(guān)的表示方式也可以使用。 --show, -s 該命令用于顯示 NUMA 機制作用在當前運行的那些進程上。

    OK,以上是numactl的詳細命令,那么接下來我們先看看當前服務器CPU的numa情況:

    我們執(zhí)行l(wèi)scpu命令可以查看到一些CPU信息:

    我們用numactl --hardware可以查看,如這里我準備了兩臺IBM的服務器,一個3650M4另外一個是3850M2。

    我們可以從命令返回的情況看出,這臺服務器numa有2個node(node0和node1):

    我們再看另外一個服務器,這是一臺IBM 3850M2,那么它就只有一個node:

    通過這個numactl --hardware命令,我們可以看出上面那臺機器每個node有81894 MB的內(nèi)存可以使用(大概79G),而IBM 3850M2這個服務器node有131070MB(120多G)內(nèi)存可用(基本上是整個服務器的內(nèi)存)

    那么接下來我們可以看下cpu numa的調(diào)度分配情況:

    我們運行numastat命令可以查到:

    3650M4

    3850M2

    參數(shù)解釋:

    • numa_hit 使用本節(jié)點內(nèi)存次數(shù)

    • num_miss 計劃使用本節(jié)點內(nèi)存而被調(diào)度到其他節(jié)點次數(shù)

    • num_foregin 計劃使用其他節(jié)點內(nèi)存而使用本地內(nèi)存次數(shù)

    • interleave_hit 交叉分配使用的內(nèi)存中使用本節(jié)點的內(nèi)存次數(shù)

    • local_node 在本節(jié)點運行的程序使用本節(jié)點內(nèi)存次數(shù)

    • NB other_node 在其他節(jié)點運行的程序使用本節(jié)點內(nèi)存次數(shù)

    接著我們看下這個命令:numastat -c , 這個命令c 后面跟上進程名就能看到相關(guān)進程的NUMA內(nèi)存使用情況。比如:numastat -c qemu-kvm,這樣我們就知道了qemu-kvm這個進程,它在node0 和node1上使用的內(nèi)存大小,單位是MB:

    OK 通過這幾個命令我們可以查看一些numa的基本狀態(tài)和使用情況。那么針對CPU Numa技術(shù),linux操作系統(tǒng)本身呢也有自身對這塊的設(shè)計。拿linux來說,它默認使用的就是NUMA自動平衡策略,也就是說,系統(tǒng)會自動的調(diào)配numa的內(nèi)存使用,以求一個平衡。

    當然,這個設(shè)置是可以用戶自己控制的,如果我們想關(guān)閉,直接運行

    # echo 0 > /proc/sys/kernel/numa_balancing 即可

    # echo 1 > /proc/sys/kernel/numa_balancing 就是開啟

    1.4 CPU綁定操作

    說到這,既然我們的操作系統(tǒng)還有CPU特性都采用了NUMA架構(gòu),那么我們完全可以通過調(diào)整KVM對應的NUMA關(guān)系來達到KVM CPU這方面的優(yōu)化。這里,我們一般是通過CPU綁定的方法來做相關(guān)操作的。

    那么具體的操作是怎么樣的呢?那么接下來我們通過一個例子來演示。這里是一臺物理機,之前我們看過了,現(xiàn)在上面裝好了KVM,然后運行著幾個虛擬機,我們用 virsh list 命令可以查看到當前運行的虛擬機列表。

    比如我們要看這個Win7-ent虛擬機里vCPU對應物理CPU的情況,那么可以運行:

    # virsh vcpuinfo Win7-ent 可以查看

    這個虛擬機是2個vCPU 雙核的,然后都是跑在了物理機的CPU8上,使用的時間是2964.6s。最后一個是CPU的親和性,這個yyyyy 表示的是使用的物理CPU內(nèi)部的邏輯核,一個y就代表其中一個CPU邏輯核。全部是y ,那么說明這臺物理機的24個CPU核,這個CPU都能調(diào)度使用。

    當然,我們可以進入vrish ,然后運行emulatorpin Win7-ent, 通過這個命令我們可以更詳細的得到這個虛擬機可以用哪幾個核:

    我們可以看到目前這個虛擬機0-23的CPU它都能調(diào)度使用

    那么以上就是查看虛擬機CPU NUMA調(diào)度的信息,如果我們要把虛擬機綁定到固定的CPU上,我們就要做以下操作: # virsh emulatorpin Win7-ent 18-23 --live 通過這個命令,我們把這個win7的虛擬機vCPU綁定在了18-23這6個CPU之間的核上。

    我們用命令查看下 emulatorpin Win7-ent

    我們也可以用virsh dumpxml Win7-ent 查看確認:

    這是讓虛擬機里的vCPU一起綁定的方法。

    那么有的人會疑問,一個虛擬機我有兩個vCPU, 比如這個win7 ,它就是雙核的,我想讓里面的vCPU1和vCPU2分別綁定在不同的物理CPU上可以嗎?怎么操作呢?這也是可以的,我們通過下面的方法可以進行相關(guān)的vCPU分別綁定

    # virsh vcpupin Win7-ent 0 22

    # virsh vcpupin Win7-ent 1 23

    # virsh dumpxml Win7-ent

    # virsh vcpuinfo Win7-ent

    OK,這里要注意的是,你把虛擬機用reboot重啟,這個綁定配置還是生效的,但是你shutdown的話,CPU綁定的效果會失效。我們要讓VM關(guān)機然后起來也生效,就必須把參數(shù)寫入到虛擬機的XML里,然后保存,這樣關(guān)機了也不會失效,這里要注意下

     # virsh edit vm1

    OK,以上就是CPU綁定技術(shù)的操作。通過這樣的操作,我們可以在一臺多CPU的物理機上固定幾個CPU給虛擬機用。當然,至于為什么可以這樣做,前面我們提到了關(guān)于NUMA的原理,如果固定了虛擬機的CPU,那么它就不會去找遠端節(jié)點了,另外就是有些場景下,一物理機多個CPU,如果前面幾個CPU負載很高,利用率大,后面幾個CPU利用率低,那么我們可以協(xié)調(diào)下,做CPU的綁定,平衡下CPU的負載。

    以上是CPU的綁定,接下來我們講講CPU的熱添加。

    1.5 CPU 熱添加

    首先我們先了解下什么叫熱添加,熱添加就是在虛擬機運行不關(guān)機的情況下,做CPU的添加操作。那么要注意的是,這個熱添加是在Redhat7.0以后才出現(xiàn)的,之前是沒有的。所以要享用這功能那必須要求KVM宿主機和虛擬機都得在7.0版本以后。那么具體怎么操作我們通過一個演示給大家操作下。

    比如目前這個虛擬機,這是一個CentOS7.1的。我們先看下目前虛擬機的CPU的數(shù)值,我們可以進系統(tǒng)查看,cat /proc/cpuinfo| grep "processor"| uniq| wc -l ,我們看到當前是2個CPU:

    然后我們解釋下這個最大CPU分配數(shù)是怎么個意思,它的意思就是給這個虛擬機最大預留的CPU個數(shù),這個設(shè)置很重要,如果你想給虛擬機熱添加,那么這個設(shè)置必須寫。比如我們這里寫的4,那么我們可以給虛擬機最大熱添加到4個CPU,而且4是上限。

    那么接下來說下,具體怎么熱添加。我們先在宿主機里先給這個虛擬機添加第三個CPU,原來是2個,現(xiàn)在再添加一個變成3個: setvcpus VM3_CentOS7.1 3 --live

    然后我們到虛擬機里面把這個CPU激活 :

    echo 1 >/sys/devices/system/cpu/cpu2/online

    我們再運行查看,發(fā)現(xiàn)已經(jīng)變成3個了。

    如果要減少,那么只能在虛擬機里減少剛才的CPU

    # echo 0 >/sys/devices/system/cpu/cpu2/online

    但是在宿主機層面看這個虛擬機的vCPU數(shù)還是3個,也就是說不支持熱減少,我們運行vcpuinfo VM3_CentOS7.1命令發(fā)現(xiàn)還是3個:

    同理,Windows的添加也是如此,直接在宿主機里添加第三個CPU即可

    # setvcpus VM4_Win2008 3 --live

    然后虛擬機里不用操作,它會自動刷新成3個CPU,我們也可以一個windows虛擬機做相關(guān)的演示,具體的可以由讀者自己操作了。

    到這為止, 以上就是KVM CPU方面的優(yōu)化。總結(jié)起來就兩點,一個是CPU綁定,還有一個就是熱添加。

    CPU綁定首先得了解NUMA技術(shù),然后站在整個宿主機CPU資源的層面去調(diào)節(jié)。

    熱添加,當你某個虛擬機正在運行,然后突然業(yè)務壓力增大了,可以通過這方法達到0停機提升虛擬機CPU性能。

    參考鏈接:

    http://www.cnblogs.com/yubo/archive/2010/04/23/1718810.html

    http://cenalulu.github.io/linux/numa/

    作者介紹:

    寶哥,云技術(shù)社區(qū)專家,資深I(lǐng)T運維工程師,多年IT運維經(jīng)驗,擅長Linux,VMware&Openstack虛擬化,ELK大數(shù)據(jù)日志分析等運維技術(shù),扎實的一線運維經(jīng)驗,目前在某大型云計算公司擔任openstack高級運維工程師。


    云技術(shù)社區(qū)介紹:

    云技術(shù)社區(qū)成立于2014年,國內(nèi)最大的云技術(shù)交流平臺,分享在云計算/虛擬化項目實施中的資訊、經(jīng)驗和技術(shù),堅持干貨。

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有