我刚刚使用 ESX 端的命令回收了 HP 3Par 中未使用的空间,例如:
esxcli storage vmfs unmap --l DATASTORENAME
它运行良好,从 3Par 控制台,我现在可以在我的数据存储/LUN 上看到:
- 已用用户空间:26%(回收前为 46%)
- 预留用户空间:4.7Tb/10Tb(遗憾的是没有改变)
但是,在 VMware 中,空间并没有改变。我想这是由于这种“保留”(空间保留在 3Par 上)。
有没有办法通过运行某种调整命令或紧凑命令来删除 SAN 上的这种分配(我想数据是零)?
我看到它们是诸如compactcpg之类的命令,但它似乎并不是我所需要的,因为我认为它不会正确平衡磁盘之间的数据(块)?(但使用的磁盘尽可能少,因此会降低性能?)
感谢和问候,
实际上,compactcpg是在这种情况下使用的正确命令。您将要使用的表格是
compactcpg <CPG_name>
或compactcpg <pattern>
该进程本身由 3PAR 定期自动运行,因此您可以等待,空间最终将由 3PAR 回收。或者,您可以使用上述命令通过 3PAR CLI 手动启动该过程。
另外需要注意的是,compactcpg始终作为低优先级任务运行,以免中断常规 IO 操作。这意味着阵列可能需要几个小时甚至几天才能完全回收所有新释放的空间。
更多信息可以在这里找到。
关于平衡存储块的问题,这是由 3PAR 自动处理的。3PAR 实际上使用五个逻辑数据层:
平衡发生在每一层上。也就是说,物理磁盘在笼子之间是物理平衡的,存储块在物理磁盘中均匀分布,逻辑磁盘在可用存储块池中是平衡的,等等。
顺便说一句,还有一个 compactld命令,其形式为
compactld <LD_name>
orcompactld -pat <pattern>
,其行为方式大致相同,但在逻辑磁盘层上。但是,您需要先运行compactcpg,然后再尝试使用compactld以充分利用它。它绝对不会定期运行,您需要设置该时间表。疯狂地认为它甚至不能在没有输入的情况下进行基本的空间回收。