
Bridge方式的配置原理和步骤。
Bridge方式适用于服务器主机的虚拟化。
NAT方式适用于桌面主机的虚拟化。
选择:当需要外界能定位(找)到虚机时使用Bridge方式、当不需要外界定位到虚机时使用NET方式。
安装完kvm后默认网卡的工作方式为NET
适用范围:服务器主机虚拟化
原理:即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。
好处:可以使虚拟机成为网络中具有独立IP的主机。
上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。
下图,对应计算机上真实的route表。其中br0为桥接网卡。
网桥方式配置步骤:
一、命令模式
1、编辑修改网络设备脚本文件,增加网桥设备br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=192.168.12.118
GATEWAY=192.168.12.1
DNS1=180.76.76.76
DNS2=114.114.114.114
DEFROUTE=yes
备注:如不需要静态地址,可以使用如下配置
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp
2、编辑修改网络设备脚本文件,修改网卡设备eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System eth0"
HWADDR=44:37:E6:4A:62:AD
备注:NM_CONTROLLED这个属性值,根据 RedHat 公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。
3、重启网络服务
#service network restart
4、校验桥接接口
#brctl show
适用范围:不需要外网访问虚拟机情况、桌面主机虚拟化。
原理:NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
好处:无法从网络上定位和访问虚拟主
上图可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界。
下图,对应计算机上真实的route表。其中virbr0为虚拟网卡。
Bridge方式的影响
Bridge方式配置出来的接口对NAT方式没有影响,因为NAT方式并没有使用物理网卡。
但作为客户机,只能选择其中的一种。
实践经验:
当将虚拟机网卡方式更改为Briage后需要注意几点
1、关闭宿主机与虚机的NetworkManager服务并设置开机不自启。不然将会影响两者的网络功能,甚至出现虚机无法启动的情况。
2、虚机网卡已设置为启动开启,但实际情况为开机后宿主机网卡启动了,而虚拟机网卡不能启动,即使手动启动也将失败。这种情况为网卡的启动顺序造成,因为Briage桥接方式虚拟网卡需要在宿主机网卡启动之前启动。而在开机时Network服务启动顺序高于libvirtd服务,所以才会有该现象。解决方式有两个:1、更改服务启动顺序并重启。 2、停止br0网卡,启动虚拟网卡后再启动br0网卡。
3、配置正常并关闭冲突服务后依然无法使用Briage正常上网。此时可以从route表信息开始排查,一般第一次启动Briage方式之后默认的路由表会遭到更改,使得无法连接外网,而内网正常的情况。
1、http://www.linuxidc.com/Linux/2012-05/61445p2.htm
2、 http://blog.csdn.net/hzhsan/article/details/44098537/
在Linux中用命令行工具管理KVM虚拟环境的步骤:第一步: 配置存储池
Virsh命令行工具是一款管理virsh客户域的用户界面。virsh程序能在命令行中运行所给的命令以及它的参数。本节中,要用它给KVM环境创建存储池。想知道关于这个工具的更多信息,用以下这条命令。
# man virsh
1、用virsh带pool-define-as的命令来定义新的存储池,需要指定名字、类型和类型参数。本例中,将名字取为Spool1,类型为目录。默认情况下可以提供五个参数给该类型:
source-host
source-path
source-dev
source-name
target
对于目录类型,需要用最后一个参数“target”来指定存储池的路径,其它参数项可以用“-”来填充。
# virsh pool-define-as Spool1 dir - - - - "/mnt/personal-data/SPool1/"
2、 查看环境中所有的存储池,用以下命令。
# virsh pool-list --all
3、现在来构造存储池了,用以下命令来构造刚才定义的存储池。
# virsh pool-build Spool1
4、用带pool-start参数的virsh命令来激活并启动刚才创建并构造完成的存储池。
# virsh pool-start Spool1
5、查看环境中存储池的状态,用以下命令。
# virsh pool-list --all
会发现Spool1的状态变成了已激活。
6、对Spool1进行配置,让它每次都能被libvirtd服务自启动。
# virsh pool-autostart Spool1
7、最后来看看新的存储池的信息吧。
# virsh pool-info Spool1
恭喜,Spool1已经准备好待命,接下来试着创建存储卷来使用它。
第二步: 配置存储卷/磁盘映像
现在轮到磁盘映像了,用qemu-img命令在Spool1中创建一个新磁盘映像。获取更多细节信息,可以查看man手册。
# man qemu-img
8、应该在qemu-img命令之后指定“create, check,…”等等 *** 作、磁盘映像格式、想要创建的磁盘映像的路径和大小。
# qemu-img create -f raw /mnt/personal-data/SPool1/SVol1.img 10G
9、通过使用带info的qemu-img命令,你可以获取到你的新磁盘映像的一些信息。
查看存储卷信息
警告: 不要用qemu-img命令来修改被运行中的虚拟机或任何其它进程所正在使用的映像,那样映像会被破坏。
现在是时候来创建虚拟机了。
第三步: 创建虚拟机
10、现在到最后一个环节了,在最后一步中,将用virt-install命令来创建虚拟机。virt-install是一个用来创建新的KVM虚拟机命令行工具,它使用“libvirt”管理程序库。想获取更多细节,同样可以查看man手册。
# man virt-install
要创建新的KVM虚拟机,需要用到带以下所有信息的命令。
Name: 虚拟机的名字。
Disk Location: 磁盘映像的位置。
Graphics : 怎样连接VM,通常是SPICE。
vcpu : 虚拟CPU的数量。
ram : 以兆字节计算的已分配内存大小。
Location : 指定安装源路径。
Network : 指定虚拟网络,通常是virbr0网桥。
virt-install --name=rhel7 --disk path=/mnt/personal-data/SPool1/SVol1.img --graphics spice --vcpu=1 --ram=1024 --location=/run/media/dos/9e6f605a-f502-4e98-826e-e6376caea288/rhel-server-7.0-x86_64-dvd.iso --network bridge=virbr0
创建新的虚拟机
11、会看到d出一个virt-vierwer窗口,像是在通过它在与虚拟机通信。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)