更多精彩内容请访问我的新博客站点

概述

这篇文章记录的是按照官方文档在KVM环境下部署双节点openstack过程中,前期准备KVM环境和网络配置相关的内容,在完成这篇博客涉及到的工作之后就可以按照官方文档手动安装openstack了。本文涉及的主要工作,首先是在服务器的ubuntu 16.04 desktop版系统上搭建kvm环境,然后在服务器上安装VNC远程桌面,最后在KVM环境中开启两台虚拟机,分别两张网卡,第一张网卡使用桥接模式,第二张网卡使用NAT模式。下面开始介绍一下这个过程。

一、服务器搭建KVM环境

1、查看CPU是否支持KVM

 

$ egrep -c "(svm|vmx)" /proc/cpuinfo

 

输出结果大于0证明CPU支持KVM虚拟化

2、安装KVM及相关依赖包

 

$ sudo apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin bridge-utils

 

3、启用桥接网络

在服务器上启用桥接网络需要配置一个桥接设备br0,配置br0有两种方式,通过手动配置和通过修改文件配置。

(1)通过手动配置

# brctl addbr br0   //创建br0网桥

# brctl addif br0 eth0    //将eth0网卡添加到br0上,此时可能会断网

# ip addr del dev eth0 192.168.1.25/24    //删除eth0上的IP地址

# ifconfig br0 192.168.1.25/24 up    //配置br0的IP地址并启动br0网桥设备

# route add default gw 192.168.1.1    //重新加入默认网关

//查看配置是否生效

 

# route     //查看默认网关,输出结果如下
Kernel IP routing table
Destination             Gateway             Genmask         Flags     Metric      Ref    Use     Iface
default              192.168.1.1             0.0.0.0          UG        0          0      0        br0
192.168.1.0             *                 255.255.255.0       U         0          0      0        br0

 

# ifconfig     //查看eth0和br0的IP信息,输出结果如下,可以发现现在br0有IP而eth0没有IP了
br0       Link encap:Ethernet  HWaddr 00:e0:81:e2:3c:3d  
          inet addr:192.168.1.25  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:81ff:fee2:3c3d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1316822 errors:0 dropped:5787 overruns:0 frame:0
          TX packets:365475 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:581279124 (581.2 MB)  TX bytes:562586852 (562.5 MB)

eth0      Link encap:Ethernet  HWaddr 00:e0:81:e2:3c:3d  
          inet6 addr: fe80::2e0:81ff:fee2:3c3d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6671034 errors:0 dropped:9627 overruns:0 frame:0
          TX packets:840972 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1346523816 (1.3 GB)  TX bytes:614510541 (614.5 MB)
          Memory:dfb80000-dfbfffff

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1450290 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1450290 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:24027042487 (24.0 GB)  TX bytes:24027042487 (24.0 GB)

这就是通过手动来配置桥接设备br0的方法,这种方法在配置好之后马上就生效了,但是在系统重启之后这些配置信息都会被清除,要想使配置永久生效则需要修改网络配置文件,也就是下面的方法。

(2)通过修改文件配置

在修改网络配置文件前可以先将配置文件进行备份

 

# cp  /etc/network/interfaces  /etc/network/interfaces.bak

 

然后再对网络配置文件/etc/network/interfaces进行修改

 

# vi  /etc/network/interfaces    //修改结果如下

 

auto lo
iface lo inet loopback

# Enabing Bridge networking br0 interface
auto br0
iface br0 inet static
address 192.168.1.25
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 223.5.5.5
bridge_ports eth0
bridge_stp off

 

 

保存后退出,关机重启中配置文件就生效了。这种方法只需要修改配置文件然后重启就可以,比较简单,而且是永久生效,比较符合我们的需求,因为我们的虚拟机通过桥接模式连接外网的话都是连接到br0上的。

 

 

4、修改virbr0的网段

在服务器上安装好虚拟化软件后,KVM会自动生成一个virbr0的桥接设备,它的作用是为连接其上的虚拟网卡提供NAT访问外网的功能,并提供DHCP服务。virbr0默认分配的IP是192.168.122.1,使用 $ ifconfig 命令查看得virbr0的信息如下

 

