2014年新的一年春天来了,又是一年春来到,烟花三月好风光,好久没发表文章了,今天在这里记录一下KVM网卡绑定安装脚本,供大家参考。
一、实施环境:
硬件设备:H3C S5500三层交换机+DELLR720服务器
虚拟化软件:KVM虚拟化
二、脚本内容:
脚本基于服务器四块网卡绑定,网卡流量聚合叠加,总和为4G,模拟测试任意down掉一块网卡、两块网卡对物理机上的虚拟机集群没有任何影响。直接上脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#!/bin/sh
#Auto Make KVM Virtualization
#Author wugk 2013-12-06 bond0+br0
#Auto config bond scripts
eth_bond()
{
NETWORK=(
HWADDR=`
ifconfig
eth0 |
egrep
"HWaddr|Bcast"
|
tr
"\n"
" "
|
awk
'{print $5,$7,$NF}'
|
sed
-e
's/addr://g'
-e
's/Mask://g'
|
awk
'{print $1}'
`
IPADDR=`
ifconfig
eth0 |
egrep
"HWaddr|Bcast"
|
tr
"\n"
" "
|
awk
'{print $5,$7,$NF}'
|
sed
-e
's/addr://g'
-e
's/Mask://g'
|
awk
'{print $2}'
`
NETMASK=`
ifconfig
eth0 |
egrep
"HWaddr|Bcast"
|
tr
"\n"
" "
|
awk
'{print $5,$7,$NF}'
|
sed
-e
's/addr://g'
-e
's/Mask://g'
|
awk
'{print $3}'
`
GATEWAY=`route -n|
grep
"UG"
|
awk
'{print $2}'
`
)
DIR=
/etc/sysconfig/network-scripts/
BAK=
/data/backup/
`
date
+%Y%m%d`
if
[ ! -d $BAK ];
then
mkdir
-p $BAK
cp
$DIR
/ifcfg-eth
* $BAK
else
cp
$DIR
/ifcfg-eth
* $BAK
fi
cat
>ifcfg-bond0<<EOF
DEVICE=bond0
BOOTPROTO=static
${NETWORK[1]}
${NETWORK[2]}
${NETWORK[3]}
ONBOOT=
yes
TYPE=Ethernet
NM_CONTROLLED=no
EOF
yes
|
cp
ifcfg-bond0 ifcfg-eth0 ifcfg-eth1 ifcfg-eth2 ifcfg-eth3 $DIR
yes
|
cp
modprobe.conf
/etc/modprobe
.d/
echo
"The Server bond0 config success !!"
}
#Auto install kvm and config br0 scripts
kvm_install()
{
cat
<<EOF
++++++++++++++++Welcome To Use Auto Install KVM Scripts ++++++++++++++++++
+++++++++++++++++++++++++This KVM Install Virtual ++++++++++++++++++++++++
+++++++++++++++++++++++++2013-12-06 Author wugk ++++++++++++++++++++++++++
EOF
KVM_SOFT=(
kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools
)
NETWORK=(
HWADDR=`
ifconfig
bond0 |
egrep
"HWaddr|Bcast"
|
tr
"\n"
" "
|
awk
'{print $5,$7,$NF}'
|
sed
-e
's/addr://g'
-e
's/Mask://g'
|
awk
'{print $1}'
`
IPADDR=`
ifconfig
bond0 |
egrep
"HWaddr|Bcast"
|
tr
"\n"
" "
|
awk
'{print $5,$7,$NF}'
|
sed
-e
's/addr://g'
-e
's/Mask://g'
|
awk
'{print $2}'
`
NETMASK=`
ifconfig
bond0 |
egrep
"HWaddr|Bcast"
|
tr
"\n"
" "
|
awk
'{print $5,$7,$NF}'
|
sed
-e
's/addr://g'
-e
's/Mask://g'
|
awk
'{print $3}'
`
GATEWAY=`route -n|
grep
"UG"
|
awk
'{print $2}'
`
)
#Check whether the system supports virtualization
egrep
'vmx|svm'
/proc/cpuinfo
>>
/dev/null
if
[
"$?"
-
eq
"0"
];
then
echo
'Congratulations, your system success supports virtualization !'
else
echo
-e
'OH,your system does not support virtualization !\nPlease modify the BIOS virtualization options (Virtualization Technology)'
exit
0
fi
if
[ -e
/usr/bin/virsh
];
then
echo
"Virtualization is already installed ,Please exit ...."
;
exit
0
fi
yum -y
install
${KVM_SOFT[@]}
/sbin/modprobe
kvm
ln
-s
/usr/libexec/qemu-kvm
/usr/bin/qemu-kvm
lsmod |
grep
kvm >>
/dev/null
if
[
"$?"
-
eq
"0"
];
then
echo
'KVM installation is successful !'
else
echo
'KVM installation is falis,Please check ......'
exit
1
fi
cd
/etc/sysconfig/network-scripts/
mkdir
-p
/data/backup/
`
date
+%Y%m%d-%H:%M`
yes
|
cp
ifcfg-eth*
/data/backup/
`
date
+%Y%m%d-%H:%M`/
if
[ -e
/etc/sysconfig/network-scripts/ifcfg-br0
];
then
echo
"The ifcfg-br0 already exist ,Please wait exit ......"
exit
2
else
cat
>ifcfg-bond0 <<EOF
DEVICE=bond0
BOOTPROTO=none
#${NETWORK[0]}
NM_CONTROLLED=no
ONBOOT=
yes
TYPE=Ethernet
BRIDGE=
"br0"
${NETWORK[1]}
${NETWORK[2]}
${NETWORK[3]}
USERCTL=no
EOF
cat
>ifcfg-br0 <<EOF
DEVICE=
"br0"
BOOTPROTO=none
#${NETWORK[0]}
IPV6INIT=no
NM_CONTROLLED=no
ONBOOT=
yes
TYPE=
"Bridge"
${NETWORK[1]}
${NETWORK[2]}
${NETWORK[3]}
USERCTL=no
EOF
fi
echo
'Your can restart Ethernet Service: /etc/init.d/network restart !'
echo
'---------------------------------------------------------'
sleep
1
echo
'Your can restart KVM Service : /etc/init.d/libvirtd restart !'
echo
echo
-e
"You can create a KVM virtual machine: \nvirt-install --name=centos01 --ram 512 --vcpus=1 --disk path=/data/kvm/centos01.img,size=7,bus=virtio --accelerate --cdrom /data/iso/centos58.iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole"
}
case
$1
in
eth_bond )
eth_bond
;;
kvm_install )
kvm_install
;;
* )
echo
"Usage: { $0 eth_bond|kvm_install|help}"
esac
|
三、网卡内容:
修改之后ifcfg-eth0配置内容如下,其他三块网卡依次修改为对应的网卡名称,内容跟eth0一致:
1
2
3
4
5
6
7
|
DEVICE=eth0
BOOTPROTO=none
ONBOOT=
yes
MASTER=bond0
SLAVE=
yes
TYPE=Ethernet
NM_CONTROLLED=no
|
四、H3C S5500交换机配置:
服务器端聚合配置完毕后,还需要在交换机把相应的4个端口做网络聚合,命令如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
system-view
interface Bridge-Aggregation 100
link-aggregation mode dynamic
quit
interface GigabitEthernet1
/0/1
port link-aggregation group 100
quit
interface GigabitEthernet1
/0/2
port link-aggregation group 100
quit
interface GigabitEthernet1
/0/3
port link-aggregation group 100
quit
interface GigabitEthernet1
/0/4
port link-aggregation group 100
quit
|
参考文章:
http://navyaijm.blog.51cto.com/4647068/1316910
http://wgkgood.blog.51cto.com/1192594/1337628
本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1380295