kvm客户机存储方式
前面介绍了存储的配置和qemu-img工具来管理镜像,在QEMU/KVM中,客户机镜像文件可以由很多种方式来构建,其中几种如下:
1) 本地存储的客户机镜像文件。
2) 物理磁盘或磁盘分区。
3) LVM(Logical Volume Management ), 逻辑分区。
4 ) NFS(Network File System), 网络文件系统。
5) iSCSI(Internet Small Computer System Interface ), 基于Internet的小型计算机系统接口。
6) 本地或光纤通道连接的LUN(Logical Unit Number)。
7) GFS2(Global File System 2)。
本地存储的客户机镜像文件是最常用的一种方式:
它有预分配空间的raw文件、稀疏文件类型的raw文件、qcow2等多种格式。
预分配空间的raw文件不随镜像的使用而增长,而是在创建之初即完全占用磁盘空间,其消耗较多磁盘空间,不过运行效率较高。
稀疏文件(包括raw和qcow2格式)在一开始时并不占用多的磁盘空间,而是随实际写入数据才占用物理磁盘,比较灵活且节省磁盘空间,不过其在第一次写入数据时需要额外在宿主机中分配空间,因此其效率较低一些。
而qcow2具有加密的安全性,所以在对磁盘IO性能要求不是很高时建议选择qcow2类型的镜像文件。
不仅一个文件可以分配给客户机作为镜像文件系统,且一个完整的磁盘或LVM分区也可以作为镜像分配给客户机使用。不过,磁盘分区、LVM分区由于没有磁盘的MBR引导记录,不能作为客户机的启动镜像,只能作为客户机附属的非启动块设备。
一般来说,磁盘或LVM分区会有较好的性能,读写的延迟较低、吞吐量较高。
不过为了防止客户机破坏物理磁盘分区,一般不将整个磁盘作为镜像由客户机使用。使用磁盘或LVM分区的劣势在于管理和移动性方面都不如镜像文件方便,而且不方便通过网络远程使用。
NFS作为使用非常广泛的分布式文件系统,可以使客户端挂载远程NFS服务器中的共享目录,然后像使用本地文件系统一样使用NFS远程文件系统。
如果NFS服务器端向客户端开放了读写的权限,那么可以直接挂载NFS,然后使用其中的镜像文件作为客户启动磁盘。
如果NFS服务器端没有向客户端开放写权限,也可以在NFS客户端系统将远程NFS系统上的镜像文件作为后端镜像(backing file),以建立qcow2格式Copy-On-Write的本地镜像文件供客户机使用。这样做还有一个好处是保持NFS服务器上的镜像一致性、完整性,从而可以供给多个客户端同时使用。而且由于NFS的共享特性,因此NFS方式为客户机的动态迁移提供了非常方便的共享存储系统。
下面的命令行演示了NFS作为后端镜像的应用,在本地用qcow2格式镜像文件启动一个客户机。
在宿主机中,挂载NFS文件系统、建立qcow2镜像,然后启动客户机,如下所示:
在客户机中,查看磁盘文件系统,指令如下:
fdisk -1
iSCSl是一套基于IP协议的网络存储标准,真正的物理存储放在初始端(initiator),而使用iSCSI磁盘的是目标端(target),它们之间实现了SCSI标准的命令,让目标端使用起来就和使用本地的SCSI硬盘一样,只是数据是在网络上进行读写操作的。
光纤通道(Fibre Channel)也可以实现与iSCSI类似的存储区域网络(storage area network,SAN),不过它需要光纤作为特殊的网络媒介。
GFS2是由Redhat公司主导开发的主要给Linux计算机集群使用的共享磁盘文件系统,一般在Redhat的RHEL系列系统中有较多使用,它也可被用做QEMU/KVM的磁盘存储系统。
如果需要获得更高性能的磁盘IO,可以使用半虚拟化的virtio作为磁盘驱动程序
kvm客户机存储方式的更多相关文章
- kvm 客户机系统的代码是如何运行的
一个普通的 Linux 内核有两种执行模式:内核模式(Kenerl)和用户模式 (User).为了支持带有虚拟化功能的 CPU,KVM 向 Linux 内核增加了第三种模式即客户机模式(Guest), ...
- KVM客户机使用主机USB设备
有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持 -usbdevice devname 为客户机增加usb设备,devn ...
- kvm 客户机加载移动硬盘
1,宿主机安装usbutils yum install usbutils -y 2,插入U盘或者移动硬盘并查看 [root@localhost ~]# lsusb Bus Device : ID 10 ...
- 解决KVM中宿主机通过console无法连接客户机
转自https://www.linuxidc.com/Linux/2014-10/107891.htm 一.问题描述: KVM中宿主机通过console无法连接客户机,卡在这里不动了. # virsh ...
- 基于RDP瘦客户机协议的简要说明
**************************************************************************************************** ...
- kvm虚拟机配置被克隆rhel6客户机的网卡
例子:配置被克隆rhel6客户机的网卡 rhel6的网卡是通过udev规则来进行命名每个网卡都有不一样的macudev规则是根据网卡的mac来进行识别克隆出来的客户机,为了遵守每个网卡的mac都是全球 ...
- KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- Docker存储方式选型建议
转自:https://segmentfault.com/a/1190000007168476 第一部分 问题诊断 事情从一次实施项目说起,我们需要帮助客户将他们的应用容器化并在数人云平台上发布此应用. ...
- KVM(八)使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机
1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移.系统整理迁移,是将系统上所有软件包括操作系统完全复制到另一个物理机硬件机器上.虚拟化环境中的迁移, ...
随机推荐
- sql server编写通用脚本自动检查两个不同服务器的新旧数据库的表结构差异
问题:工作过程中,不管是什么项目,伴随着项目不断升级版本,对应的项目数据库业务版本也不断升级,数据库出现新增表.修改表.删除表.新增字段.修改字段.删除字段等变化,如果人工检查,数据库表和字段比较多的 ...
- hdu 1171 Big Event in HDU【生成函数】
按套路列生成函数式子然后暴力乘,这样复杂度看起来非常大,但是可以动态维护最大值,这样就是O(能过)的了 仔细想想这个多项式暴力乘理解成背包dp也行? #include<iostream> ...
- 修改Cloudera Manager 管理机器的IP
原本在3台机器中部署了Cloudera CDH4.8的集群环境,运行状况良好,后来由于机房搬迁,导致那3台机器的ip地址被改变(hostname 没有变化). 再次启动Cloudera-scm-ser ...
- P1226神经网络
提交了7次,看了无数题解,要死啊~~~.(无限吐槽这道题...) 据说是Toposort,我其实也不是很清楚,反正BFS就可以过:写题之前先把题看懂: 根据公式,因为入度为零的点不会被传递,所以阈值是 ...
- noi.ac 邀请赛1 By cellur925
A. array 考场:上来就想暴力,首先第一个子任务肯定没问题,怎么搞都行.然后第二个子任务用个数组记下新修的值就行了.第三个子任务用一下等差数列求和公式帮助求解,每次都重新算(因为每次改变全部元素 ...
- iOS NavigationBar 导航栏自定义
1. 设置导航栏NavigationBar的背景颜色: a) setBarTintColor : 设置NagivationBar的颜色 也可以用 : [[UINavigationBar appear ...
- Oracle之Char VarChar VarChar2
Oracle之Char VarChar VarChar2 在Oracle数据库中,字符类型有Char.VarChar和VarChar2三种类型,但不大清楚各自区别在哪儿,平时基本上就是用VarChar ...
- Qt样式表之一:Qt样式表和盒子模型介绍
一.Qt样式表介绍 Qt样式表是一个可以自定义部件外观的十分强大的机制,可以用来美化部件.Qt样式表的概念.术语和语法都受到了HTML的层叠样式表(Cascading Style Sheets, CS ...
- AtCoder Grand Contest 003 D - Anticube
题目传送门:https://agc003.contest.atcoder.jp/tasks/agc003_d 题目大意: 给定\(n\)个数\(s_i\),要求从中选出尽可能多的数,满足任意两个数之积 ...
- iOS中自定义UITableViewCell的用法
1.先创建一个View继承 UITableViewCell并使用xib快速建立模型. #import <UIKit/UIKit.h> #import "Score.h" ...