APP下载

用KVM虚拟化网络服务

2016-11-26

网络安全和信息化 2016年9期
关键词:优盘桥接配置文件

引言:最近,单位购进一台配置较高的服务器,准备将单位重要的网络服务安装在这一台服务器上,同时要兼顾维护方便。笔者决定采用服务器虚拟化来解决。由于单位的门户网站、数据中心和电子邮件都是基于Linux系统,从兼容性和经济性方面考虑,笔者准备采用基于Linux系统的KVM解决方案。

单位的服务器设备大都是2009年左右采购的,早已进入淘汰期,受经费的限制,一直没有得到更新。虽然在管理员的精心维护之下,这些设备大部分还在正常运行,但由于单位的门户网站、数据中心、电子邮件等重要服务都安装在这些设备之上,管理维护的压力越来越大。不久前,单位终于购进了两台配置较高的服务 器(E5-2620V3×2,64G,1T×6),除有一台必须安装指定服务外,还有一台服务器可以自由支配。怎样将单位重要的网络服务安装在一台服务器上面,同时又要兼顾维护方便呢?笔者不禁打起了服务器虚拟化的主意。

目前,常见的服务器虚拟化解决方案有基于Linux系统的KVM,基于Windows系统的Hyper-V,以及适合任何系统的老牌虚拟化软件VMware。由于单位的门户网站、数据中心和电子邮件都是基于Linux系统,从兼容性和经济性方面考虑,笔者准备采用基于Linux系统的KVM解决方案。

安装配置KVM服务器

KVM服务器系统我们准备采用最新的CentOS7,CentOS是 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的Bug,相对于其他Linux发行版,其稳定性值得信赖。

1.安装CentOS系统

从CentOS官方网站下载最新的DVD版本,刻录DVD光盘或者写入优盘进行系统安装。在安装过程中我们需要注意以下几点:系统默认语言尽量选择英语,如果选择中文,将来使用VNC远程管理的时候会出现乱码。软件选择使用“最小虚拟化主机”(如图1),其他软件需要的时候再安装。手动配置硬盘分区,根据自己的需要,可以为虚拟机划分单独的硬盘空间(比如划分单独的/data分区)。

系统安装完毕以后,首先运行yum update更新一下系统,将系统升级到最新,然后运行以下命令,查看是否已经在BIOS中开启了VT。

# lsmod|grep kvm

如果在命令输出中包含kvm 525409 1 kvm_intel等字样,说明已经开启了VT,否则就要重启系统进入BIOS进行设置,启动VT功能。

2.配置桥接网络

KVM虚拟机支持多种网络模式,比较常用的是Bridged(桥接模式)和NAT(网络地址转换模式),我们需要虚拟机具备和独立主机相同的功能,可以与其他机器互相访问,所以在这里我们选择Bridged(桥接模式)。

图1 选择最小虚拟化主机安装模式

(1)复制ifcfg-enp2s0f0(每台服务器的网卡名称不一样,以自己的名称为准)配置文件为 ifcfg-br0,并将ifcfg-br0修改为如下配置:

TYPE=Bridge

#桥接模式

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

NAME=br0

DEVICE=br0

ONBOOT=yes

IPADDR=10.7.3.220

#服务器的IP地址

NETMASK=255.255.255.0

GATEWAY=10.7.3.1

#网关地址

(2) 原 网 卡ifcfgenp2s0f0配置文件只需要保留以下内容,其他全部注释掉:

NAME= enp2s0f0

DEVICE= enp2s0f0

ONBOOT=yes

BRIDGE=br0

(3)重启网络让桥接模式生效

# service network restart

3.安装图形界面

作为网络服务器,一般不用安装图形界面,但考虑到使用virt-manager在图形界面下管理虚拟机非常方便,加之以后可能需要使用VNC远程管理KVM服务器,所以安装一个最基本的图形界面还是非常有必要的。

(1)安装virt-manager管理工具

