KVM虚拟机管理——虚拟机克隆

摘要:
这样,node99只需要保持关闭状态,也就是说,它可以用作创建其他虚拟机的模板。由于控制台的DHCP配置配置了客户端的MAC绑定IP、DNS服务、网关信息、主机名等,因此在克隆虚拟机时,只需指定虚拟机的MAC。

1. 概述
2. 部署基本操作系统虚拟机
3. 配置虚拟机
3.1 修改/etc/sysconfig/hostname
3.2 删除/etc/sysconfig/network-scripts/ifcfg-ethx和主机有关信息
3.3 编辑/etc/udev/rules.d/70-persistent-net.rules
3.4 编辑/etc/yum.repo.d/
3.5 配置console到node99无密码访问
3.6 配置sshd配置文件
3.7 配置virsh console访问虚拟机
4. 克隆虚拟机
1. 概述

通过为KVM虚拟机安装操作系统只是安装最基本的操作系统模板。这是必须的,因为每个虚拟机都需要操作系统。实际应用过程中,主要是基于操作系统安装好环境之后,再作为业务模板,方便快速部署或者迁移等。
本篇博客主要介绍该如何制作KVM模板,和克隆KVM虚拟机。

2. 部署基本操作系统虚拟机

本篇博客主要是以虚拟机node99作为基本操作系统模板。首先为node99配置硬件,并安装操作系统。

操作系统以本地安装方式,具体参见博客《》

3. 配置虚拟机

node99安装好操作系统之后,需要对其内部配置进行修改,去掉一些信息

3.1 修改/etc/sysconfig/hostname

删除/etc/sysconfig/network中'HOSTNAME=node99'一行
并添加"NOZEROCONF=yes"

3.2 删除/etc/sysconfig/network-scripts/ifcfg-ethx和主机有关信息

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
NAME=eth0

上面文件已经删除了uuid,hardmac等和主机有关的信息

3.3 编辑/etc/udev/rules.d/70-persistent-net.rules

删除内容

# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:00:00:80:00:99", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:00:00:10:00:99", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

3.4 编辑/etc/yum.repo.d/

执行命令cd /etc/yum.repo.d,创建目录mkdir oldrepo,然后把之前的YUM源配置文件移动其中'mv Cent* oldrepo',在从oldrepo中复制文件'cp .oldreop/CentOS-Media.repo ../CentOS-ftp.repo'
编辑CentOS-ftp.repo,内容如下

[console-ftp]
name=CentOS-$releasever - ftp
baseurl=ftp://192.168.80.8/pub/osimage/centos6.5
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

执行yum repolist验证,如下图显示,则表示成功。
KVM虚拟机管理——虚拟机克隆第1张

3.5 配置console到node99无密码访问

配置console到node99(模板虚拟机)的无密码登陆,本质就是用一对公密钥对来实现无密码通信。两种方式:

  • 将consle的公钥上传到模板主机/root/.ssh/authorized_keys
  • 在模板下生成公密钥,将私钥下载到console的/root/.ssh/目录下

这个过程可以不用配置,因为在实际生成过程中,即便是开始未配置宿主机到虚拟机的无密码登陆,后期也可以手动配置或者批量管理。

3.6 配置sshd配置文件

3.7 配置virsh console访问虚拟机

配置kvm虚拟机的控制台登陆,方式有很多种,其基本思路都是修改kvm虚拟机操作系统内部的三个文件,即

  • /etc/inittab
  • /etc/securety
  • /boot/grub/grub.conf

这三个文件配置修改的主要目的是为kvm虚拟机配置虚拟控制台ttyS0,让宿主机能够通过virsh console xxxx方式登陆虚拟机

这种登陆方式主要预防在宿主机无图形界面,无VNC登陆,无法ssh登陆的情况下,进行虚拟机登陆管理和维护

具体文件内容如下:
/etc/inittab最后一行添加以下内容

S0:12345:respawn:/sbin/agetty ttyS0 115200

/etc/securetty最后一行添加以下内容

ttyS0

/boot/grub/grub.conf修改如下

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=f41dc2f7-a05c-4b17-9204-eef2459c21d3 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0
        initrd /initramfs-2.6.32-431.el6.x86_64.img

上面三个文件,在对应虚拟机修改好后,重启虚拟机即可生效。
登陆测试
本篇博客已经对node11修改完成,执行命令:virsh console node11,输入root,回车输入密码即可登陆,如下:
KVM虚拟机管理——虚拟机克隆第2张

