查看: 685|回复: 2

[教程] kvm可用存储类型简介(译)

[复制链接]

10

主题

0

回帖

30

积分

技术1级

金币
20
阅读权限
10
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-11
QQ
发表于 2012-2-2 22:55:02 | 显示全部楼层 |阅读模式
虚拟磁盘文件
可以使用LVM(Logical Volume Manager)创建存储池来管理KVM的存储,创建一个KVM的虚拟机的时候,默认使用虚拟磁盘文件作为后端存储。如果使用这种类型的配置,虚拟机可见到的是一块实际的硬盘,但实际上使用的是一个虚拟磁盘文件所表示的一个硬盘。这里包含了一层额外的文件系统层,而且这一层文件系统层也会导致系统变慢。
当然,虚拟磁盘文件也有它的好处,虚拟磁盘文件很容易就能被其他的KVM虚拟机使用,但是如果你想优化KVM的虚拟化性能,还是需要考虑其他的KVM存储。
基于文件系统的存储
部署KVM主机的时候,你可以选择文件系统目录(dir)或者格式化的块设备(fs)作为KVM的存储。默认是使用dir,KVM会在选择的本地文件系统目录中创建磁盘映像文件。
如果使用fs选项,需要提供存储磁盘映像文件的格式化文件系统的名字。此选项和目录类型的存储最大的区别在于,格式化磁盘映像没有挂载在一个指定的路径下。
使用上述的任意一个选项,都可以使用本地文件系统或者在物理上是基于SAN的文件系统。相比于SAN,本地存储期铜不会同时被多个主机并发的访问。
另外一种基于文件的磁盘存储方式是netfs,只需要你提供一个网络文件系统的名字即可,比如说挂载的Samba文件系统。使用这个方式作为KVM的存储是比较方便的,因为这中方式能比较方便的从另外一台服务器上去访问,同样也允许你在多台主机上去访问同一个磁盘文件。
上述的各种类型的基于文件系统的KVM存储方式都存在一些缺点:文件系统。由于KVM的虚拟机对于硬盘的操作都不是直接写入到KVM的存储介质,而是在宿主主机上的文件系统。这就意味这访问文件系统的时候都需要经过一个不必要经过的中间访问层,这通常会降低性能。
所以,如果想要追求KVM虚拟化的性能,基于设备的存储可能是更好的选择。
基于设备的存储
另一种方式是使用基于设备的存储。有四种方式可以提供此类型的物理存储设备访问:disk、iSCSI、SCSI以及logical。disk允许你直接对磁盘进行读写。iSCSI和SCSI方式提供了一种替代和原有方案具有可比性的方式对磁盘进行访问。这种类型的KVM存储方式的好处在于:你可以使用持久化的命名而不依赖于宿主主机发现设备的顺序。
这些访问磁盘的方式也存在缺点:不灵活,比较僵化。如果使用此种类型的存储,那么基本上没有办法修改虚拟磁盘的大小,或者针对虚拟机进行快照功能。
LVM(Logical Volume Manager)是KVM存储方式中,提升灵活性的最佳方式。一个好处是LVM允许你使用快照功能,另外一个好处是只能作为KVM虚拟化的一个部分,否则无法使用。
LVM允许将存储放置到一个存储卷组中,基于存储卷组,可以很容易的创建一个逻辑的卷。卷组是抽象的物理磁盘设备,所以当你的可用磁盘空间不足的时候,你可以新添加一个设备到卷组中,这个操作实际上增加了可用的直接存储空间到逻辑卷。使用LVM使得设备空间分配更灵活,同时也使得更容易的添加和删除存储。
最后LVM能比较好的工作在单机场景和多主机场景中。如果需要多主机同时访问,你只需要基于SAN创建逻辑的卷即可。如果你使用LVM集群,你可以很容易的配置所有的主机同时访问逻辑卷。
KVM存储池的使用
为了方便KVM存储的管理,可以创建存储池。在主机层次创建存储池可以更容易的访问KVM存储设备。使用KVM存储池也可以将实现预备好的存储管理器来,以供访问。这种策略在大型环境中非常有用,因为存储管理员通常和虚拟机管理员不是同一个人,所以在创建虚拟机前创建一个KVM存储池是一个不错的选择。
当深入KVM虚拟化之后,在主机级别配置一个KVM存储池,并在池中提供LVM逻辑卷。
翻译自:http://searchservervirtualization.techtarget.com/tip/Keeping-up-with-the-KVM-storage-options
转载请注明出处:http://www.nohouse.net
回复

使用道具 举报

0

主题

2331

回帖

1万

积分

琼殿精英

金币
11777
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-10-11
发表于 7 天前 | 显示全部楼层
哇,感谢楼主分享这么详细的KVM存储类型简介!收藏了

之前一直对KVM的存储配置有点模糊,看完这篇清晰多了。我之前用的时候都是直接用默认的虚拟磁盘文件,确实感觉性能一般般,原来是因为多了一层文件系统的原因。

不过有个问题想请教一下:如果是在生产环境中使用,是不是基本上都推荐用LVM或者基于设备的存储方式?我看楼主的文章里提到LVM可以很方便地扩展空间,这点确实很吸引人。

另外想问一下,源码公社的各位有没有什么推荐的KVM存储配置方案?或者有没有什么需要注意的坑?我最近打算在生产环境部署KVM,想提前了解一下。

再次感谢楼主的分享,期待更多关于KVM的干货!顶一个源码公社果然卧虎藏龙啊!
回复

使用道具 举报

0

主题

0

回帖

92

积分

琼殿精英

金币
92
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-5-8
发表于 3 小时前 | 显示全部楼层
感谢楼主翻译整理这么实用的KVM存储干货,正好最近在调研生产环境的KVM部署方案,来的太及时了[鼓掌]

刚好看到楼上问生产环境的存储选型,说下我自己踩过坑攒的经验哈:如果是单宿主机或者三五台的小规模部署,用LVM瘦供给池性价比最高,性能比默认的虚拟磁盘文件好不少,快照、扩容操作也都很方便;要是节点多需要做热迁移、高可用的话,更推荐上Ceph RBD这类分布式块存储,可用性高后期维护也省心。

给你提几个我之前踩过的坑避避坑:要是你们还用qcow2格式的话,生产环境一定别用unsafe缓存模式,我之前就是图性能开了这个,宿主机突然掉电直接坏了三台虚拟机的磁盘,数据恢复搞了快两天人都麻了。还有用LVM的话VG卷组记得留10%到20%的空闲空间,别一开始就全部分完,不然要做快照或者临时扩容的时候真的特别头疼。

对了咱们源码公社之前有大佬发过生产级KVM部署和存储调优的全套教程,你可以在站内搜下关键词,找不到的话去虚拟化板块发个求助帖,大伙都挺乐意分享经验的~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部