




免費(fèi)預(yù)覽已結(jié)束,剩余7頁(yè)可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
虛擬機(jī)Xen網(wǎng)絡(luò)配置虛擬化是目前一門炙手可熱的技術(shù),它給我們帶來的好處在各個(gè)層次都有體現(xiàn),作為一個(gè)網(wǎng)絡(luò)管理者來說,搭建和維護(hù)服務(wù)器更是我們職責(zé)所在!目前的服務(wù)器配置可以說是相當(dāng)高了,單核cpu的時(shí)代也已經(jīng)漸漸離我們遠(yuǎn)去,在我們使用多核cpu以及大內(nèi)存服務(wù)器的的同時(shí),我們是否想過這些服務(wù)器的性能是否完全都使用上了?舉個(gè)例子來說,假設(shè)公司有一臺(tái)IBM System x3650,它配備Xeon 5450cpu(四核心),二級(jí)緩存高達(dá)12M,最大支持48gb內(nèi)存,在這樣一臺(tái)如此強(qiáng)勁的服務(wù)器上如果只跑一兩個(gè)應(yīng)用的話是否浪費(fèi)了很多的性能呢?當(dāng)然,你完全可以把企業(yè)中很多的應(yīng)用都跑在這一臺(tái)服務(wù)器上,這樣做雖然是可以的,但是大家都知道,在單個(gè)OS上跑的應(yīng)用越多,出問題的系數(shù)也就越高,往往會(huì)因?yàn)槠渲心骋粋€(gè)應(yīng)用的問題而導(dǎo)致整個(gè)OS崩潰,再或者某個(gè)應(yīng)用支持的系統(tǒng)平臺(tái)不同,我們需要多個(gè)OS來支持,如此以來是否又要購(gòu)買服務(wù)器來達(dá)到我們的需求?如果在虛擬化技術(shù)沒出現(xiàn)之前,我們只能購(gòu)買更多的服務(wù)器來支持更多的應(yīng)用,無論在維護(hù)還是資金上都是一筆不小的投入,不過此刻的我們非常幸運(yùn),在這個(gè)虛擬化技術(shù)流行的時(shí)代,那些曾經(jīng)不可能實(shí)現(xiàn)的問題已經(jīng)不再是問題了,在此我也非常感謝那些在虛擬化技術(shù)上投入心血的人們.我們現(xiàn)在完全可以實(shí)現(xiàn)在一臺(tái)物理機(jī)上同時(shí)跑多個(gè)OS!很多管理員都用過VMware Workstation或者vpc,我們把它們稱作虛擬機(jī)軟件,我們可以在其上安裝和物理機(jī)不同的OS,在我們需要測(cè)試某些程序或者搭建一些環(huán)境的時(shí)候經(jīng)常使用到他們,在虛擬機(jī)上跑的OS即便是崩潰了也不會(huì)影響我們物理機(jī)上的任何應(yīng)用,那我們是否把他們應(yīng)用在服務(wù)器虛擬化層面呢?在這里我不建議這么去做,因?yàn)橐陨咸岬降膬煽钐摂M機(jī)軟件只不過是在物理機(jī)OS上運(yùn)行的一個(gè)軟件而已,此軟件運(yùn)行后會(huì)模擬一臺(tái)真實(shí)計(jì)算機(jī)的環(huán)境,只不過是模擬罷了,模擬出來的東西要和物理機(jī)上的內(nèi)核打交道是要經(jīng)過很多道關(guān)卡的,在通過一層一層二進(jìn)制轉(zhuǎn)換后才能把I/O操作傳送到內(nèi)核中,從而我們會(huì)感覺到它們性能是不怎么強(qiáng)的,而服務(wù)器在性能上的要求是非常高.簡(jiǎn)單介紹一下,在目前的服務(wù)器虛擬化方面使用較多的有Xen,hyper-v,VMware esX server等,hyper-v集成在windows server 2k8 64位版中,必須購(gòu)買windows 2k8以后才可以使用.VMware esX server是一款相當(dāng)成熟的虛擬機(jī)管理器,也是需要購(gòu)買后才可使用,而Xen則是開源軟件,可以直接下載后在linux上編譯即可使用,并且最新的Xen3已經(jīng)支持硬件虛擬化,可以在不修改內(nèi)核源碼的情況下虛擬OS,當(dāng)然還有其他更多的可以在google上找到.關(guān)于Xen的原理可以在/ 學(xué)習(xí)到,在這里提一下什么是hypervisor,簡(jiǎn)單的說hypervisor其實(shí)就是由一些微代碼構(gòu)成,其最先被載入內(nèi)存,用來隔離每一個(gè)OS.在/ 有官方的ppt,可以更加詳細(xì)的了解Xen的原理. 經(jīng)常看到一些喜愛Linux的用戶和喜愛使用Windows的用戶針鋒相對(duì),甚至破口大罵的時(shí)候我非常不理解,我對(duì)Linux和windows都非常喜愛,在搭建服務(wù)器的時(shí)候總是喜歡把兩者結(jié)合起來使用,評(píng)價(jià)誰(shuí)好誰(shuí)壞毫無意義,應(yīng)該盡量結(jié)合兩者的優(yōu)勢(shì)來管理好服務(wù)器才是正道.平時(shí)用Linux的時(shí)候很多,我比較愛用centos和suse,這里就拿Centos5來說說Xen在網(wǎng)絡(luò)上的配置,讓我們把Xen更好的應(yīng)用于生產(chǎn)環(huán)境中. 首先在centos上安裝xen內(nèi)核,這個(gè)很簡(jiǎn)單,在centos中有rpm包,直接使用dvd掛載上去后安裝即可,具體安裝哪些包在這里就不多廢話了,網(wǎng)絡(luò)上有很多教程,在這個(gè)地方浪費(fèi)篇幅就跑題了,現(xiàn)在假設(shè)已經(jīng)安裝好了Xen內(nèi)核,并且在Xen內(nèi)核中已經(jīng)安裝成功一臺(tái)guestOS,(半虛擬化環(huán)境)那么在多網(wǎng)卡的環(huán)境下如何去配置?這里只是講解多網(wǎng)卡橋接環(huán)境. 先來分析幾個(gè)腳本,更加深刻的理解xen的網(wǎng)絡(luò)配置情況. 如果你是用rpm包安裝的話,那么可以看到如下的結(jié)構(gòu).引用roottarget xen# autoxend-config.sxp xmexample2qemu-ifupxend-pci permissive.sxpxmexample.hvmscriptsxend-pci-quirks.sxpxmexample.vtitest1xmexample1blktap vif-common.shblockvif-natblock-common.shvif-routeblock-enbd vtpmblock-nbdvtpm-common.shexternal-device-migratevtpm-deletelocking.sh vtpm-hotplug-common.shlogging.sh vtpm-implnetwork-bridge vtpm-migration.shnetwork-custom xen-hotplug-cleanupnetwork-natxen-hotplug-common.shnetwork-routexen-network-common.shvif-bridge xen-script-common.sh其中用顯示為紅色的幾個(gè)文件和xen的網(wǎng)絡(luò)配置關(guān)系密切.那么xend進(jìn)程啟動(dòng)以后是如何調(diào)用這幾個(gè)文件的?這幾個(gè)文件又做了些什么動(dòng)作?在官方說明中有這樣一段話:When xend starts up, it runs the network-bridge script, which: 1。creates a new bridge named xenbr0 (建立一個(gè)網(wǎng)橋名稱為xenbr0)2。real ethernet interface eth0 is brought down (關(guān)閉真實(shí)的以太網(wǎng)接口eth0)3。the IP and MAC addresses of eth0 are copied to virtual network interface veth0(將eth0的IP和MAC地址拷貝給虛擬以太網(wǎng)接口veth0)4。real interface eth0 is renamed peth0 (將真實(shí)的接口eth0重命名為peth0) 5。virtual interface veth0 is renamed eth0 (將虛擬以太網(wǎng)接口veth0重命名為eth0)6。peth0 and vif0.0 are attached to bridge xenbr0. Please notice that in xen 3.3, the default bridge name is the same than the interface it is attached to. Eg: bridge name eth0, eth1 or ethX.VlanID (將peth0和vif0.0連接到網(wǎng)橋xenbr0)7。the bridge, peth0, eth0 and vif0.0 are brought up (激活peth0 eth0 vif0.0)xenbr0是什么?我們知道,在xen環(huán)境里domU要和網(wǎng)絡(luò)中的計(jì)算機(jī)通信是要通過xen總線來調(diào)用后端驅(qū)動(dòng)來實(shí)現(xiàn)的.在xend腳本啟動(dòng)時(shí),我們用ifconfig命令會(huì)發(fā)現(xiàn)多了一個(gè)xenbr0,xenbr0是一個(gè)網(wǎng)橋,眾所周知,網(wǎng)橋是工作在鏈路層,在網(wǎng)橋中的設(shè)備都在一個(gè)廣播域中,使用以下命令可以查看xenbr0的信息。引用roottarget # brctl show | grep xenbr0 ; ip link show | grep xenbr0xenbr08000.feffffffffff nopeth0 vif0.0xenbr0: BROADCAST,NOARP,UP,LOWER_UP mtu 1500 qdisc noqueue可以看出在網(wǎng)橋已經(jīng)橋接了兩塊網(wǎng)卡,并且關(guān)閉了arp,在xend進(jìn)程未啟動(dòng)之前,我們是看不到vethX接口的,因?yàn)榇藭r(shí)netbk和netloop沒有被載入,當(dāng)進(jìn)程啟動(dòng)后會(huì)通過xend腳本載入,此時(shí)虛擬接口以及被創(chuàng)建,但是down掉的,然后通過上面幾個(gè)步驟后veth0會(huì)重命名為eth0,并且peth0,eth0以及vif0.0會(huì)被激活,此過程是通過network-bridge腳本實(shí)現(xiàn)的,為什么看不到veth0,因?yàn)榇藭r(shí)已經(jīng)被重命名為eth0.打開腳本會(huì)看到。先看看創(chuàng)建網(wǎng)橋的代碼,在network-bridge第198行定義了一個(gè)op_start函數(shù)引用198op_start () 199if $bridge = null ; then 200return 201fi 202 203if is_network_root ; then 204 -x /usr/bin/logger & /usr/bin/logger network-bridge: bridging not supported on networkroot; not starting 205return 206fi 207 208if ! link_exists $vdev; then 209if link_exists $pdev; then 210# The device is already up. 211return 212else 213echo 214Link $vdev is missing. 215This may be because you have reached the limit of the number of interfaces 216that the loopback driver supports.If the loopback driver is a module, you 217may raise this limit by passing it as a parameter (nloopbacks=); if the 218driver is compiled statically into the kernel, then you may set the parameter 219using loopback.nloopbacks= on the domain 0 kernel command line. 220 &2 221exit 1 222fi 223fi 224 225create_bridge $bridge這一段前面是一些判斷語(yǔ)句,比如bridge變量沒設(shè)置或者vdev不存在的時(shí)候?qū)⒔o出提示信息并且退出,而最后create_bridge $bridge則是調(diào)用了create_bridge函數(shù)來創(chuàng)建一個(gè)網(wǎng)橋,create_bridge函數(shù)在xen-network-common.sh中有如下定義:使用brctl命令創(chuàng)建網(wǎng)橋,關(guān)閉了生成樹協(xié)議,轉(zhuǎn)發(fā)延遲設(shè)置為0,并且關(guān)閉了arp和multicast引用109create_bridge () 110local bridge=$1 111 112# Dont create the bridge if it already exists. 113if ! -e /sys/class/net/$bridge/bridge ; then 114brctl addbr $bridge 115brctl stp $bridge off 116brctl setfd $bridge 0 117sysctl -w net.bridge.bridge-nf-call-arptables=0 118sysctl -w net.bridge.bridge-nf-call-ip6tables=0 119sysctl -w net.bridge.bridge-nf-call-iptables=0 120ip link set $bridge arp off 121ip link set $bridge multicast off 122fi 123 124# A small MTU disables IPv6 (and therefore IPv6 addrconf). 125mtu=$(ip link show $bridge | sed -n s/.* mtu (0-9+).*/1/p) 126ip link set $bridge mtu 68 127ip link set $bridge up 128ip link set $bridge mtu $mtu:-1500 129替換ip和mac,并且重命名網(wǎng)卡等后續(xù)工作引用if link_exists $vdev; thenmac=ip link show $netdev | grep link/ether | sed -e s/.*ether (.:.:.:.:.:.).*/1/preiftransfer $netdevtransfer_addrs $netdev $vdevif is_bonding $netdev | ! ifdown $netdev; then# Remember the IP details if necessary.get_ip_info $netdevip link set $netdev downip addr flush $netdevfiip link set $netdev name $pdevip link set $vdev name $netdevsetup_bridge_port $pdevsetup_bridge_port $vif0ip link set $netdev addr $mac arp onip link set $bridge upadd_to_bridge$bridge $vif0add_to_bridge2 $bridge $pdevdo_ifup $netdevelse# old style without $vdevtransfer_addrs$netdev $bridgetransfer_routes $netdev $bridgefiif $antispoof = yes ; thenantispoofingfi 明白了這些就好辦了,這些動(dòng)作都可以手工完成。 先看看默認(rèn)情況下,xend啟動(dòng)時(shí)網(wǎng)絡(luò)情況是怎樣的。默認(rèn)啟動(dòng)時(shí)會(huì)根據(jù)network-bridge中的幾個(gè)變量自動(dòng)添加網(wǎng)橋并把網(wǎng)卡加入網(wǎng)橋中。在這里我HostOS中有兩塊物理網(wǎng)卡,此時(shí)服務(wù)啟動(dòng)后會(huì)自動(dòng)建立xenbr0,并且把peth0 vif0.0加入。如果設(shè)置了默認(rèn)路由,那么網(wǎng)卡號(hào)就是默認(rèn)路由出口網(wǎng)卡號(hào),如果沒有設(shè)置默認(rèn)路由,并且沒有手動(dòng)給vifnum賦值的話,默認(rèn)為0,此時(shí)netdev為eth0,網(wǎng)橋名稱為xenbr0,并且不使用iptable防止欺騙。引用vifnum=$vifnum:-$(ip route list | awk /default / print $NF | sed s/0-9*/) (使用正規(guī)表達(dá)式找出默認(rèn)網(wǎng)關(guān)出口網(wǎng)卡)vifnum=$vifnum:-0)(如果vifnum變量沒設(shè)置,則設(shè)置為0)bridge=$bridge:-xenbr$vifnum(如果網(wǎng)橋名未設(shè)置則設(shè)置為xenbr$vifnum)netdev=$netdev:-eth$vifnum (虛擬以太網(wǎng)接口,如果沒設(shè)置則為eth$vifnum)antispoof=$antispoof:-no(默認(rèn)不啟用)下列幾項(xiàng)不要更改,看了前面的原理應(yīng)該不難理解!pdev=p$netdevvdev=veth$vifnumvif0=vif0.$vifnum假如默認(rèn)值不符合我們要求,我們可以手動(dòng)添加。假設(shè)想建立一個(gè)名為test的網(wǎng)橋,橋接pth1和vif0.1(模塊加載時(shí)自動(dòng)生成的,直接和veth1相連,vif0.2則連接veth2,官網(wǎng)有圖解)引用roottarget scripts# pwd ; brctl show/etc/xen/scriptsbridge name bridge id STP enabled interfacesroottarget scripts# ./network-bridge bridge=test vifnum=1 start /dev/null 2&1 ; brctl showbridge name bridge id STP enabled interfacestest8000.feffffffffff nopeth1vif0.1刪除引用./network-bridge bridge=test vifnum=1 start /dev/null 2&1 ; brctl showbridge name bridge id STP enabled interfaces設(shè)置domU配置文件,修改xen目錄下與domU同名文件。紅色標(biāo)記的地方即為配置網(wǎng)卡的地方,mac地址如果為空則會(huì)在啟動(dòng)時(shí)自動(dòng)分配,可以手動(dòng)指定,建議制定為Xen保留地址00:16:3e:xx:xx:xx,bridge是要橋接到的網(wǎng)橋,要和已經(jīng)存在的網(wǎng)橋名稱一致,在這里為test。引用name = testuuid = 14d7fb2c-3ef7-ce3e-7e73-bd6e4e082887maxmem = 256memory = 128vcpus = 1bootloader = /usr/bin/pygrubon_poweroff = destroyon_reboot = restarton_crash = restartvfb = disk = tap:aio:/vmdisk/centos.img,xvda,w vif = mac=00:16:3e:10:e4:53,bridge=test 使用xm create test命令啟動(dòng)后,會(huì)自動(dòng)調(diào)用vif-bridge腳本,此時(shí)使用brctl show可以看到vif3.0(前面的3是domU的id號(hào),0代表第一塊網(wǎng)卡)已經(jīng)橋接到test.此時(shí)在domU上設(shè)置好ip地址(或者從dhcp獲?。┖缶涂梢院椭鳈C(jī)eth1相同網(wǎng)段的主機(jī)通信了。此時(shí)vif3.0對(duì)應(yīng)在domU中的eth0,vif3.0的arp是關(guān)閉的,它不需要響應(yīng)arp,只是將數(shù)據(jù)包發(fā)送到domU中.引用roottarget xen# brctl showbridge name bridge id STP enabled interfacestest8000.feffffffffff novif3.0peth1vif0.1更簡(jiǎn)單的是按照官方推薦做法,直接使用略加修改缺省腳本,使xend啟動(dòng)時(shí)自動(dòng)執(zhí)行。#!/bin/shdir=$(dirname $0)$dir/network-bridge $ vifnum=0$dir/network-bridge $ vifnum=1 保持為一個(gè)可執(zhí)行文件,然后通過/etc/xen/xend-config.sxp調(diào)用即可,腳本非常簡(jiǎn)單,定義了不同的兩個(gè)變量,執(zhí)行了兩遍罷了。補(bǔ)充一點(diǎn),在centos5中,啟動(dòng)后有一個(gè)默認(rèn)網(wǎng)橋virbr0被創(chuàng)建,這個(gè)網(wǎng)橋是通過腳本/etc/init.d/libvirtd創(chuàng)建的,用于在沒有dhcp環(huán)境下為虛擬網(wǎng)絡(luò)分配ip地址,配置文件在/usr/share/libvirt/networks/default.xml中,下面做一個(gè)小實(shí)驗(yàn)。引用roottarget # ls /etc/init.d/libvirtd ; cat /usr/share/libvirt/networks/default.xml/etc/init.d/libvirtddefault (默認(rèn)網(wǎng)橋名稱)(網(wǎng)橋ip)(ip地址范圍)啟動(dòng)libvirtd服務(wù),從test中刪除vif3.0,把vif3.0添加到virbr0中,使用dhclient獲取地址。引用rootta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司網(wǎng)絡(luò)經(jīng)營(yíng)活動(dòng)方案
- 公司福利旅行活動(dòng)方案
- 公司每月團(tuán)聚活動(dòng)方案
- 公司節(jié)日互動(dòng)活動(dòng)方案
- 公司組織娛樂活動(dòng)方案
- 公司每日員工活動(dòng)方案
- 公司組織去爬山活動(dòng)方案
- 公司班組趣味活動(dòng)方案
- 公司聯(lián)誼賽策劃方案
- 公司殺豬飯活動(dòng)策劃方案
- 山西省太原市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版期末考試(下學(xué)期)試卷及答案
- 住院患者跌倒、墜床、壓力性損傷的風(fēng)險(xiǎn)評(píng)估及管理
- 2023風(fēng)光互補(bǔ)路燈設(shè)計(jì)方案
- 2023年山東省夏季普通高中學(xué)業(yè)水平合格考試會(huì)考生物試題及參考答案
- 2024年山東省青島市中考英語(yǔ)試卷附答案
- 材料力學(xué)(山東聯(lián)盟-中國(guó)石油大學(xué)(華東))智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)石油大學(xué)(華東)
- 江西省南昌二中心遠(yuǎn)教育集團(tuán)九灣學(xué)校2023-2024學(xué)年八年級(jí)下學(xué)期期末考試物理試題
- 深入理解Nginx(模塊開發(fā)與架構(gòu)解析)
- MOOC 中國(guó)文化概論-華南師范大學(xué) 中國(guó)大學(xué)慕課答案
- 初中人教版八年級(jí)下冊(cè)期末物理真題模擬試卷經(jīng)典套題
- JBT 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論