# yum install virtmanager

(2)安装图形界面

# yum groupinstall"X Window System"

# yum install gnome-classic-session gnometerminal nautilus-openterminal control-center liberation-mono-fonts

(3)设置系统默认启动图形界面

# unlink /etc/systemd/system/default.target

# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

如果不想让KVM服务器默认启动图形界面,这一步可以不做设置,当需要启用图形界面的时候,输入startx即可。

(4)重新启动系统

# reboot

服务器重启之后,我们就有一个具备图形界面的KVM服务器了。

转化物理机为KVM虚拟机

KVM服务器安装完毕以后,就可以根据需要建立自己的虚拟机了。如何将正在运行的服务器平滑地迁移到KVM虚拟机,这是我们面临的一个大问题。所幸,RedHat已经为我们研发了virt-p2v这个将物理机转化为虚拟机的工具,它可以通过SSH连接物理机和转化服务器(转化服务器也可以安装在KVM服务器上面)对目标服务器进行在线迁移。

图2 配置连接转化服务器所需账号

图3 配置虚拟机各项参数

1.准备迁移环境

(1)安装转化服务器

# yum install virtv2v

转化服务器可以单独安装,也可以和KVM服务器安装在一起,为方便起见,我们将转化服务器安装在KVM服务器上面。

(2)制作virt-p2v迁移工具

