- 问题
沿用练习一,通过对KVM服务器做适当调整,为KVM虚拟机的网络访问及磁盘存储提供条件。主要完成以下事项:
- 建立隔离网卡virbr1
- 建立桥接网卡br0
- 建立一个不小于40G的文件系统,挂载到 /data/作为虚拟机的专用空间
- 方案
KVM的虚拟网络类型:
- 桥接模式:Guest与Host连接到同一个交换机上;通过桥接物理网卡,相当于直连到Host所在网络
- 隔离模式:允许Guest访问同一虚拟交换机上的其他Guest;但是不能访问Host所在的外部网络
- 虚拟机的网络访问类型:
- NAT模式(默认):将Guest虚拟机的默认网关指向Host物理机的virtbr0接口的IP地址;Guest共享真机的网络连接,以地址转换的方式访问外网
- 路由模式:由Host物理机充当路由器,开启转发;需要额外设置外网与Guest虚拟机之间互访的路由条目,Guest以路由转发的方式访问外网
- 步骤
实现此案例需要按照如下步骤进行。
步骤一:建立隔离网卡virbr1
1)打开KVM平台的“虚拟网络”配置窗口
在KVM平台提供的“虚拟系统管理器”界面中,单击菜单“编辑”-->“Connection Details”,即可打开虚拟网络配置窗口,如图-2所示。可以看到已经有一个默认的default网络,对应的是物理机上名为virbr0的接口。
图-2
2)添加新的虚拟网络
单击第1)步中虚拟网络配置窗口左下方的加号按钮,即可打开“创建新的虚拟网络”向导程序,如图-3所示。
图-3
为新建的虚拟网络起一个名字,比如network1,如图-4所示,单击“前进”继续。这里的网络名称只提供给KVM内部管理使用,外部的ifconfig命令是看不到的。
图-4
接下来需要为这个虚拟网络使用IP地址段,比如192.168.4.0/24,如图-5所示,确认无误后再单击“前进”继续。
图-5
提示选择DHCP范围时,不要勾选“启用DHCP”,如图-6所示。因为本例会另外搭建支持PXE的DHCP服务器,而这里KVM自带的DHCP服务是不支持PXE的,两者同时启用会发生冲突。
图-6
单击“前进”继续,接受默认的隔离模式以连接到物理网络,如图-7所示。
图-7
前进后确认上述设置,单击“完成”即可,如图-8所示。
图-8
3)确认创建结果
建立完成后,在虚拟网络中会出现一个名为network1的接口,对应的物理机上会自动增加一个虚拟网卡virbr1,如图-9所示。
图-9
从Linux命令行执行ifconfig命令,可以看到新增的隔离网卡virbr1的信息:
[root@kvmsvr ~]# ifconfig
.. ..
virbr0 Link encap:Ethernet HWaddr 52:54:00:6F:5C:38
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
virbr1 Link encap:Ethernet HWaddr 52:54:00:1B:67:38
inet addr:192.168.4.1 Bcast:192.168.4.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
步骤二: 建立桥接网卡br0
1)新建网卡配置文件ifcfg-br0
直接拷贝本地网卡eth0的配置文件:
[root@kvmsvr ~]# cd /etc/sysconfig/network-scripts/
[root@kvmsvr network-scripts]# cp ifcfg-eth0 ifcfg-br0
修改复制的ifcfg-br0配置文件:
[root@kvmsvr network-scripts]# vim ifcfg-br0
DEVICE=br0 //网络设备的名称
//如果有UUID、MAC地址的设置请删除
TYPE=Bridge //连接类型
ONBOOT=yes
NM_CONTROLLED=no //不接受NetworkManager管理
BOOTPROTO=dhcp //参考原网卡配置信息
IPV6INIT=no
USERCTL=no
PEERDNS=yes
2)将物理网卡eth0连接到br0桥接(作为桥接成员):
修改ifcfg-eth0配置文件:
[root@kvmsvr network-scripts]# vim ifcfg-eth0
.. ..
BRIDGE=br0 //指定桥接设备为br0
[root@kvmsvr network-scripts]# service network restart //重启network服务
正在关闭接口 eth0: bridge br0 does not exist!
[确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0: [确定]
弹出界面 br0:
正在决定 br0 的 IP 信息...完成。
[确定]
3)查看桥接配置
如果桥接br0启用成功,默认情况下成员网卡eth0的IP地址会丢失,而转移到桥接接口br0上来,以后就可以从br0接口去访问物理网络了。
[root@kvmsvr ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:0C:29:DF:23:54
inet addr:172.30.6.124 Bcast:192.168.213.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fedf:2354/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:752 (752.0 b) TX bytes:1236 (1.2 KiB)
eth0 Link encap:Ethernet HWaddr 00:0C:29:DF:23:54
inet6 addr: fe80::20c:29ff:fedf:2354/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13485 (13.1 KiB) TX bytes:4325 (4.2 KiB)
.. ..
步骤三:为虚拟机准备存储空间
1)建立一个不小于40G的文件系统,作为存储KVM虚拟机的磁盘
为了方便空间扩展,建议采用LVM的方式。
首先利用磁盘/dev/sda的剩余空间新建一个120GB的分区,比如/dev/sda6;然后将其创建为新的LVM卷组vg_data:
[root@kvmsvr ~]# pvcreate /dev/sda6 //将sda6转为物理卷
Physical volume "/dev/sda6" successfully created
[root@kvmsvr ~]# vgcreate vgdata /dev/sda6 //创建vgdata卷组
Volume group "vgdata" successfully created
从卷组vg_data中划分一个40GB的逻辑卷kvm_disk,并将此逻辑卷格式化成EXT4文件系统:
[root@kvmsvr ~]# lvcreate -L 40G -n kvm_disk vgdata //创建逻辑卷
Logical volume "kvm_disk" created
[root@kvmsvr ~]# mkfs.ext4 /dev/vgdata/kvm_disk //格式化
.. ..
2)将逻辑卷kvm_disk挂载到/data目录
[root@kvmsvr ~]# mkdir /data
[root@kvmsvr ~]# mount /dev/vgdata/kvm_disk /data/ //挂载kvm_disk卷
[root@kvmsvr ~]# df –hT //确认挂载结果
Filesystem Type Size Used Avail Use% Mounted on
.. ..
/dev/mapper/vgdata-kvm_disk ext4 40G 176M 38G 1% /data
[root@kvmsvr ~]# vim /etc/fstab //配置开机挂载
.. ..
/dev/vgdata/kvm_disk /data ext4 defaults 0 0
3)为第一个虚拟机准备磁盘文件
在kvm_disk卷的挂载点/data下建立一个images文件夹,专门用来存放KVM虚拟机的磁盘镜像文件;提前准备的时候,可以采用dd命令建立空设备。比如,为第一个虚拟机准备一个名为node1.img的设备文件,可参考下列操作:
[root@kvmsvr ~]# mkdir /data/images //创建虚拟机镜像存放位置
[root@kvmsvr ~]# dd if=/dev/zero of=/data/images/node1.img bs=10M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
10485760000字节(10 GB)已复制,57.9449 秒,181 MB/秒