本文由秀依林枫提供友情赞助,首发于烂泥行天下

上一篇文章介绍了有关KVM利用LVM快照备份和恢复虚拟机的功能,这篇文章我们来介绍,如何利用LVM快照功能为KVM快速部署虚拟机。

部署虚拟机需要以下几个步骤:

1、 创建LVM快照

2、 修改虚拟机的XML配置文件

3、 通过virsh define命令定义虚拟机

4、 启动虚拟机,并修改相关网络设置

既然是利用LVM的快照功能,那么我们就先创建一个快照。如下:

lvcreate -L 100M -s -n lvmsp2 /dev/vg1/lvmsp

有关KVM相关的文章,可以参考我以前的博客。同时目前该逻辑卷/dev/vg1/lvmsp所挂载的目录/test是KVM一个虚拟机存放硬盘的,并且目前该虚拟机时正常运行的。如下:

快照做好后,我们就可以把此快照作为一个虚拟机来使用。先把快照进行挂载,如下:

mount /dev/vg1/lvmsp2 /test2/

以上有关LVM快照的配置完毕,下面就是有关KVM的配置。

我们可以先复制其中任意一个虚拟机的XML配置文件,然后修改该配置文件。下面我们已虚拟机testlvmos的配置文件为例,复制testlvmos虚拟机配置文件,并命名为testlvmos2.xml如下:

cp /etc/libvirt/qemu/testlvmos.xml /etc/libvirt/qemu/testlvmos2.xml

现在我们来修改testlvmos2.xml文件,该文件有几处需要我们修改其他的可以保持不变。

第一处、<name>testlvmos</name>,此处我们可以把testlvmos修改为testlvmos2。这个是虚拟机的名称,建议和配置文件testlvmos2.xml保持一致。

第二处、<uuid>44a24883-9805-f679-4b3a-a443064a3ebb</uuid>,这个是设备的UUID号。我们可以通过uuidgen命令生成。如下:

第三处、<source file='/test/testlvmos.img'/>,这个是虚拟机的硬盘路径。修改为快照的所挂载的目录即可,如下:

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2' cache='none'/>

<source file='/test2/testlvmos.img'/>

<target dev='hda' bus='ide'/>

<address type='drive' controller='0' bus='0' target='0' unit='0'/>

</disk>

或者我们也可以这样修改,如下:

<disk type='block' device='disk'>

<driver name='qemu' type='qcow2' cache='none'/>

<source dev='/dev/vg1/lvmsp2'/>

<target dev='hda' bus='ide'/>

<address type='drive' controller='0' bus='0' target='0' unit='0'/>

</disk>

注意图中所标示出来的部分。

第四处、<mac address='52:54:00:19:57:8c'/>,此处是虚拟机的网口地址。该地址我们可以随意修改,但是一定不能和其他虚拟机有重复。我们现在修改为52:54:00:19:50:8d,如下:

第五处、<graphics type='vnc' port='5994' autoport='no' listen='0.0.0.0'>。VNC客户端连接的端口号,在此我们修改为5880。如下:

虚拟机testlvmos2的配置文件修改完毕后,我们现在来定义该虚拟机通过virsh define命令。如下:

virsh define /etc/libvirt/qemu/testlvmos2.xml

虚拟机testlvmos2定义完毕后,我们来启动虚拟机testlvmos2,使用virsh start testlvmos2,如下:

通过上图我们可以看到,虚拟机testlvmos2已经可以正常启动并运行。

注意:目前虚拟机testlvmos2的所有配置和虚拟机testlvmos是一模一样的。

下面我们需要进行的操作就是配置虚拟机testlvmos2网络相关的内容,也可以参考我以前的文章《烂泥:为KVM虚拟机添加网卡》。如下:

vi /etc/udev/rules.d/70-persistent-net.rules

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1

rm -r /etc/sysconfig/network-scripts/ifcfg-eth0

vi /etc/sysconfig/network-scripts/ifcfg-eth1

/etc/init.d/network restart

到此虚拟机testlvmos2已经完全配置完毕,我们也可以正常使用虚拟机teslvmos2。

如果我们还需要虚拟机的话,我们可以通过这种方法重复操作即可。

注意:如果我们是通过以上方法生成虚拟机使用的话,原虚拟机testlvmos一定不要再进行使用。

这个是因为目前LVM快照保存的是原虚拟机testlvmos的状态,如果原虚拟机testlvmos的状态习惯的话,LVM的COW写时复制功能就会造成,快照发生改变。