从 这 个 网 站(http://oirase.annexia.org/virtp2v/)下载最新的P2V光盘镜像文件,然后刻录光盘或者写入优盘待用。

(3)配置转化服务器sshd服务

修 改/etc/ssh/sshd_config配置文件,并做如下修改:

AllowTcpForwarding yes #允许tcp转发

PermitRootLogin yes #允许root用户登录

启动sshd服务

# systemctl start sshd.service

查看sshd运行状态

# netstat -anput|grep ssh

2.迁移目标服务器

将P2V工具光盘或者优盘接入目标服务器,然后设置目标服务器从光盘或者优盘启动,进入P2V配置界面(如图2),输入转化服务器IP地址、用户名和密码(在这里我们使用root账号),勾选“Use sudo when running virt-v2v”,然后点击左下角的“Configure network...”为P2V工具设置一个可用的局域网IP地址。最后,点击“Test connection”检查一下SSH是否可以连接,如果出现“connected to the conversion server”的提示,说明P2V工具已经成功连接到转化服务器。

点击“next”进入配置虚拟机界面(如图 3),在这里我们可以根据自己的实际情况,配置虚拟机的名称、CPU数量和内存大小,勾选需要进行转化的目标服务器上的所有磁盘和网络接口(如果P2V工具使用优盘启动,不要勾选转化优盘)。

需要特别注意的是,在Virt-v2v输出选项卡中,Output to支持很多类型,比较常用的是local和libvirt。如果转化服务器和KVM服务器安装在一起,libvirt选项可以直接生成正常运行的虚拟机;如果你想指定存放路径,手工添加虚拟机,可以选择local类型,然后在Output storage里面指定路径。Output format支持raw和qcow2两种虚拟文件格式,P2V工具默认输出raw格式,不要试图修改输出格式为qcow2,否则会在转化过程中出错。如果想在虚拟机中使用qcow2格式,可以在转化完成后再进行设置。这里我们选择输出类型为libvirt,其他选项保持默认即可,注意勾选“Enable server-side debugging”选项,以便出错时我们可以进行调试工作。

虚拟机配置全部完成后,就可以点击“Start conversion”按钮进行转化了,根据网络速度和硬件配置的不同,转化物理机所需的时间也不尽相同,一般说来,一块300GB容量的磁盘需要转化8-10个小时的时间。您可以根据自己的实际情况,安排在晚上或者周末进行服务器的迁移工作,尽量减少服务器的宕机时间。一旦迁移工作完成,应该马上关闭目标服务器,如无必要就不要再重新启动它。

登录KVM服务器,会发现我们转化物理机生成的虚拟机已经可以正常运行了,只是它的虚拟文件系统是raw格式,如果需要快照功能,那么qcow2格式也许更加适合你,两种虚拟文件格式的性能差距已经很小,qcow2格式完全可以满足我们的需要。使用如下命令可以将raw格式的虚拟文件转换成qcow2格式:

# Qemu-img convert-f raw -O qcow2 raw文件名 qcow2文件名

虚拟文件格式转换完成后,记着在虚拟机的虚拟硬件列表中将虚拟磁盘的格式由raw更改为qcow2,然后重新启动虚拟机。

安装配置远程管理工具

到目前为止,我们已经有了一台正常运行的KVM服务器,通过virt-manager软件,可以在图形界面下完成对虚拟机的克隆、安装、调试和开关机等绝大部分操作。不过,这些操作必须在机房里才可以进行,安装维护极为不便,为此我们需要安装VNC远程管理工具。

1.安装配置VNC服务器

(1)安装VNC服务器

# yum install tigervnc-server -y

(2)修改VNC配置

VNC配置文件在/etc/systemd/system目录下,我们可以将 /lib/systemd/sytem/vncserver@.service模板文件复制一份到该目录下并修改名称。

# cp /lib/systemd/system/vncserver@.service/etc/systemd/system/vncserver@:1.service

然后打开配置文件/etc/systemd/system/vncserver@:1.service替换掉默认用户名,找到下面这一行:

ExecStart=/sbin/runuser -l <USER> -c"/usr/bin/vncserver %i"

PIDFile=/home/<USER>/.vnc/%H%i.pid

这里需要用root账号登录,所以替换成:

ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"

PIDFile=/root/.vnc/%H%i.pid

不建议使用普通账号登录VNC,因为容易产生各种错误。

(3)重新加载systemd

# systemctl daemonreload

(4)设置VNC密码

# vncpasswd

确保输入的密码多于6个字符。

(5)关闭和禁止防火墙

# systemctl stop firewalld.service

图4 使用VNC客户端连接KVM服务器

#关闭防火墙

# systemctl disable firewalld.service

#禁止开机启动防火墙

(6)开启VNC服务

# systemctl enable vncserver@:1.service #开机自动启动VNC服务

# systemctl start vncserver@:1.service #启动VNC服务

(7)使用客户端连接VNC

现在,VNC服务器的安装已经完成,不过要连接到VNC服务器,我们还需要在本地计算机上安装仅供连接远程计算机使用的VNC客户端。你可以用像Tightvnc viewer和Realvnc viewer此类的客户端来连接到VNC服务器(如图4)。

如果需要更多的用户连接VNC服务器,那就需要创建新的配置文件和端口。请返回到第二步,添加一个新的用户和端口。你需要创建类似vncserver@:x.service的配置文件,并替换该文件里的用户名和之后步骤里相应的文件名、端口号,并确保登录VNC服务器用的是之前配置VNC密码的那个用户名。

2.其他常用命令

(1)自动开启虚拟服务

# Systemctl enable libvirtd

(2)查看虚拟机名称及状态

# virsh list --all

(3)让虚拟机开机自动启动

# virsh autostart 虚拟机名称

设置完成后,可以在/etc/libvirt/qemu/autostart下看到已设置自动启动的KVM配置文件链接。

经验总结

经过一段时间的运行,证明虚拟化技术具备很多独特的优势,网络管理和维护变得非常简单,可以减轻网络管理人员的工作压力。对于很多基层单位来说,网络服务虚拟化是一个不错的选择。

猜你喜欢

优盘桥接配置文件
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
替罗非班桥接常规抗血小板治疗早期PWI-DWI不匹配脑梗死的疗效评价
互不干涉混用Chromium Edge
人脑优盘
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
打造优盘系统维护盘
为View桌面准备父虚拟机
妙手回春巧修优盘
利用桥接技术防治苹果树腐烂病