zoukankan      html  css  js  c++  java
  • 烂泥:KVM使用裸设备配置虚拟机

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

    何谓裸设备?百度百科显示:

    裸设备(raw device),也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊块设备文件。由应用程序负责对它进行读写操作。不经过文件系统的缓冲。它是不被操作系统直接管理的设备。这种设备少了操作系统这一层,I/O效率更高。不少数据库都能通过使用裸设备作为存储介质来提高I/O效率。

    说白了裸设备就是没有格式化的特殊快设备文件,既然裸设备是没有经过格式化的设备文件,那么就不存在挂载的问题。也就是说裸设备,我们可以把数据存放进去,而不能直接进行读取。

    那么我们应该如何来使用裸设备呢?

    其实如果我们深入了解了平时我们使用的设备的话,你会发现我们平时使用的设备都是经过格式化的,然后我们读取设备上数据的话使用系统来来进行读取。而裸设备则不是,裸设备数据的读取及操作是通过软件来达到其目的的。

    来这样我们在进行读取数据时,中间少了一层系统,就大大提高了磁盘的I/O性能。

    KVM就具有读取裸设备的功能。其实这个裸设备的问题,我们已经在我的前一篇文章《烂泥:KVM利用LVM快照快速部署虚拟机》中提到的有关修改虚拟机硬盘路径中隐约的提到过的。如下:

    clip_image001

    clip_image002

    注意图中的disk中的type类型中file和block。file表示的是文件的名称是经过系统挂载的,而block表示的是块设备名称,无需经过系统挂载。

    有关KVM使用file的,我们在此就不做实验,因为我前面的文章都是按照这个进行操作的。下面我们主要是进行有关KVM虚拟机使用裸设备的实验。

    首先新建一个裸设备,在此我们是通过在LVM中新建一个逻辑卷的方式来建立的。如下:

    lvcreate -L 30G -n luoshebei vg1

    clip_image003

    目前逻辑卷/dev/vg1/luoshebei就是一个裸设备。因为没有进行格式化,如果按照我们传统的做法,下面就应该是格式化该逻辑卷然后在进行挂载了。

    但是现在我们不进行这样的操作,而是直接使用该逻辑卷。

    如果你是通过命令进行方式进行安装虚拟机的话,可以使用如下命令:

    virt-install -n luoshebei --boot network,cdrom,menu=on -r 2048 --vcpus=1 --os-type=linux -c /iso/CentOS-6.5-x86_64-minimal.iso -f /dev/vg1/luoshebei --bridge=br0,model=virtio --vnc --vncport=5911 --vnclisten=0.0.0.0

    一定要注意其中的-f /dev/vg1/luoshebei参数,这个是用来指定硬盘的。

    clip_image004

    如果是通过复制并修改以前的虚拟机的XML配置文件的话,有关如何快速部署KVM虚拟机,可以参考我前面的文章《烂泥:KVM利用LVM快照快速部署虚拟机》。

    其中有几处一定要注意:

    第一处、修改虚拟机名称及设备的UUID号。如下:

    clip_image005

    第二处、修改虚拟机的启动顺序,因为是新的虚拟机所以建议尽量修改为光驱启动,这样就可以通过光驱进行安装系统。在这需要有两个地方需要修改,如下:

    clip_image006

    clip_image007

    第三处、修改虚拟机的硬盘。在这就是我们所需要使用的裸设备,即逻辑卷的路径。如下:

    clip_image008

    第四处、修改MAC地址及VNC的端口号。如下:

    clip_image009

    以上修改完毕后,我们再使用virsh define /etc/libvirt/qemu/luoshebei.xml定义该虚拟机。

    clip_image010

    然后启动虚拟机,如下:

    clip_image011

    安装完毕系统后,你会发现,使用裸设备与不使用裸设备虚拟机的在启动与连接时间都快了很多。

    所以强烈建议以后KVM中安装虚拟机都使用裸设备的这种方式。

  • 相关阅读:
    Unity给力插件之MegaFiers
    序列化存档之备忘脚本
    09 Spring Cloud的集群保护框架Hystrix
    08 在Spring Cloud中使用Feign
    07 REST客户端
    06 RestTemplate负载均衡
    05 第一个Ribbon程序
    04 Ribbon介绍
    01 在IDEA的同一目录下创建多个项目
    03 Eureka集群的搭建
  • 原文地址:https://www.cnblogs.com/ilanni/p/3930639.html
Copyright © 2011-2022 走看看