烂泥:KVM利用LVM快照快速部署虚拟机的更多相关文章

  1. 烂泥:LVM学习之KVM利用LVM快照备份与恢复虚拟机

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近一段时间一直在学习有关LVM逻辑卷方面的知识,前几篇文章介绍了有关LVM的逻辑卷的基本相关知识,包括逻辑卷及卷组的扩容与缩小.今天我们再来介绍LVM ...

  2. MySQL数据物理备份之lvm快照

    使用lvm快照实现物理备份 优点: 几乎是热备(创建快照前把表上锁,创建完后立即释放) 支持所有存储引擎 备份速度快 无需使用昂贵的商业软件(它是操作系统级别的) 缺点: 可能需要跨部门协调(使用操作 ...

  3. Hyper-v之利用差异磁盘快速创建多个虚拟机

    在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...

  4. 如何利用脚本实现MySQL的快速部署以及一机多实例的部署

    MySQL有三个版本:二进制,源码包,RPM. 下面讲讲二进制包的安装过程 下载地址: http://dev.mysql.com/downloads/mysql/ 选择Linux-Generic 我这 ...

  5. 利用Docker快速部署Mysql

    写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...

  6. 利用docker-compose快速部署测试用数据库服务器

    起因 开发中经常需要快速部署一台随用随关的数据库服务器,如mysql,oracle,mongodb,elastic-search 尝试 一直觉得docker特别方便,加上docker-compose. ...

  7. kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)

    继上一篇kvm虚拟化管理平台WebVirtMgr部署-完整记录(1),接下来说说WebVirtMgr的日常配置:添加宿主机,创建虚机,磁盘扩容,快照等具体操作记录如下: 一.配置宿主机1.登录WebV ...

  8. 【技术解析】如何用Docker实现SequoiaDB集群的快速部署

    1. 背景 以Docker和Rocket为代表的容器技术现在正变得越来越流行,它改变着公司和用户创建.发布.运行分布式应用的方式,在未来5年将给云计算行业带来它应有的价值.它的诱人之处在于: 1)资源 ...

  9. Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录

    之前已详细介绍了Ceph分布式存储基础知识,下面简单记录下Centos7使用Ceph-deploy快速部署Ceph环境: 1)基本环境 192.168.10.220 ceph-admin(ceph-d ...

随机推荐

  1. SeaJS 模块化加载框架使用

    SeaJS 是一个遵循 CMD 规范的模块化加载框架 CommonJS,CMD,AMD等规范后文会提到,这里主要先了解如何在代码中使用. 如果你有使用过nodejs ,那么理解起来就容易多了. 我们通 ...

  2. 译:c#生成条码的web控件

    译文:http://www.codeproject.com/Tips/846860/Csharp-Barcode-Generator-Web-Control 在asp.net的web页用c#的web控 ...

  3. 快捷获取浏览器(navigator对象)的全部属性

    理论:     navigator对象包含关于web浏览器的信息,浏览器的类型,版本信息都可以从该对象获取. 属性 说明 appCodeName 浏览器代码说明 appName 浏览器名称 appVe ...

  4. [CLR via C#]14. 字符、字符串和文本处理

    一.字符 在.NET Framewole中,字符总是表示成16位Unicode代码值,这简化了国际化应用程序的开发. 每个字符都表示成System.Char结构(一个值类型) 的一个实例.System ...

  5. knockoutjs+jquery.gridgroup 实现table数据加载和行合并

    目标 使用ajax获取到json数据后,通过ko绑定到表格,然后通过jquery.gridgroup插件实现行合并,效果如下: 步骤 1.引入插件 <script src="~/Scr ...

  6. 【jQuery基础学习】06 jQuery表单验证插件-Validation

    jQuery的基础部分前面都讲完了,那么就看插件了. 关于jQuery表单验证插件-Validation validation特点: 内置验证规则:拥有必填.数字.E-Mail.URL和信用卡号码等1 ...

  7. MVC中视图View向控制器传值的方法

    MVC中视图View向控制器传值的方法步骤如下: 1.index页面: 页面中只需要一个触发事件的按钮

  8. FL2440驱动添加(5)ADC驱动学习笔记

    由图可知,模拟ADC分为两部分功能,一部分是触屏功能,另一部分就是普通ADC功能.分别可以产生INT_TC和INT_ADC 两个中断.该ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0. ...

  9. mysql zip install

    1.Question Description: 1.1 version: mysql-5.7.11-64 1.2 form: zip file 1.3 >mysqld --install (su ...

  10. phantomjs 另类用法

    这几天接到了一个数据采集的项目 通过对网站的前期分析得到以下内容 1.网站本身采用.NET开发 2.需抓取内容采用DES加密 虽然得到了前端javascript的加解密算法,但大家也知道跨语言算法想要 ...