存储配置和启动顺序

QEMU提供了对多种块存储设备的模拟,包括IDE设备、SCSI设备、软盘、U盘、virtio磁盘等,而且对设备的启动顺序提供了灵活的配置。

1. 存储的基本配置选项

在qemu-kvm命令行工具中,主要有如下的参数来配置客户机的存储。

1-hda  file

file镜像文件作为客户机中的第一个IDE设备(序号0)

在客户机中表现为:

/dev/hda设备(若客户机中使用PIIX_IDE驱动)

或/dev/sda设备(若客户机中使用ATA_PIIX驱动)

如果不指定-hda或-hdb等参数,那么在前面一些例子中提到的

"qemu-system-x86_64  /root/kvm_demo/rbel6u3.img"就与加上-hda参数来指定镜像文件的效果一样的

另外,也可以将宿主机中的一个硬盘(如/dev/sdb)作为-hdafile参数来使用,从而让整个硬盘模拟为客户机的第一个IDE设备

注意:如果file文件的文件名中包含有英文逗号(","),则在书写file时应该使用两个逗号(因为逗号是qemu-kvm命令行中的特殊间隔符,例如用于"-cpu qemu64,+vmx"这样的选项),如使用"  -hda my,,file  "将my,file这个文件作为客户机的第一个IDE设备。

( 2 ) -hdb  file

将file作为客户机中的第二个IDE设备(序号1),在客户机中表现为/dev/hdb或/dev/sdb设备。

( 3 ) -hdc  file

将file作为客户机中的第三个IDE设备(序号2),在客户机中表现为/dev/hdc或/dev/sdc设备。

( 4 ) -hdd  file

将file 作为客户机中的第四个IDE设备(序号3),在客户机中表现为/dev/hdd或/dev/sdd设备。

( 5 ) -fda  file

file作为客户机中的第一个软盘设备(序号0), 在客户机中表现为/dev/fd0设备也可以将宿主机中的软驱(/dev/fd0) 作为-fdafile来使用

(6) -fdb  file

将file作为客户机中的第二个软盘设备(序号1),在客户机中表现为/dev/fdl设备。

(7) -cdrom  file

file作为客户机中的光盘CD-ROM, 在客户机中通常表现为/dev/cdrom设备也可以将宿主机中的光驱(/dev/cdrom)作为-cdromfile来使用。

注意:-cdrom参数不能和-hdc参数同时使用,因为"-cdrom"就是客户机中的第三个IDE设备。

在通过物理光驱中的光盘或磁盘中ISO镜像文件安装客户机操作系统时一般会使用-cdrom参数。

(8) -mtdblock  file

使用file文件作为客户机自带的一个Flash存储器(通常说的闪存)。

(9) -sd  file

使用file文件作为客户机中的SD卡(Secure Digital Card )。

( 10 ) -pflash  file

使用file文件作为客户机的并行Flash存储器(Parallel Flash Memory )。

2. 详细配置存储驱动器的-drive参数

较新版本的qemu-kvm还提供了"-driver" 参数来详细定义一个存储驱动器,该参数的具体形式如下:

-drive  option[,option[,option/,...])]

为客户机定义一个新的驱动器,它有如下一些选项:

( 1) file=file

使用file文件作为镜像文件加载到客户机的驱动器中。

(2) if=interface

指定驱动器使用的接口类型,可用的类型有:ide、scsi、sd、mtd、floopy、pflash、virtio,等等。其中,除了virtio、scsi之外,其余几种类型都在本节的前面介绍过了。virtio将在第5章中介绍,而关于scsi类型的接口,QEMU目前还不支持从SCSI类型设备启动客户机系统,Launchpad上也有一个bug记录着这个问题。

(3) bus=bus,unit=unit

设置驱动器在客户机中的总线编号和单元编号

(4) index=index

设置在同一种接口的驱动器中的索引编号

(5) media=media

设置驱动器中媒介的类型,其值为"disk"或"cdrom"。

(6) snapshot=snapshot

