如何在Linux发行版上安装和配置KVM和Open vSwitch

如何在Linux发行版上安装和配置KVM和Open vSwitch,第1张

将OpenvSwitch安装在Ubuntu或Debian上虽然OVS以程序包的方式出现在Ubuntu或Debian上,但我在此还是通过源代码来构建OVS,这将拥有最新的功能特性和修正版。首先,安装用于构建OVS的依赖项。$sudoapt-getinstallbuild-essentiallibssl-devlinux-headers-$(uname-r)通过源代码来构建OVS,如下所示。下列步骤将构建OVS内核模块以及OVS用户空间工具。$wgetubuntu-client.img,boot=on这会创建并启动一个访客虚拟机;一旦访客虚拟机启动,其虚拟接口就自动添加到OVS网桥br0。

NAT方式和Bridge方式。

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窗口,像是在通过它在与虚拟机通信。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7362359.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存