技术流ken

运维拯救世界

kvm虚拟化存储管理(3)–技术流ken

一、KVM 存储虚拟化介绍

 

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

Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种型;

Volume 是在 Storage Pool 中划分出的一块空间,宿主机将 Volume 分配给虚拟机,Volume 在虚拟机中看到的就是一块硬盘。

 

二、目录类型的 Storage Pool

 

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

Volume 是该目录下面的文件了,一个文件就是一个 Volume。

 

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

[root@ken1 ~]# cd /etc/libvirt/storage/
[root@ken1 storage]# ll
total 8
drwxr-xr-x 2 root root  40 Aug 16 17:03 autostart
-rw------- 1 root root 538 Aug 16 15:03 default.xml
-rw------- 1 root root 511 Aug 16 17:03 tmp.xml

 

默认有一个 default.xml,其内容如下:注意:Storage Pool 的类型是 “dir”,目录的路径就是/var/lib/libvirt/images

 

三、创建Storage Pool

 

第一步:在 virt-manager 中打开一台虚拟机,为其添加硬盘,执行如下:

 

第二步:选择管理,弹出如下对话框,点击左侧“+”后弹出添加新存储池,随意起一个名称,点击“前进”

 

第三步:在“目标路径”中写入准备新建存储池的路径,点击“完成”:

 

第四步:之后新建出一个名为kem-storage的存储池,其路径为/kvm-storag

在根下创建出来了相应的目录

[root@ken1 storage]# ls /
1    boot  disk1  home         lib    media  opt   root  sbin  sys  usr
bin  dev   etc    kvm-storage  lib64  mnt    proc  run   srv   tmp  var

 

 

第五步:删除存储池:首先停止存储池,再进行删除

 

四、虚机添加volume

 

第一步:上一节我们创建了路径为/kvm-storage的Storage-Pool,在此Pool中添加volume,取名并设置大小:

 

第二步:点击“完成”后,在kvm-storage中新建了一个volume的文件,点击“选择卷”:

 

第三步:点击“完成”后,虚机中多了一个“磁盘2”

 

现在只需要进行格式化挂载即可使用:vdb放在了/dev/目录之下

 

进行格式化挂载:

 

 

以上创建的卷 volume01.qcow2 是一个文件,路径在/kvm-storage。使用文件做 Volume 有很多优点:存储方便、移植性好、可复制。

KVM 支持多种 Volume 文件格式:
raw:是默认格式,即原始磁盘镜像格式,移植性好,性能好,但大小固定,不能节省磁盘空间。
qcow2:是推荐使用的格式,cow 表示 copy on write,能够节省磁盘空间,支持 AES 加密,支持 zlib 压缩,支持多快照,功能很多。
vmdk:是 VMWare 的虚拟磁盘格式,也就是说 VMWare 虚机可以直接在 KVM上 运行。

发表评论

电子邮件地址不会被公开。