设置是否启用"-snapshot"选项,其可选值为"on""offsnapshot启用时,QEMU不会将磁盘数据的更改写回到镜像文件中,而是写到临时文件中,当然可以在QEMU monitor中使用"commit"命令强制将磁盘数据的更改保存回镜像文件中

(7) cache=cache

设置宿主机对块设备数据(包括文件或一个磁盘)访问中的cache情况,可以设置为"none"("off'')"writeback""writethrough"等。

默认值是"writethrough",即“直写模式”它是在调用write写入数据的同时将数据写入磁盘缓存(disk cache)和后端块设备(block device),其优点是操作简单,其缺点是写入数据速度较慢。

"writeback"即“回写模式”:在调用write写入数据时只将数据写入到磁盘缓存中即返回,只有在数据被换出缓存时才将修改的数据写到后端存储中,其优点是写入数据速度较快,其缺点是—旦更新数据在写入后端存储之前遇到系统掉电,数据会无法恢复

"writethrough""writeback"在读取数据时都尽量使用缓存若设置了"cache=none"关闭缓存的方式,QEMU将在调用open系统调用打开镜像文件时使用"O_DIRECT"的标识,所以其读写数据都是绕过缓存直接从块设备中读写的

一些块设备文件(如后面即将介绍的qcow2格式文件)在"writethrough" 模式下性能表现很差,如果这时对性能要求比正确性更高,建议使用"writeback"模式

(8) aio=aio

选择异步IO(Asynchronous IO)的方式,有"threads""native"两个值可选
默认值为"threads",即让一个线程池去处理异步IO
"native"只适用于"cache=none"的情况,就是使用Linux原生的AIO

(9) format=format

指定使用的磁盘格式、在默认情况下是QEMU自动检测磁盘格式的。

(10) serial=serial

指定分配给设备的序列号

(11) addr=addr

分配给驱动器控制器的PCI地址,该选项只有在使用virtio接口时才适用。

(12) id=name

设置该驱动器的ID,这个ID可以在QEMU monitor中用"info  block"看到。

(13) readonly=on|off

设置该驱动器是否只读

3. 配置客户机启动顺序的参数

前面介绍了各种存储设备的使用参数,它们在客户机中的启动顺序可以用如下的参数设定:

-boot  [order=drives]
[,once=drives ] [,menu=on|off] [,splash=splashfile] [,splash-time=sp-time]

在QEMU模拟的x86 PC平台中:

order=

"a""b"分别表示第一和第二个软驱,

"c"表示第一个硬盘,

"d"表示CD-ROM光驱,

"n"表示从网络启动。

其中,默认从硬盘启动,要从光盘启动可以设置"-boot  order=d"

once=

"once"表示设置第一次启动的启动顺序(即仅生效一次),在系统重启(reboot)后该设置失效,如"-boot  once=d"设置表示本次从光盘启动,但系统重启后从默认的硬盘启动。

memu=on|off''

用于设置交互式的启动菜单选项(前提是使用的客户机BIOS支持),它的默认值是"menu=off'', 表示不开启交互式的启动菜单选择

"splash=splashfile" 和"splash-time=sp-time"

选项都是在"menu=on"时才有效,将名为splashfile的图片作为logo传递给BIOS来显示,而sp-timeBIOS显示splash图片的时间,其单位是毫秒(ms)

图4-5展示了在使用"-boot  order=dc,menu=on"设置后,在客户机启动窗口中F12进入的启动菜单。

存储配置的示例

lspci | grep IDE

由于这个客户机使用的是piix_ide驱动,因此看到的是/dev/hda这样的磁盘

而对于同样一个磁盘,如果客户机操作系统使用的是ata_piix驱动(此时无piix_ide驱动),则看到的是/dev/sda这样的磁盘,效果如下:

KVM中存储的配置的更多相关文章

  1. 网卡配置和DNS配置,手动挂在nas存储的共享目录,网络相关其它操作命令,修改防火墙中的端口配置,resolv.conf配置详细介绍和网卡信息配置详细介绍

    1.   网卡配置和DNS配置 若想服务器能够发邮件,需要让部署的服务器能够访问到外网环境.若部署的服务器访问不到外网,通过ping www.baidu.com的方式执行的时候,会出现以下问题: &q ...

  2. asp.net中web.config配置节点大全详解

    最近网上找了一些关于Web.config配置节点的文章,发现很多都写的都比较零散,而且很少有说明各个配置节点的作用和用法.搜索了一下发现有一篇写的不错,这里引用一下 原文地址 http://www.c ...

  3. 深入理解php中的ini配置(1)

    这篇文章不会详细叙述某个ini配置项的用途,这些在手册上已经讲解的面面俱到.我只是想从某个特定的角度去挖掘php的实现机制,会涉及到一些php内核方面的知识:-) 使用php的同学都知道php.ini ...

  4. .net中SessionState相关配置

      web.config关于sessionState节点的配置方案,sessionState有四种模式:off,inProc,StateServer,SqlServer. 1.off模式 从字面上就可 ...

  5. ASP.NET,web.config 中SessionState的配置

    web Form 网页是基于HTTP的,它们没有状态, 这意味着它们不知道所有的请求是否来自同一台客户端计算机,网页是受到了破坏,以及是否得到了刷新,这样就可能造成信息的丢失. 于是, 状态管理就成了 ...

  6. asp.net中web.config配置节点大全详解【转】

    web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找. (2)如果当前页面所在目录下不存在web ...

  7. 在配置文件(.settings、.config)中存储自定义对象

    原文:在配置文件(.settings..config)中存储自定义对象 引言 我前面曾写过一篇<使用配置文件(.settings..config)存储应用程序配置>,我在其中指出“sett ...

  8. JavaEE开发之SpringMVC中的路由配置及参数传递详解

    在之前我们使用Swift的Perfect框架来开发服务端程序时,聊到了Perfect中的路由配置.而在SpringMVC中的路由配置与其也是大同小异的.说到路由,其实就是将URL映射到Java的具体类 ...

  9. Ocelot中文文档-配置

    这里有一个配置的列子.其中有两个配置块.一个ReRoutes数组和一个GlobalConfiguration.ReRoutes配置块是一些告诉Ocelot如何处理上游请求的对象.Globalconfi ...

