烂泥:KVM使用裸设备配置虚拟机

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

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

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

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

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

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

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

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

烂泥:KVM使用裸设备配置虚拟机

烂泥:KVM使用裸设备配置虚拟机

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

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

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

lvcreate -L 30G -n luoshebei vg1

烂泥:KVM使用裸设备配置虚拟机

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

烂泥:KVM使用裸设备配置虚拟机

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

其中有几处一定要注意:

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

烂泥:KVM使用裸设备配置虚拟机

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

烂泥:KVM使用裸设备配置虚拟机

烂泥:KVM使用裸设备配置虚拟机

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

烂泥:KVM使用裸设备配置虚拟机

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

烂泥:KVM使用裸设备配置虚拟机

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

烂泥:KVM使用裸设备配置虚拟机

然后启动虚拟机,如下:

烂泥:KVM使用裸设备配置虚拟机

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

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

上一篇:TypeScript 之 More on Functions


下一篇:js实现数字验证码(1.0)