|
1 r; t {" H; d$ [
大家好,我是IT售前工程师Bernie. 5 C1 S2 ?# x4 m( q- D) u& D3 H) a
前面一篇文章中我们讨论了计算资源的虚拟化,本篇文章我们重点讨论下存储资源的虚拟化原理与过程,欢迎阅读。 2 r7 \7 O$ A; w( h) ^$ L
8 {1 {) `$ _1 b5 |* g 对于云计算来说,我们通常讲的存储资源不仅仅包括像硬盘这样的存储形式,还包括其他多种形式的存储空间,以及IO性能。一言以蔽之:VM可能用到的所有的存储设备都可以认为云计算的存储资源。 # c1 s6 {4 W" z" m; Q$ r
存储资源分类
" V1 j% f# _8 D5 Q) i% p- _3 t 基于上述逻辑,我们做一个简单的分类。常用到的存储资源可以分为3大类:本地存储空间、共享存储空间和分布式存储空间。 ( p: k( M7 _! h# A I
' D5 S' c2 I, n4 F' V
除了存储资源以外,IO性能也是一个重要的指标,也是可以被VM经常争抢的资源。
5 h5 Z: H( ]5 {( j( B) z 比如:某个硬盘的IOPS(存储的每秒读写速度性能)是200,那么当host OS上同时运行了5个虚拟机VM时,存储的读写性能如何分配? 1 n! r+ m \( J4 K/ ^- @% q3 S
这里需要特别说明一点:因为不同存储设备的IO性能不尽相同,所以这里说的是IOPS是基于某个VM而言的,即:某个虚拟机可能会使用到的存储资源。而非整个资源池的维度,不一定是整个集群的整体存储资源总和。 7 A8 I( c: V' o, ~; ?" l
- P, y) j, b0 ]: U, a VM如何申请存储资源
! w7 { d# w A( f- E0 Z 讲完了存储资源的分类,接下来我们说一下虚拟机VM是如何申请存储资源的,即存储资源的分配原理。 * d8 ]& W2 C3 z0 |5 G( H8 Q
我们以vmware虚拟机为例,虚拟机也是一个镜像文件,它也是以资源的形式存储在某个存储空间内,虚拟机以VMFS的文件系统来格式化磁盘。当某个VM想要使用存储设备时,它会给存储设备在本地规划一个虚拟的空间,用以存储数据。
3 D; y& ]$ R7 j: R9 e; J- Y" w 这个虚拟的空间的后缀名是.vmdk,每个虚拟机都会生成一个或多个vmdk文件(虚拟磁盘),来存储文件和数据。 $ l5 ~7 r: J/ H8 l7 Q
如下图所示,4个虚拟机想使用磁盘时,遵循“先到先得”的逻辑。只要有存储空间,谁先申请先给谁。
5 d& _! ]3 r2 E; E 1 t- r Y4 t1 m7 K" T" h
这里需要特殊说明:一个虚拟机到底是占用多少的存储空间,实际上还可以再分为三种情况。
# T) M" T3 X! _% g B 精简置备 0 h$ L1 O4 B7 {! w' c
概念:按需占用空间。比如VM设置的硬盘是200G,实际占用了100G,那实际占用的物理存储的100G。 $ l4 T) P+ z G
优缺点:精简置备的方式,可以极致地空间节省,多个VM可以复用存储资源。但是,由于申请用到的时候临时申请空间,有可能导致磁盘上限被突破,被写爆!体验差一些。
* }' t! Z; j) q0 h 厚置备延迟置零
; j; G0 \& b; F8 g4 F2 J3 E8 x 概念:在VM创建的时候就做存储预留。比如VM设置的硬盘是300G,创建VM时直接从硬盘上划分出300G该VM独占,不管其实际有没有用这么多.
1 [8 g& V/ t+ d4 K3 S) E# F 优缺点:不会存在空间被写爆的情况,,但是存在空间利用率低的情况、也不允许超分。
" x+ [1 V! E0 t 厚置备快速置零
5 K& ~3 ^& f' z7 G( b 概念:在虚拟机创建时,就预留全部硬盘空间,并且会置零这个空间内所有的数据。
( B3 O3 Q3 J( y' i: N 优缺点:不会存在空间被写爆的情况,由于前面将空间置零了,所以首次创建时候速度会比较慢。 0 t5 ]% s- r3 O2 w3 `
: P4 T8 [* j' ~ 存储资源如何回收
6 h' R. f$ ]; K# W8 z5 g 当VM使用完毕,虚拟机销毁时,它所对应的存储资源的回收机制是什么样子的呢?实际上,存储空间的回收跟内存的回收原理是相似的。 L# s7 @: E4 M8 I( [
起初,一个虚拟机VM上有一个1G的大文件需要删除,虚拟磁盘vmdk是没有办法直接将这个文件物理删除的,也就是说这个1G的内存空间是没有被真正回收的!这就导致存储空间只能越用越少。
; x+ X$ Y9 R/ j- ?4 X0 ?# D6 ?4 { 所以,我们得想一点办法实现真正的回收。在VMFS6.0以后实现了自动的回收(之前是手动回收的)。 / L1 u& j9 b" p$ P- ?) B
自动回收的机制原理大概是:对于已经逻辑删除的空间VMM会置零,虚拟化层会周期性检测置零的文件,然后再回收。过程如下 . T% t. Q; N9 l0 e
1 V" B5 l0 W4 |6 E 总结4 H4 Y$ V4 j0 u5 o7 _
以上是云计算中存储虚拟化的全部分享,后续将发文进一步探讨存网络虚拟化的相关内容。关于CPU和内存等计算资源虚拟化,有兴趣的小伙伴可以在合集《Bernie说云计算》进行查看。 ( d. {6 P0 Z+ s/ @! O8 O
我是IT售前工程师Bernie,欢迎关注!下期见~
7 k \1 {% E0 G' ^" X- ~: a+ b& [0 r/ b) @1 [) ?( Z; z$ |6 @
4 i7 H, k5 t4 h& }. N9 y |