




免費預(yù)覽已結(jié)束,剩余7頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
虛擬機(jī)Xen網(wǎng)絡(luò)配置虛擬化是目前一門炙手可熱的技術(shù),它給我們帶來的好處在各個層次都有體現(xiàn),作為一個網(wǎng)絡(luò)管理者來說,搭建和維護(hù)服務(wù)器更是我們職責(zé)所在!目前的服務(wù)器配置可以說是相當(dāng)高了,單核cpu的時代也已經(jīng)漸漸離我們遠(yuǎn)去,在我們使用多核cpu以及大內(nèi)存服務(wù)器的的同時,我們是否想過這些服務(wù)器的性能是否完全都使用上了?舉個例子來說,假設(shè)公司有一臺IBM System x3650,它配備Xeon 5450cpu(四核心),二級緩存高達(dá)12M,最大支持48gb內(nèi)存,在這樣一臺如此強(qiáng)勁的服務(wù)器上如果只跑一兩個應(yīng)用的話是否浪費了很多的性能呢?當(dāng)然,你完全可以把企業(yè)中很多的應(yīng)用都跑在這一臺服務(wù)器上,這樣做雖然是可以的,但是大家都知道,在單個OS上跑的應(yīng)用越多,出問題的系數(shù)也就越高,往往會因為其中某一個應(yīng)用的問題而導(dǎo)致整個OS崩潰,再或者某個應(yīng)用支持的系統(tǒng)平臺不同,我們需要多個OS來支持,如此以來是否又要購買服務(wù)器來達(dá)到我們的需求?如果在虛擬化技術(shù)沒出現(xiàn)之前,我們只能購買更多的服務(wù)器來支持更多的應(yīng)用,無論在維護(hù)還是資金上都是一筆不小的投入,不過此刻的我們非常幸運,在這個虛擬化技術(shù)流行的時代,那些曾經(jīng)不可能實現(xiàn)的問題已經(jīng)不再是問題了,在此我也非常感謝那些在虛擬化技術(shù)上投入心血的人們.我們現(xiàn)在完全可以實現(xiàn)在一臺物理機(jī)上同時跑多個OS!很多管理員都用過VMware Workstation或者vpc,我們把它們稱作虛擬機(jī)軟件,我們可以在其上安裝和物理機(jī)不同的OS,在我們需要測試某些程序或者搭建一些環(huán)境的時候經(jīng)常使用到他們,在虛擬機(jī)上跑的OS即便是崩潰了也不會影響我們物理機(jī)上的任何應(yīng)用,那我們是否把他們應(yīng)用在服務(wù)器虛擬化層面呢?在這里我不建議這么去做,因為以上提到的兩款虛擬機(jī)軟件只不過是在物理機(jī)OS上運行的一個軟件而已,此軟件運行后會模擬一臺真實計算機(jī)的環(huán)境,只不過是模擬罷了,模擬出來的東西要和物理機(jī)上的內(nèi)核打交道是要經(jīng)過很多道關(guān)卡的,在通過一層一層二進(jìn)制轉(zhuǎn)換后才能把I/O操作傳送到內(nèi)核中,從而我們會感覺到它們性能是不怎么強(qiáng)的,而服務(wù)器在性能上的要求是非常高.簡單介紹一下,在目前的服務(wù)器虛擬化方面使用較多的有Xen,hyper-v,VMware esX server等,hyper-v集成在windows server 2k8 64位版中,必須購買windows 2k8以后才可以使用.VMware esX server是一款相當(dāng)成熟的虛擬機(jī)管理器,也是需要購買后才可使用,而Xen則是開源軟件,可以直接下載后在linux上編譯即可使用,并且最新的Xen3已經(jīng)支持硬件虛擬化,可以在不修改內(nèi)核源碼的情況下虛擬OS,當(dāng)然還有其他更多的可以在google上找到.關(guān)于Xen的原理可以在/ 學(xué)習(xí)到,在這里提一下什么是hypervisor,簡單的說hypervisor其實就是由一些微代碼構(gòu)成,其最先被載入內(nèi)存,用來隔離每一個OS.在/ 有官方的ppt,可以更加詳細(xì)的了解Xen的原理. 經(jīng)??吹揭恍┫矏跮inux的用戶和喜愛使用Windows的用戶針鋒相對,甚至破口大罵的時候我非常不理解,我對Linux和windows都非常喜愛,在搭建服務(wù)器的時候總是喜歡把兩者結(jié)合起來使用,評價誰好誰壞毫無意義,應(yīng)該盡量結(jié)合兩者的優(yōu)勢來管理好服務(wù)器才是正道.平時用Linux的時候很多,我比較愛用centos和suse,這里就拿Centos5來說說Xen在網(wǎng)絡(luò)上的配置,讓我們把Xen更好的應(yīng)用于生產(chǎn)環(huán)境中. 首先在centos上安裝xen內(nèi)核,這個很簡單,在centos中有rpm包,直接使用dvd掛載上去后安裝即可,具體安裝哪些包在這里就不多廢話了,網(wǎng)絡(luò)上有很多教程,在這個地方浪費篇幅就跑題了,現(xiàn)在假設(shè)已經(jīng)安裝好了Xen內(nèi)核,并且在Xen內(nèi)核中已經(jīng)安裝成功一臺guestOS,(半虛擬化環(huán)境)那么在多網(wǎng)卡的環(huán)境下如何去配置?這里只是講解多網(wǎng)卡橋接環(huán)境. 先來分析幾個腳本,更加深刻的理解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其中用顯示為紅色的幾個文件和xen的網(wǎng)絡(luò)配置關(guān)系密切.那么xend進(jìn)程啟動以后是如何調(diào)用這幾個文件的?這幾個文件又做了些什么動作?在官方說明中有這樣一段話:When xend starts up, it runs the network-bridge script, which: 1。creates a new bridge named xenbr0 (建立一個網(wǎng)橋名稱為xenbr0)2。real ethernet interface eth0 is brought down (關(guān)閉真實的以太網(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 (將真實的接口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ī)通信是要通過xen總線來調(diào)用后端驅(qū)動來實現(xiàn)的.在xend腳本啟動時,我們用ifconfig命令會發(fā)現(xiàn)多了一個xenbr0,xenbr0是一個網(wǎng)橋,眾所周知,網(wǎng)橋是工作在鏈路層,在網(wǎng)橋中的設(shè)備都在一個廣播域中,使用以下命令可以查看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)程未啟動之前,我們是看不到vethX接口的,因為此時netbk和netloop沒有被載入,當(dāng)進(jìn)程啟動后會通過xend腳本載入,此時虛擬接口以及被創(chuàng)建,但是down掉的,然后通過上面幾個步驟后veth0會重命名為eth0,并且peth0,eth0以及vif0.0會被激活,此過程是通過network-bridge腳本實現(xiàn)的,為什么看不到veth0,因為此時已經(jīng)被重命名為eth0.打開腳本會看到。先看看創(chuàng)建網(wǎng)橋的代碼,在network-bridge第198行定義了一個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這一段前面是一些判斷語句,比如bridge變量沒設(shè)置或者vdev不存在的時候?qū)⒔o出提示信息并且退出,而最后create_bridge $bridge則是調(diào)用了create_bridge函數(shù)來創(chuàng)建一個網(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 明白了這些就好辦了,這些動作都可以手工完成。 先看看默認(rèn)情況下,xend啟動時網(wǎng)絡(luò)情況是怎樣的。默認(rèn)啟動時會根據(jù)network-bridge中的幾個變量自動添加網(wǎng)橋并把網(wǎng)卡加入網(wǎng)橋中。在這里我HostOS中有兩塊物理網(wǎng)卡,此時服務(wù)啟動后會自動建立xenbr0,并且把peth0 vif0.0加入。如果設(shè)置了默認(rèn)路由,那么網(wǎng)卡號就是默認(rèn)路由出口網(wǎng)卡號,如果沒有設(shè)置默認(rèn)路由,并且沒有手動給vifnum賦值的話,默認(rèn)為0,此時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)不啟用)下列幾項不要更改,看了前面的原理應(yīng)該不難理解!pdev=p$netdevvdev=veth$vifnumvif0=vif0.$vifnum假如默認(rèn)值不符合我們要求,我們可以手動添加。假設(shè)想建立一個名為test的網(wǎng)橋,橋接pth1和vif0.1(模塊加載時自動生成的,直接和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地址如果為空則會在啟動時自動分配,可以手動指定,建議制定為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命令啟動后,會自動調(diào)用vif-bridge腳本,此時使用brctl show可以看到vif3.0(前面的3是domU的id號,0代表第一塊網(wǎng)卡)已經(jīng)橋接到test.此時在domU上設(shè)置好ip地址(或者從dhcp獲?。┖缶涂梢院椭鳈C(jī)eth1相同網(wǎng)段的主機(jī)通信了。此時vif3.0對應(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更簡單的是按照官方推薦做法,直接使用略加修改缺省腳本,使xend啟動時自動執(zhí)行。#!/bin/shdir=$(dirname $0)$dir/network-bridge $ vifnum=0$dir/network-bridge $ vifnum=1 保持為一個可執(zhí)行文件,然后通過/etc/xen/xend-config.sxp調(diào)用即可,腳本非常簡單,定義了不同的兩個變量,執(zhí)行了兩遍罷了。補(bǔ)充一點,在centos5中,啟動后有一個默認(rèn)網(wǎng)橋virbr0被創(chuàng)建,這個網(wǎng)橋是通過腳本/etc/init.d/libvirtd創(chuàng)建的,用于在沒有dhcp環(huán)境下為虛擬網(wǎng)絡(luò)分配ip地址,配置文件在/usr/share/libvirt/networks/default.xml中,下面做一個小實驗。引用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地址范圍)啟動libvirtd服務(wù),從test中刪除vif3.0,把vif3.0添加到virbr0中,使用dhclient獲取地址。引用rootta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《高中數(shù)學(xué)幾何定理講解與解題技巧提升》
- 英語寫作之情節(jié)構(gòu)建:初中英語寫作技能教案
- 快樂戶外活動的記敘文作文9篇
- 戰(zhàn)略性產(chǎn)業(yè)基地的基礎(chǔ)設(shè)施建設(shè)與產(chǎn)業(yè)布局優(yōu)化
- 加快人才引進(jìn)與教育領(lǐng)域的資金支持
- 小學(xué)生情感表達(dá)與語言發(fā)展
- 草原上的信仰說明文知識與拓展教案
- 低空經(jīng)濟(jì)與環(huán)境保護(hù)的平衡
- 晏子春秋:初中文言文閱讀與解析教案
- 雙減政策的可持續(xù)發(fā)展路徑與改進(jìn)方向
- 《滑炒技法-尖椒炒肉絲》說課課件
- 井下電氣設(shè)備防爆完好圖冊(新)
- 淘寶客服銷售技巧-客戶分析
- 移動通信行業(yè)典型安全隱患圖解
- 混凝土結(jié)構(gòu)下冊第章鋼筋混凝土框架結(jié)構(gòu)設(shè)計
- 生態(tài)系統(tǒng)對全球變化的響應(yīng)
- 2023版中國近現(xiàn)代史綱要課件:09第九專題 新民主主義革命偉大勝利
- 小區(qū)燃?xì)獗趻鞝t采購及安裝合同
- 危貨運輸危險源識別清單
- 國際結(jié)算(中文)
- GB/T 3098.1-2010緊固件機(jī)械性能螺栓、螺釘和螺柱
評論
0/150
提交評論