$  ifconfig
……

virbr0    Link encap:Ethernet  HWaddr 52:54:00:f8:70:e3  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST 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:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

在这种情况下,连接到virbr0上的虚拟机的虚拟网卡也是在192.168.122.0网段上的,如果让连接到virbr0上的虚拟网卡在自定义的网段上就需要修改virbr0的网段,修改方法如下:

 

# virsh  net-edit  default

 

 

<network>
  <name>default</name>
  <uuid>91cc230a-bf53-487c-b296-10323705d7e8</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:f8:70:e3'/>
  <ip address='10.0.0.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='10.0.0.2' end='10.0.0.254'/>
    </dhcp>
  </ip>
</network>

 

这样就将virbr0的网段改成10.0.0.0/24,连接到virbr0的虚拟网卡的IP将会在10.0.0.2/24 - 10.0.0.254/24范围内自动分配一个。如果有需要可以自己手动给虚拟网卡配置IP并写到配置文件中去。

二、服务器安装VNC远程桌面

 

因为服务器上安装的Ubuntu 16.04 LTS desktop版的系统,在后续的工作中需要远程登录到服务器,虽然可以通过SSH远程管理服务器,但是可视化的界面往往会给新手用户提供很大的便利,所以可以在服务器上安装VNC。开始在服务器上安装VNC试过很多方法,VNC服务器端也有多种选择,如VNC4server、tigervncserver,感觉很麻烦,而且还不一定能安装成功,我安装的VNC服务器端是x11VNC,按照步骤可以很顺利地完成安装,步骤如下:

1、安装x11VNC软件包

 

$ sudo  apt-get  install  x11vnc

 

2、配置访问密码

 

$ sudo  x11vnc  -storepasswd  /etc/x11vnc.pass

 

3、创建服务

 

# vi  /lib/systemd/system/x11vnc.service      //粘贴一下代码,最后:wq 保存,请使用root用户,否则没有权限

 

 

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target

 

4、配置防火墙,配置和启动服务

 

# ufw allow 5900

 

# systemctl enable x11vnc.service

 

# systemctl daemon-reload
# systemctl start x11vnc.service

完成这四个步骤然后重启就可以了。(这个VNC的安装过程可以参考http://blog.csdn.net/longhr/article/details/51657610)

最后在你自己的电脑需要有一个vnc viewer的软件,可以在这里下载(链接:https://pan.baidu.com/s/1o8kPqXG 密码:v5r2)

三、开启两个虚拟机并配置相关信息

在安装好VNC后就可以登录服务器的远程桌面,打开一个terminal,在terminal中输入下面的命令可以打开Virtual Machine Manager(注意,使用SSH远程登录服务器是无法打开virt-manager的界面的,一定要在登录了远程桌面后才能打开界面)

 

$ virt-manager

 

使用Virtual Machine Manager的界面可以很方便的创建虚拟机,当然也可以在命令行中使用命令创建虚拟机,这个我就不在这里说了。

按照Openstack官网安装文档的主机网络配置两台虚拟机Controller和Compute

控制节点和计算节点这两个虚拟机分别两张网卡,一张配置为桥接模式,另一张配置为NAT模式。创建虚拟机时默认是添加一张网卡的,后面可以在虚拟机的硬件信息中添加。两张虚拟网卡的配置信息如图:

上图显示的是桥接模式网卡的配置信息,Network source选择为Bridge br0:Host device eth0

上图显示的是NAT模式网卡的配置信息,Network source选择为Virtual network ‘default’:NAT

 

这样按照官方文档部署双节点Openstack的前期准备工作就已经做完,后面就可以按照官方文档开始安装openstack了,祝你成功。附上官方文档链接https://docs.openstack.org/ocata/zh_CN/install-guide-ubuntu/index.html (注:这个文档是在ubuntu系统下安装Ocata版本Openstack,而且还是中文的)

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