KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的。

Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种类型,后面会详细讨论。Volume 是在 Storage Pool 中划分出的一块空间,宿主机将 Volume 分配给虚拟机,Volume 在虚拟机中看到的就是一块硬盘。

下面我们学习不同类型的 Storage Pool

目录类型的 Storage Pool

文件目录是最常用的 Storage Pool 类型。
KVM 将宿主机目录 /var/lib/libvirt/images/ 作为默认的 Storage Pool。

那么 Volume 是什么呢?
答案就是该目录下面的文件了,一个文件就是一个 Volume。

大家是否还记得我们之前创建第一个虚机 kvm1 的时候,就是将镜像文件 cirros-0.3.3-x8664-disk.img 放到了这个目录下。文件 cirros-0.3.3-x8664-disk.img 也就是Volume,对于 kvm1 来说,就是它的启动磁盘了。

那 KVM 是怎么知道要把 /var/lib/libvirt/images 这个目录当做默认 Storage Pool 的呢?
实际上 KVM 所有可以使用的 Storage Pool 都定义在宿主机的 /etc/libvirt/storage 目录下,每个 Pool 一个 xml 文件,默认有一个 default.xml,其内容如下:

注意:Storage Pool 的类型是 “dir”,目录的路径就是 /var/lib/libvirt/images

下面我们为虚机 kvm1 添加一个新的磁盘,看看有什么变化。
在 virt-manager 中打开 kvm1 的配置页面,右键添加新硬件

在默认 Pool 中创建一个 8G 的卷。

点击 “Finish”,可以看到新磁盘的信息。

在 /var/lib/libvirt/images/ 下多了一个 8G 的文件 kvm1.img

root@ubuntu:~# ls -l /var/lib/libvirt/images/        
total 14044
-rw-r--r-- 1 root root   14417920 Sep  4 11:24 cirros-0.3.3-x86_64-disk.img
-rw------- 1 root root 8589934592 Sep  4 21:39 kvm1.img

使用文件做 Volume 有很多优点:存储方便、移植性好、可复制、可远程访问。
前面几个优点都很好理解,这里对“可远程访问”多解释一下。

远程访问的意思是镜像文件不一定都放置到宿主机本地文件系统中,也可以存储在通过网络连接的远程文件系统,比如 NFS,或者是分布式文件系统中,比如 GlusterFS。

这样镜像文件就可以在多个宿主机之间共享,便于虚机在不同宿主机之间做 Live Migration;如果是分布式文件系统,多副本的特性还可以保证镜像文件的高可用。

KVM 支持多种 Volume 文件格式,在添加 Volume 时可以选择

raw 是默认格式,即原始磁盘镜像格式,移植性好,性能好,但大小固定,不能节省磁盘空间。

qcow2 是推荐使用的格式,cow 表示 copy on write,能够节省磁盘空间,支持 AES 加密,支持 zlib 压缩,支持多快照,功能很多。

vmdk 是 VMWare 的虚拟磁盘格式,也就是说 VMWare 虚机可以直接在 KVM上 运行。

下一节介绍 LVM 类型的 Storage Pool。

KVM 存储虚拟化的更多相关文章

  1. KVM 存储虚拟化 - 每天5分钟玩转 OpenStack(7)

    KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的. Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种类型,后面会详细讨论.Volume 是 ...

  2. KVM存储虚拟化---玩转openstack

    KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的. Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种类型,后面会详细讨论.Volume 是 ...

  3. O007、KVM 存储虚拟化

    参考https://www.cnblogs.com/CloudMan6/p/5273283.html   KVM 的存储虚拟化是通过存储池(Storage Pool) 和 卷(Volume)来管理的. ...

  4. 基于KVM的虚拟化研究及应用

    引言 虚拟化技术是IBM在20世纪70年代首先应用在IBM/370大型机上,这项技术极大地提高了大型机资源利用率.随着软硬件技术的迅速发展,这项属于大型机及专利的技术开始在普通X86计算机上应用并成为 ...

  5. KVM的虚拟化研究及应用

    引言 虚拟化技术是IBM在20世纪70年代首先应用在IBM/370大型机上,这项技术极大地提高了大型机资源利用率.随着软硬件技术的迅速发展,这项属于大型机及专利的技术开始在普通X86计算机上应用并成为 ...

  6. Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析

    Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析 2018年04月03日 13:51:55 阅读数:936   XEN 与 VMware ESXi,Hyper-V 以及 K ...

  7. KVM 内存虚拟化

    内存虚拟化的概念     除了 CPU 虚拟化,另一个关键是内存虚拟化,通过内存虚拟化共享物理系统内存,动态分配给虚拟机.虚拟机的内存虚拟化很象现在的操作系统支持的虚拟内存方式,应用程序看到邻近的内存 ...

  8. KVM中断虚拟化浅析

    2017-08-24 今天咱们聊聊KVM中断虚拟化,虚拟机的中断源大致有两种方式,来自于用户空间qemu和来自于KVM内部. 中断虚拟化起始关键在于对中断控制器的虚拟化,中断控制器目前主要有APIC, ...

  9. VMware/KVM/OpenStack虚拟化之网络模式总结

    一.VMware虚拟机网络模式 Vmware虚拟机有三种网络模式:Bridged (桥接模式).NAT (网络地址转换模式).Host-Only (仅主机模式).下面分别总结下这三种网络模式: 1. ...

随机推荐

  1. HDU 4341 Gold miner (分组背包)

    先把线按照距离原点的距离排序,然后用叉积把在同一条直线上的点放在一起, 把在同一条线上的点中的前i个点当成一个点就转化成了分组背包. 写if(kas++) putchar('\n') 居然PE了,PE ...

  2. UVA116 Unidirectional TSP 单向TSP

    分阶段的DAG,注意字典序的处理和路径的保存. 定义状态d[i][j]为从i,j 出发到最后一列的最小花费,转移的时候只有三种,向上,向下,或平移. #include<bits/stdc++.h ...

  3. jQuery中ready方法的实现

    https://blog.csdn.net/major_zhang/article/details/80146674 先普及一下jquery.ready()和window.onload,window. ...

  4. chrom浏览器-F12使用方法二

    文摘摘自:https://blog.csdn.net/run65536/article/details/80568543 提示:右键点击图片选择在新窗口或新标签页中打开可查看大图. 一.Element ...

  5. QSting, QChar, char等的转换

    1,QChar 转换char: char QChar::toLatin1();char QChar::toAscii(); 2,Char转QChar: QChar(char ch); 3,QStrin ...

  6. Vue-Quill-Editor 富文本编辑器的使用

    步骤如下: 1.下载Vue-Quill-Editor npm install vue-quill-editor --save 2.下载quill(Vue-Quill-Editor需要依赖) npm i ...

  7. 关于js作用域问题详解

    执行上下文 函数表达式和函数声明 1. console.log(a); // ReferenceError: a is not defined // ReferenceError(引用错误)对象表明一 ...

  8. ios之自定义UISwitch

    系统自带的UISwitch是这样的: 既不能写字,也不能改颜色,于是在网上找到了这么一个自定义的Switch按钮,具体出处找不见了.记录一下,怕以后找不见了. 先看下效果图: 按钮的样式很多,可以文字 ...

  9. javascript基础知识 (八) BOM学习笔记

    一.什么是BOM      BOM(Browser Object Model)即浏览器对象模型.      BOM提供了独立于内容 而与浏览器窗口进行交互的对象:      由于BOM主要用于管理窗口 ...

  10. [LUOGU] P1049 装箱问题

    题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余 ...