有时候我们可能会遇到这样几种现象:虚拟机置备100G,但是平台上却显示虚拟机使用了500G存储?
平台上看到所有虚拟机加起来才3T,存储上5T的空间却没了,严重的还导致所有虚拟机宕机。
为啥?都是"精简置备"惹得货,不,"精简置备"是个好东西,只是你只看到了他的有点,却忘了它得缺点!
下面来了解一下VMware存储置备得几种方式吧。
vSphere 支持两种模型的存储置备:厚置备和精简置备。
厚置备:
厚置备是传统存储置备模型。对于厚置备,预先提供大量存储空间以满足未来的存储需要。但是,空间可能一直未被使用,这样会导致无法充分利用存储容量。
精简置备:
此方法与厚置备相反,通过以灵活的按需方式分配存储空间,可帮助您消除无法充分利用存储的问题。可以通过 ESXi,使用两种模型的精简置备(阵列级别和虚拟磁盘级别)。
其中厚置备又分为厚置备置零和厚置备延迟置零。厚置备置零即存储磁盘被分配给VM时即刻抹除其上所有数据,将所有二进制都写"0",而延迟置零则相反,存储同样在分配空间时划出等量空间给VM,但是其上二进制不做任何处理,当VM写入数据要用对应区块时才清除其上数据。而精简置备就比较另类了,它骗了VM,VM编辑设置里面所写容量空间只是平台许诺得空间,这个空间量只会限制系统内部所看到得最大容量,注意,是系统内部!对于平台来说,你用多少,我就给你多少,所以>>>一台VM得实际存储使用量比它设置得还大。
厚置备得两种方式相当于我们得电脑硬盘,反正就这么大,哪些扇区归你也都是提前设定得。区别在于是否在分配时就全部置零。这两种很简单,主要是,精简置备,可能你并不了解它。
下面来看看我理解中精简置备是怎么运行得,接入磁盘每个扇区区块是1GB,每次虚拟机写入/删除量也是1GB,我们用10个方格表示存储上10GB空间,一台虚拟机置备空间大小为4GB。
系统可见数据量为4G,实际存储使用量为6G
从上边可见,虚拟机系统内部可见使用数据量为4GB,但是存储上使用量为6GB,这一点是由于精简置备得规则决定得。厚置备是给你画了一个圈,只要在圈里面,怎么玩儿,随你。但是精简置备不可能给你画个圈,那样就没有意义了,所以就是你需要写入数据得时候,就给你找多大数据量得空白扇区,而不会主动去覆盖你已经删除数据得扇区,除非你系统内部发送置零清除已删除数据得扇区或者平台主动去统一回收这些扇区。
VMware这样考虑是有原因得,因为像你电脑硬盘,数据删除了还可以恢复,精简置备也要保留这种特性,所以不会主动去回收这些空间。实际上在vSphere 6.7里面,已经慢慢开始加入了回收得功能,只是回收力度很小,只有在存储空间容量快满时才会触发vSphere去回收空间。
所以,当环境存储充足时,比如桌面虚拟化,我这台存储空间就是为桌面设计得容量,这时候可以采用厚置备延迟至零(厚置备置零模式在配置虚拟机时等待置零操作会很久,如果不是数据保密要求很高等特殊场景,不建议选择这个)。如果存储空间不足,或存储需要超容量分配,可以选择精简置备,以达到节省存储空间得目的,但是记得定期去回收存储空间。并不是所有存储都可以回收空间,只是一部分存储支持。
下面是存储空间回收步骤,献给有需要得人:
1、打开ESXI主机SSH服务,flash客户端在安全配置中,HTML5客户端在服务中;
2、CRT或者PUTTY等工具SSH连接ESXI主机;
3、执行命令"ls -l /vmfs/volumes \n"查看所有存储卷,复制需要回收空间存储得UUID;
4、执行命令"esxcli storage vmfs unmap -u UUID号"即回收该存储卷上的可用空间;
5、每台主机上的每个卷均需要执行一次,即所需执行次数=主机数*存储卷数量。每次执行大约在几小时左右,视空间大小决定。