首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kvm-虚拟机快照(快速创建虚拟机)

kvm-虚拟机快照(快速创建虚拟机)

作者头像
运维小路
发布2024-11-06 13:05:26
发布2024-11-06 13:05:26
26000
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:

1.虚拟化介绍

2.kvm基本使用

3.kvm进阶使用(本小节属于)

4.kvm技术原理

5.vmware介绍&使用

6.小结

我们在上一下节延申了下外部快照的的2个实际使用,本小节就来是操作这个2个案例。

快速创建虚拟机

1.准备一个基础镜像

代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost image]# ll |grep centos195.img
-rw------- 1 root root   1710948422 Nov  2 09:58 centos195.img

2.基于基础镜像创建2个快照

代码语言:javascript
代码运行次数:0
运行
复制
# 用于创建第一个虚拟机
qemu-img create -f qcow2 -F qcow2 -b centos195.img centos195_sp1.img
# 用于创建第二个虚拟机
qemu-img create -f qcow2 -F qcow2 -b centos195.img centos195_sp2.img

-f qcow2: 指定新创建的快照文件 centos195_sp1.img 的格式为 qcow2。

-F qcow2: 指定基础镜像文件 centos195.img 的格式为 qcow2。

-b centos195.img: 指定基础镜像文件的路径。

centos195_sp1.img: 新创建的快照文件的名称。

3.基于基础镜像创建虚拟机

代码语言:javascript
代码运行次数:0
运行
复制
/usr/libexec/qemu-kvm -hda centos195_sp2.img 
-m 1024 -smp 2 \
-boot d \
-net nic,model=virtio \
-net tap,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown \
-vnc :9
代码语言:javascript
代码运行次数:0
运行
复制
#ifup脚本
#!/bin/sh
switch=br0
if [ -n "$1" ]; then
    /sbin/ip link set $1 up
    /usr/sbin/brctl addif $switch $1
else
    echo "Usage: $0 <interface>"
    exit 1
fi
代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/sh
switch=br0
if [ -n "$1" ]; then
    /usr/sbin/brctl delif $switch $1
    /sbin/ip link set $1 down
else
    echo "Usage: $0 <interface>"
    exit 1
fi

-m 1024 -smp 2 指定内存和cpu。

-boot d 从硬盘启动。

-net nic,model=virtio 添加网络模式,默认虚拟机也是这个模式。

-net tap,xxx 启动和退出执行的脚本。

-vnc :9 使用的vnc端口 这个是5909。

虽然这个方式可以创建成功的虚拟机,并且可以正常使用。但是这个虚拟机属于前台启动,并且不受virh管理。所以这个方式只能用来理解这个快照功能。

4.基于xml快速创建虚拟机

我们在上一小节讲外部快照的时候,只要创建一个外部快照,就会更新xml文件,然后把当前快照放到最前面,原来的文件和快照就会成为只读的文件,然后通过写时复制技术把他们联合挂载在一起。

所以如果我们通过快照来来创建虚拟机,只要在通过一个xml范例来更新里面的必要信息:

名字 :名字不能和其他主机冲突。

uuid:也不能和其他冲突。

mac: mac地址也不能冲突。

然后就是确保你磁盘是通过原始镜像文件+快照共同挂载即可。

代码语言:javascript
代码运行次数:0
运行
复制
# 类似下面的即可,将快照放到前面
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/image/centos31.207_2.img'/>
        <backingStore type='file'>
          <format type='qcow2'/>
          <source file='/data/image/centos31.207.img'/>
        </backingStore>
      </backingStore>
代码语言:javascript
代码运行次数:0
运行
复制
#重新定义该虚拟机
virsh define  /etc/libvirt/qemu/xxx.xml

#启动虚拟机
virsh start xxx

它是如何实现快速创建虚拟机呢?如果是传统创建虚拟机,需要复制或者传输一个镜像文件,这个文件怎么都是以G为单位,而如果是快照这个单位则是以M为单位,自然也就提高了速度。

镜像分层

其实这个快速创建虚拟机原理上是一样的,只是一个目标是虚拟机,一个目标是镜像,而如果镜像要变成虚拟机还会再附加一层快照。

历史推荐内容Linux基础-包括文件的增删改查,磁盘管理,网络配置,用户配置,权限配置Linux进阶-包括硬件,日常运维,基础软件,日志,进阶命令,防火墙,shell编程,内核,linux系统及初始化

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档