1引言
虚拟化技术是云计算技术的重要基础技术,虚拟机的应用在云计算系统的部署与应用中起着重要的作用。KVM虚拟化技术是Linux操作系统上运行的系统级虚拟化应用,在众多的云计算系统中的得到了应用。
KVM提供了对虚拟机生命周期的管理服务,包括虚拟机的创建、运行控制、撤销、快照管理等。KVM的模板技术为快速创建虚拟机提供了方便,通过虚拟机模板可以在一个较短时间内快速生成一台新的虚拟机。
在服务器虚拟化的应用场景中,可以通过模板技术快速生成虚拟机[1],但是由于模板生成的虚拟机具有完全一样的配置属性,例如主机名、IP 地址等。服务器虚拟化的场景中需要为虚拟机配置静态IP地址,如果这一过程采用人工来完成,则使虚拟机的创建速度变慢,影响虚拟机交付用户的速度。人工配置将导致无法实现虚拟机的自动化部署,无法实现虚拟机的快速部署,特别是在大批量虚拟机快速生成与部署的应用场景中无法满足用户的要求。
由于KVM的模板机制中没有提供为虚拟机注入静态IP地址的方法,所以需要通过其他的途径为虚拟机实现静态IP地址的注入。
2KVM虚拟机模板的定制
创建虚拟机模板的过程需要手工完成,主要的步骤包括模板虚拟机的创建与安装、虚拟机模板配置文件和硬盘模板文件的生成和预处理、使用模板创建虚拟机等[2]。具体的实现步骤如下:
1.通过virt-install工具创建模板虚拟机,然后通过人工方式完成虚拟机操作系统的安装与配置,在虚拟机操作系统中将网卡的IP地址配置模式设置为DHCP模式。可以参考如下配置命令来完成。
virt-install--connect=qemu:///system--virt-type=kvm--name=vmtemp--vcpus=8--mem-ory=16384--location=/data/kvm/iso/CentOS-7-x86_64-Minimal-1804.iso--disk path=/data/kvm/ vm/template.qcow2,size=200,format=qcow2--net-worknetwork=default--graphics none--extra-args= 'console=ttyS0'--force
2.关闭模板虚拟机,复制模板虚拟机的硬盘文件作为硬盘镜像模板。可以参考如下配置命令来完成。
virsh shutdown vmtemp
cp/data/kvm/vm/template.qcow2/data/kvm/ template/template.qcow2
3.使用virsh dumpxml工具创建虚拟机模板
KVM虚拟机的静态IP地址注入方法
王利
(泸州职业技术学院信息工程学院,四川泸州646000)
摘要在服务器虚拟化的应用场景中,需要给KVM虚拟机自动化地配置静态的IP地址,但是KVM 虚拟化技术本身并没有提供相关的功能。有两种方法可以实现自动为虚拟机配置静态IP地址,一是使用DHCP服务器的IP-MAC绑定方式,二是使用虚拟机文件注入方式。这两种方式均能实现KVM虚拟机的静态IP地址自动注入,且各自有不同的优缺点。
关键词虚拟机;静态IP地址;非交互;自动化配置
基金项目:本文为泸州职业技术学院2018年科研资助金项目《K-1817基于开源技术的服务器自动化运维软件研究》(项目编号:K-1817)阶段性成果。
作者简介:王利(1978-),女,四川阆中人,硕士,副教授。主要研究方向:云计算、虚拟化技术及数据库技术。
配置文件,并进行预处理,将模板文件中涉及模板虚拟机的个性化设置予以去除。可以参考如下配置命令来完成。
virsh dumpxml--domain vmtemp>/data/kvm/ l
修改l中镜像文件的指定位置为/ data/kvm/template/temlate.qcow2,即复制的镜像文件的路径。删除l中关于name、uuid、mac address、source mode四项配置内容。
4.通过virt-sysprep命令预处理处理虚拟机模板的硬盘文件,可以参考如下配置命令来完成。
virt-sysprep-a/data/kvm/template/tem-plate.qcow2--hostname localhost--root-password password:testpwd
5.通过模板创建虚拟机。
编写Bash Shell脚本程序实现通过虚拟机模板自动创建虚拟机,脚本程序如下。
#!/bin/bash
#filename:createVMbyTemp.sh
VM-NAME=$1
TEMPLATEFILE=$2
DISK-IMAGE=$3
virt-clone--connect qemu:///system--original-xml${TEMPLATEFILE}--name${VM-NAME} --file${DISK-IMAGE}
3利用DHCP服务实现KVM虚拟机的静态IP地址注入
3.1基本思路
在虚拟机模板的网卡配置文件中设定网卡的IP地址获取方式为DHCP方式时,虚拟机的IP 地址将通过DHCP服务器进行分配,此时,虚拟机获得的IP地址是动态的。但是,DHCP服务器提供了MAC地址与IP地址的绑定功能,通过MAC地址与IP地址的绑定,可以实现为虚拟机分配固定的IP地址[3]。
3.2具体的实现方法
在默认情况下,libvirt都会启动和管理一个虚拟机交换机(virtual network switch),同时运行一个dnsmasq dhcpd服务进程的实例。这个实例进程将为虚拟网络交换机提供DHCP服务。可以利用这个进程实现虚拟机的静态IP地址的分配。
1.配置dnsmasq dhcpd服务进程。通过virsh net-dumpxml工具对dnsmasq dhcpd的服务进程的配置文件进行配置,确定DHCP服务的地址池、默认DNS服务器、桥接网桥等配置参数。
2.通过模板创建虚拟机,并提取虚拟机的MAC地址。虚拟机的MAC地址可以从虚拟机配置文件中提取。可以使用如下命令完成。
virsh dumpxml{VM-NAME-HERE}|grep-i' <mac'
3.编辑l网络配置文件。
定位<dhcp>小节,添加静态IP与MAC地址的绑定标记,配置完成后的的l配置文件如下图所示。
图l配置文件的内容
3.3配置过程的自动化设计
上述配置过程可以通过自动化脚本予以实现。
#!/bin/bash
VMNAME=$1
#$1为虚拟机名
IP=$2
#$2为从IP地址中提取出来的分配给$1虚拟主机的静态IP地址
MAC=$(virsh dumpxml${VMNAME}|grep -i'<mac'|cut-d'\''-f2)
LINE="<host mac=\'${MAC}\'name=\'$ {VMNAEM}\'ip=\'${IP}\'/>sed-i-e'/<range star-t.*$/a\${LINE}'l
4利用文件注入实现虚拟机静态IP地址注入
4.1基本思路
虚拟机操作系统启动的时候,
会从网卡配置
文件中读取IP地址参数。因此,通过向虚拟机操作系统的网卡配置文件中写入指定的IP地址参数,则可以实现为虚拟机注入静态IP地址的目的。写入静态IP地址可以采用两种方式,一是直接替换虚拟机的网卡配置文件,二是将修改虚拟机IP地址的脚本程序作为一次性执行脚本,放置到虚拟机操作系统的开机自启动脚本中去,并做一次性执行。如果虚拟机操作系统是Linux,则适合第一种方法[4],如果虚拟机操作系统是Win-dows则适合使用第二种方法[5]。将网卡配置文件或者网卡配置的脚本文件从虚拟机镜像文件系统中复制出来或者复制进去,需要相关工具软件的协助,libguestfs-tools软件则可以提供这种功能。
4.2具体实现方法
以虚拟机的操作系统是Linux(CentOS发行版本)为例。首先需要在主机上安装libguestfs-to-ols,然后将网卡配置文件从虚拟机操作系统文件系统中导出,注入IP地址后,在重新导入到虚拟机文件系统中去。
1.在管理机(VMM)上安装libguestfs-tools软件工具,可以使用YUM软件源进行安装。
2.使用virt-copy-out工具将虚拟机文件系统中/etc/sysconfig/network-script/ifcfg-eth0配置文件复制到管理机。
3.修改ifcfg-eth0配置,文件主要修改以下选项:
ONBOOT=yes
BOOTPROTO=static
IPADDR=<;分配给虚拟机的静态IP地址>
NETMASK=255.255.255.0
4.使用virt-copy-in工具将ifcfg-eth0复制到虚拟机文件系统的/etc/sysconfig/network-script/目录下。
4.3配置过程的自动化设计
上述配置过程可以通过自动化脚本予以实现。
#!/bin/bash
VMNAME=$1
#$1为虚拟机名
IP=$2
#$2为从IP地址池中提取出来的分配给$1虚拟主机的静态IP地址
$NETMASK=$3
virt-copy-out-d$VMNAME/etc/sysconfig/ network-scripts/ifcfg-eth0./
sed–i–e‘/ONBOOT=/c\ONBOOT=yes’./ ifcfg-eth0
sed–i–e‘/BOOTPROTO=/c\ONBOOT= static’./ifcfg-eth0
sed–i–e”\$a|IP ADDR=${IP}|”./ifcfg-eth0
sed–i–e“\$a|NETMASK=${NETMASK}”./ifcfg-eth0
virt-copy-in-d$VMNAME./ifcfg-eth0/etc/ sysconfig/network-scripts/
5结论
为了给由模板镜像生成的KVM虚拟机注入静态的IP地址,可以使用DHCP地址绑定的方法和虚拟机文件注入的方法。使用DHCP地址绑定的方法不需要修改虚拟机文件系统,但是需要额外部署DHCP服务器,且需要获得虚拟机的MAC 地址等信息。使用虚拟机文件注入的方法不需要额外部署DHCP服务器,且不需要做IP与MAC 的绑定,但是需要与与虚拟机的文件系统进行交互,以及需要在虚拟机管理器上部署libguestfs-to-ols软件。通过KVM虚拟机静态IP地址的注入,可以在不登录虚拟机的情况下为虚拟机部署静态IP地址,只需运行自动化脚本程序即可实现,便于批量生成虚拟机和快速将虚拟机交付给用户。
参考文献
[1]王少青,李晓雯.虚拟化集服务器技术研究与运维实践[J].电脑编程技巧与维护,2019(1):37-39.
[2]chnmagnus.通过模板快速创建虚拟机[EB/OL].www.jianshu/p/1f93b724c540,2019-11-10.
[3]Vivek Gite.KVM libvirt assign static guest IP addresses using DHCP on the virtual machine[EB/OL]. berciti.biz/faq/linux-kvm-libvirt-dnsmasq-dhcp-static-ip-address-configuration-for-guest-os/,2019-11-18.
[4]kvm虚拟机自动化配置IP[EB/OL].lineness/kvmxu-ni-ji-zi-dong-hua-pei-zhi-ip/,2019-11-18.
[5]zhaodelu.初始化Windows虚拟机(KVM)的网卡IP[EB/OL].blog.51cto/3646344/2115317,2019-11-18.
(下转第47页)
reform of primary education major in higher vocational college.Through the reform of optimizing the integration of teaching content,changing teaching method and means,establishing a reasonable and effective evaluation system,it means to improve students’percent of pass and teaching skills.After one year’s teaching practice, 100%students believe that the course effectively improves their teaching skills with the pass rate of written examination and interview for teachering certificate reaching 95.3%and96.7%respectively.Therefore,the physical teaching method reform of primary teaching major is successful and worthy of reference and
promotion.
teaching certificate;primary teaching major;physical teaching method course;re-
form and practice
The method of static IP address injection to KVM virtual
machine
WANG Li
Luzhou V ocational and Technical College,School of Information
注入Engineering
In the application scenario of server virtualization,it is necessary to automatically
configure static IP address for KVM virtual machine,but KVM virtualization tec-
hnology itself does not provide relevant functions.There are two ways to automati-
cally configure the static IP address for the virtual machine.One is to use the IP-MAC
binding mode of the DHCP server,and the other is to use the file injection mode of
the virtual machine.These two methods can automatically inject static IP address of
KVM virtual machine,and each has different advantages and
disadvantages.
virtual machine;static IP address;non-interactive;automatic configuration
(上接第8页)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。