|
9 ~% d2 L5 B1 I. y
大家好,我是IT售前工程师Bernie.
) ^, x; B g+ Y7 p4 |2 V 前面一篇文章中我们讨论了计算资源的虚拟化,本篇文章我们重点讨论下存储资源的虚拟化原理与过程,欢迎阅读。 - |1 o' ? T2 x$ t5 q& H$ E5 t
& r# A9 U9 k' P8 F' G7 v
对于云计算来说,我们通常讲的存储资源不仅仅包括像硬盘这样的存储形式,还包括其他多种形式的存储空间,以及IO性能。一言以蔽之:VM可能用到的所有的存储设备都可以认为云计算的存储资源。
# d% b+ e6 c. d$ a' q. I- S" ^ 存储资源分类
# }+ a* b. K% O6 t$ A5 M 基于上述逻辑,我们做一个简单的分类。常用到的存储资源可以分为3大类:本地存储空间、共享存储空间和分布式存储空间。 ' ?( ~2 S# P' @/ R
3 N0 p. Z; ? ]
除了存储资源以外,IO性能也是一个重要的指标,也是可以被VM经常争抢的资源。
$ k9 _) [+ s3 b2 A4 Q# P( f 比如:某个硬盘的IOPS(存储的每秒读写速度性能)是200,那么当host OS上同时运行了5个虚拟机VM时,存储的读写性能如何分配? 0 d+ b3 d) [7 J' O0 V/ Q
这里需要特别说明一点:因为不同存储设备的IO性能不尽相同,所以这里说的是IOPS是基于某个VM而言的,即:某个虚拟机可能会使用到的存储资源。而非整个资源池的维度,不一定是整个集群的整体存储资源总和。
0 P, E( B7 z: s4 ?% [1 d' L% f & @2 E' J7 R3 ^. R
VM如何申请存储资源% |1 e0 y! q J2 a
讲完了存储资源的分类,接下来我们说一下虚拟机VM是如何申请存储资源的,即存储资源的分配原理。 ( k( @( X# G- h
我们以vmware虚拟机为例,虚拟机也是一个镜像文件,它也是以资源的形式存储在某个存储空间内,虚拟机以VMFS的文件系统来格式化磁盘。当某个VM想要使用存储设备时,它会给存储设备在本地规划一个虚拟的空间,用以存储数据。 , f4 r X3 s7 w5 F( E& N- b4 l' Y4 E
这个虚拟的空间的后缀名是.vmdk,每个虚拟机都会生成一个或多个vmdk文件(虚拟磁盘),来存储文件和数据。 8 B4 c. r) i" C' l$ `
如下图所示,4个虚拟机想使用磁盘时,遵循“先到先得”的逻辑。只要有存储空间,谁先申请先给谁。
2 d. g8 _: V6 D$ ?7 `& p& j $ C! h$ s0 \! L# n/ P
这里需要特殊说明:一个虚拟机到底是占用多少的存储空间,实际上还可以再分为三种情况。 7 v7 ^4 v6 M( c# ^% b
精简置备
0 Y% \' j9 \% t4 H, N$ y, K 概念:按需占用空间。比如VM设置的硬盘是200G,实际占用了100G,那实际占用的物理存储的100G。 4 O( k" j# [4 i& L# u( z. l% A5 n# ]
优缺点:精简置备的方式,可以极致地空间节省,多个VM可以复用存储资源。但是,由于申请用到的时候临时申请空间,有可能导致磁盘上限被突破,被写爆!体验差一些。 9 e0 H) s4 ]! i' i, W
厚置备延迟置零
/ X8 t8 Z G( k7 ~ 概念:在VM创建的时候就做存储预留。比如VM设置的硬盘是300G,创建VM时直接从硬盘上划分出300G该VM独占,不管其实际有没有用这么多. - ? G5 m, A7 X
优缺点:不会存在空间被写爆的情况,,但是存在空间利用率低的情况、也不允许超分。 % L M8 O/ l. f) V
厚置备快速置零
; _. j& _$ K2 i% f5 j3 N# \; Y 概念:在虚拟机创建时,就预留全部硬盘空间,并且会置零这个空间内所有的数据。
2 P7 q1 L" G9 v9 x \5 x 优缺点:不会存在空间被写爆的情况,由于前面将空间置零了,所以首次创建时候速度会比较慢。 ! x. ?9 q5 `/ d4 P0 T$ r' u% V9 d
/ `0 ?3 t! J( L% ^$ O+ D# T
存储资源如何回收
" i! @8 q6 u9 b' k 当VM使用完毕,虚拟机销毁时,它所对应的存储资源的回收机制是什么样子的呢?实际上,存储空间的回收跟内存的回收原理是相似的。 8 ?3 w- ?% e; \. n
起初,一个虚拟机VM上有一个1G的大文件需要删除,虚拟磁盘vmdk是没有办法直接将这个文件物理删除的,也就是说这个1G的内存空间是没有被真正回收的!这就导致存储空间只能越用越少。
: C. l; `& |1 o9 a8 S1 H 所以,我们得想一点办法实现真正的回收。在VMFS6.0以后实现了自动的回收(之前是手动回收的)。 / p( ]& h4 m" J( t- I5 O
自动回收的机制原理大概是:对于已经逻辑删除的空间VMM会置零,虚拟化层会周期性检测置零的文件,然后再回收。过程如下
1 l$ E+ b+ d+ R9 Z0 e$ g
* ]8 t1 [. I& n T0 t, c 总结( Y3 E+ a! H! N: ~+ i
以上是云计算中存储虚拟化的全部分享,后续将发文进一步探讨存网络虚拟化的相关内容。关于CPU和内存等计算资源虚拟化,有兴趣的小伙伴可以在合集《Bernie说云计算》进行查看。
* e% `' v1 t. [; f' G& h, _! a& x8 B 我是IT售前工程师Bernie,欢迎关注!下期见~
6 G u; c& t' a" {) P; M# s) d' }5 ~1 \2 Q" u
( U" d4 ]- f- W3 j" L1 J
|