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

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

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

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

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

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

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

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

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

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

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

lvcreate -L 30G -n luoshebei vg1

目前逻辑卷/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参数,这个是用来指定硬盘的。

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

其中有几处一定要注意:

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

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

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

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

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

然后启动虚拟机,如下:

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

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

烂泥:KVM使用裸设备配置虚拟机的更多相关文章

  1. kvm上的Linux虚拟机使用virtio磁盘

    kvm上的Linux虚拟机使用virtio磁盘 系统:centos6.6  64位 网上的文章比较少,怎麽将Linux虚拟机的磁盘改为使用virtio磁盘 因为centos6或以上系统已经包含了vir ...

  2. kvm中重命名虚拟机

    kvm中重命名虚拟机 1.查看虚拟机 [root@linux ~]# virsh list --all Id Name State ---------------------------------- ...

  3. 通过 KVM+virt-manager配置双屏虚拟机(两套键盘。鼠标)

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  4. 搭建KVM环境——06 创建虚拟机

    若转载请于明显处标明出处:https://www.cnblogs.com/kelamoyujuzhen/p/9071181.html 虚拟机磁盘格式 创建一个raw格式的虚拟机磁盘 [root@Cen ...

  5. KVM | centos 安装 window 虚拟机

    KVM | centos 安装 window 虚拟机 环境: CENTOS 7.3 1. 准备 1.1 检查是否支持虚拟化 cat /proc/cpuinfo | egrep 'vmx|svm' 要求 ...

  6. Linux的桌面虚拟化技术KVM(四)——虚拟机镜像格式对比与转换

    Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机 Linux的桌面虚拟化技术KVM(二)——远程桌面管理 Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照 (1).常用镜像格 ...

  7. 2.kvm创建第一个虚拟机

    1.创建一个镜像 [root@kvm ~]# qemu-img create -f raw /opt/Centos_6.6_x86.raw 5G Formatting '/opt/Centos_6.6 ...

  8. KVM上如何让虚拟机支持虚拟化(kvm虚拟化的嵌套)

    http://blog.csdn.net/swimming_in_it_/article/details/53320141http://blog.csdn.net/wickedglory/articl ...

  9. 一起KVM环境下windows7虚拟机异常死机(BSOD)的问题解决

    先说一下环境: 一.硬件 8台服务器做的超融合架构,软件存储池, 每台服务器是96G内存,两颗Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz,32线程. 每台服务器是 ...

随机推荐

  1. Diy页面服务端渲染解决方案

    1. 问题由来 在移动互联网电商领域,运营每天需要搭建多个促销页面来吸引用户去点击去购买,一开始程序员临时写个新页面去实现,可这些页面可以用几次就不用了,每次创建新页面去实现费时费力,而且,电商的运营 ...

  2. Python入门笔记(24):Python面向对象(1)速成

    一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'def ...

  3. sencha 报错问题汇总

    store的url必填 否则报错:Uncaught TypeError: Cannot read property 'indexOf' of undefined ext-all.js store必须在 ...

  4. Codeforces Round #346 (Div. 2)---E. New Reform--- 并查集(或连通图)

    Codeforces Round #346 (Div. 2)---E. New Reform E. New Reform time limit per test 1 second memory lim ...

  5. php中的常用数组函数(三)(获取数组交集的函数们 array_intersect()、array_intersect_key()、array_intersect_assoc()、array_intersect_uassoc()、array_intersect_ukey())

    这5个获取交集的函数 有 5个对应的获取差集的函数.我是链接. array_intersect($arr1, $arr2); //获得数组同键值的交集 array_intersect_key($arr ...

  6. 数组json格式的字符串 转 list<Bean>

    1.  字符串形式: [ { "userid": "admin", "name": "admin", "pas ...

  7. 利用jquery实现网页禁止鼠标右键、禁止复制

    很多时候,网站的内容辛苦写法被轻松复制,为了不让自己的劳动成果外流,可以利用禁止鼠标右键等方式保护自己的原创内容! 方式1:禁止鼠标右键操作 <script src="http://l ...

  8. ahjesus sql2005+游标示例

    DECLARE @TypeId INT, @Price1 FLOAT, @Original FLOAT DECLARE my_cursor CURSOR SCROLL FOR SELECT TypeI ...

  9. CSS3属性(二)

    <html> <head> <title>css2</title> <style type="text/css"> di ...

  10. Microsoft Dynamics CRM 2011/2013 JS操作集锦

    1.Xrm.Page.context用户ID:getUserId()用户角色:getUserRoles()用户语言:getUserLcid()组织名称:getOrgUniqueName()组织语言:g ...