随机推荐

  1. python __builtins__ staticmethod类 (64)

    64.'staticmethod', 返回静态方法 class staticmethod(object) | staticmethod(function) -> method | | Conve ...

  2. 如何使用webstorm去操作git

    0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...

  3. 安全性测试入门 (三):CSRF 跨站请求伪造攻击和防御

    本篇继续对于安全性测试话题,结合DVWA进行研习. CSRF(Cross-site request forgery):跨站请求伪造 1. 跨站请求伪造攻击 CSRF则通过伪装成受信任用户的请求来利用受 ...

  4. 如何让Android微博个人详情页滚动到顶部

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/103 个人详情页滑动到顶部 最近产品提了个新需求,需要实现 ...

  5. 【Ajax】接收后台数据在html页面显示

    Java代码 PrintWriter out=response.getWriter(); //向客户端发送字符数据 response.setContentType("text/text&qu ...

  6. Android Studio无法预览xml布局之解决方法(两种)

    学习安卓程序开发,用的Android Studio,发现怎么更改xml代码都没有想要的效果.如图 代码如下: <?xml version="1.0" encoding=&qu ...

  7. Codeforces Round #321 (Div. 2) A, B, C, D, E

    580A. Kefa and First Steps 题目链接: A. Kefa and First Steps 题意描述: 给出一个序列,求最长不降连续子序列多长? 解题思路: 水题,签到 代码: ...

  8. Educational Codeforces Round 18 A

    Description There are n cities situated along the main road of Berland. Cities are represented by th ...

  9. 状态压缩DP SRM 667 Div1 OrderOfOperations 250

    Problem Statement      Cat Noku has just finished writing his first computer program. Noku's compute ...

  10. 线段树+离散化 POJ 2528 Mayor's posters

    题目传送门 题意:在一面墙上贴海报,有先后顺序,问最后有多少张不同的海报(指的是没被覆盖或者只是部分覆盖的海报) 分析:这题数据范围很大,直接搞超时+超内存,需要离散化:离散化简单的来说就是只取我们需 ...