登出
通过ctrl + D ,登出node11,此时处于node11 login:界面。此时输入ctrl + ],即可回到宿主机的命令行
KVM虚拟机管理——虚拟机克隆第3张

总结
对于配置KVM虚拟机的控制台登陆,有四种方式可取:

  • 等kvm虚拟机创建之后手动修改
  • 等kvm虚拟机启动之后,批量分发配置文件
  • kvm虚拟机安装时,若是--location安装方式,通过传入内核参数进行配置
  • kvm虚拟机安装时,若是--pxe安装方式,通过定义ks.cfg文件中的内核参数
4. 克隆虚拟机

进行完node99的配置之后,对node99执行poweroff操作。这样node99只需要保持关机状态,即可以其为模板,创建其他虚拟机。
因为在console的DHCP配置中,配置了客户机的MAC绑定IP,DNS服务,网关信息,主机名等,因此克隆虚拟机时,只需要指定虚拟机的MAC即可。

注:假如配置了kvm虚拟机的VNC,则还需要在启动克隆的虚拟机之前,对克隆的虚拟机进行配置修改。virsh edit nodexx,修改VNC配置段即可。

执行命令virsh clone -o node99 -n node11 -f /mnt/data/vhost/node11.img -m 00:00:00:80:00:11 -m 00:00:00:10:00:11,即可从node99克隆node11。
编辑脚本如下:

#!/bin/bash
if [ "$#" != "2" ];then
    echo "usage:$0 [moudle] [nodenum]" && exit 0
fi
SRCNODE=$1
DESNODE=$2
IMGFILE=/mnt/data/vhost/node${DESNODE}.img
virt-clone -o node${SRCNODE} -n node${DESNODE} -f ${IMGFILE} -m 00:00:00:80:00:${DESNODE} -m 00:00:00:10:00:${DESNODE}

免责声明:文章转载自《KVM虚拟机管理——虚拟机克隆》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇判断图片是否全部加载完成解压版(绿色版)Tomcat配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vSphere 计算vMotion的迁移原理

1. 计算vMotion 的应用场景   1). 计划内停机维护  2). 提高资源的利用率 2. 计算vMotion 需求:   1).共享存储 vMotion需要解决的核心问题就是:将VMs的内存从源ESXi Host不断电的情况下无中断拷贝到目标ESXi Host. 3. 计算vMotion 的迁移原理  第1步:根据右图所示,虚拟机A为生产环境重要...

VMware vSphere 7.0 安装教程

插入光盘,启动系统 等待安装包加载 加载镜像,按下Enter键 协议条款,同意,按下F11 磁盘分区管理,由于测试环境,只有一块硬盘,直接按下Enter 键盘布局,选择默认的,按下Enter 设置root账号的密码,输入完成后,按下Enter 确认安装(警告,被选中的磁盘将被重新分区),按下F11 等待安...

VMWare虚拟机安装dmg格式的macOS操作系统

转载自 //https://blog.csdn.net/a4019069/article/details/80585612 { 准备 VMware Workstation Pro Unlock macOS系统镜像 8G的U盘 UltraISO 下载地址: VMware 虚拟机,安装步骤不做示范 系统环境 下载地址 Windows-64 ht...

windbg源码驱动调试 + 无源码驱动调试

windbg源码驱动调试   环境信息 虚拟机:win7 32位 windbg:6.12(版本不存在太大影响) 设置过程 windbg与虚拟机连接:链接 配置windbg 配置好双机调试后,点击windbg菜单栏的debug->Break产生中断,控制权交给windbg 中断产生后,点击File->Open Sourse File(Ct...

Java虚拟机解释器与JIT编译器

一、JAVA编译相关概念 1、动态编译(dynamic compilation)指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。 2、JIT编译(just-in-time compilation)狭义来说是当某段代码即将第一次被执行时进...

VMWare Workstation Pro 15使用教程

1.虚拟化产品应用场景 学习教学 企业中搭建测试环境 生产环境 虚拟机可以在不同的硬件服务器之间迁移 物理机抓取到虚拟机 2.主流的虚拟化产品 VMWare Workstation 15.5 免费 下载地址: https://www.vmware.com/cn.html VMWare Workstation的使用说明:https://docs.vmware...