zoukankan      html  css  js  c++  java
  • KVM虚拟机管理——虚拟机克隆

    1. 概述

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

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

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

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

    3. 配置虚拟机

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

    3.1 修改/etc/sysconfig/network

    删除/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 删除网卡编号规则文件

    删除文件

    rm -rf 70-persistent-net.rules
    rm -rf /lib/udev/write_net_rules
    rm -rf /lib/udev/rules.d/75-persistent-net-generator.rules

    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验证,如下图显示,则表示成功。

    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,回车输入密码即可登陆,如下:

    登出
    通过ctrl + D ,登出node11,此时处于node11 login:界面。此时输入ctrl + ],即可回到宿主机的命令行

    总结
    对于配置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配置段即可。

    执行命令virt-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}
  • 相关阅读:
    ueditor单独调用图片上传
    百度Ueditor多图片上传控件
    linux基础之vim编辑器
    linux基础之进阶命令二
    linux基础之基础命令一
    Python基础之PyCharm快捷键大全
    IT菜鸟之VTP应用项目
    IT菜鸟之总结(Du teacher)
    IT菜鸟之DHCP
    IT菜鸟之路由器基础配置(静态、动态、默认路由)
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/9986595.html
Copyright © 2011-2022 走看看