Xen虛擬機器新增網路卡

chengxuyuanyonghu發表於2014-11-20

1. 編輯/etc/xen目錄下的配置檔案,如果使用2顆網路卡,增加nic=2,如果使用3顆網路卡,設定nic=3.

2. 修改vif=選項:

vif = [ "mac=00:16:36:04:7f:e1,bridge=xenbr0,script=vif-bridge" ] 
如果新增一塊網路卡,則修改vif為:
vif=["mac=00:16:36:04:7f:e1,bridge=xenbr0,script=vif-bridge","mac=00:16:36:05:7f:e2,bridge=xenbr0,script=vif-bridge" ]
當然還可以繼續增加:
vif=["mac=00:16:36:04:7f:e1,bridge=xenbr0,script=vif-bridge","mac=00:16:36:05:7f:e2,bridge=xenbr0,script=vif-bridge", "mac=00:16:37:05:8f:e3,bridge=xenbr0,script=vif-bridge" ]

如果是完全虛擬化客戶機,配置應該是下面的樣子: 
vif = [ 'type=ioemu,mac=xx:xx:xx:xx:xx:xx, bridge=xenbr0', 'type=ioemu,mac=xx:xx:xx:xx:xx:xx:xx, bridge=xenbr0', 'type=ioemu,mac=xx:xx:xx:xx:xx:xx, bridge=xenbr0' ]

Xen當前限制一臺客戶機只能建立3顆虛擬網路卡,因此在客戶機上不可能建立大於3顆網路卡。

3.  重啟虛擬機器
xm  shutdown  domainname
xm create  domainname

============================================================================



Xen虛擬環境預設只會建立一個橋接網路,裝置xenbr0橋接eth0,在此基礎上建立兩個新的橋接網路,裝置xenbr1和xenbr2分別橋接到eth1和eth2網路裝置,xenbr0用於虛擬機器中的公共網路,xenbr1用於私有網路,xenbr2用於儲存網路,下面是建立三個橋接網路裝置的步驟。

步驟1   編輯/etc/xen/xend-config.sxp檔案,在相應的地方加入以下內容:

#(network-script network-bridge)  
(network-script network-multi-bridge)


步驟2 建立/etc/xen/scripts/network-multi-bridge檔案,加入如下內容:

#!/bin/sh  
dir=$(dirname "$0")  
"$dir/network-bridge" "$@" vifnum=0 bridge=xenbr0 netdev=eth0 
"$dir/network-bridge" "$@" vifnum=1 bridge=xenbr1 netdev=eth1 
"$dir/network-bridge" "$@" vifnum=2 bridge=xenbr2 netdev=eth2


步驟3 修改network-multi-bridge檔案許可權:

chmod 755 /etc/xen/scripts/network-multi-bridge 


步驟4 重啟xend服務:

service xend restart 


私有網路和儲存網路也可以使用Xen虛擬機器中的內部網路,使用橋接網路的最大優勢在於可以將不同物理伺服器的Xen虛擬機器融合成一個RAC叢集



cat network-custom

#!/bin/bash
# network-xen-custom 
# Exit if anything goes wrong 
set -e


# First arg is operation. 
OP=$1
#shift 
script=/etc/xen/scripts/network-bridge
case ${OP} in
start)
$script start vifnum=0 bridge=xenbr0 netdev=eth0
$script start vifnum=1 bridge=xenbr1 netdev=eth1
$script start vifnum=2 bridge=xenbr2 netdev=eth2
$script start vifnum=3 bridge=xenbr3 netdev=eth3
;;
stop)
$script stop vifnum=0 bridge=xenbr0 netdev=eth0
$script stop vifnum=1 bridge=xenbr1 netdev=eth1
$script stop vifnum=2 bridge=xenbr2 netdev=eth2
$script stop vifnum=3 bridge=xenbr3 netdev=eth3
br1 netdev=eth1
;;
status)
$script status vifnum=0 bridge=xenbr0 netdev=eth0
$script status vifnum=1 bridge=xenbr1 netdev=eth1
$script status vifnum=2 bridge=xenbr2 netdev=eth2
$script status vifnum=3 bridge=xenbr3 netdev=eth3
;;
*)
echo "Unknown command:${OP}" 
echo 'Valid commands are: start, stop, status' 
exit 1
;;
esac

相關文章