基本上,我们可以通过以下方式缩小逻辑卷:lvreduce或者调整大小命令如下:
lvreduce/lvresize -L 2G [logicial volume path]
但是,当 lv 具有快照(快照原始卷)时,收缩命令将失败,并显示以下错误输出:
Snapshot origin volumes cannot be reduced in size yet.
其实这种情况下是可以扩展lv的,为什么不支持shrink命令呢?我的环境是:
Linux SZX1000159695 3.13.0-106-generic #153-Ubuntu SMP Tue Dec 6 15:44:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
我们是否有可能支持具有快照的 shrink lv?
答案1
缩小卷比扩大卷要困难得多 - 因为当你添加空间时你知道它还没有被使用。
当您进行快照时,它会保留原始数据和快照中的数据之间的差异。
缩小卷时,您将删除范围(即空间) - 但如果在创建快照时该空间中有数据,该怎么办? 如果空间中有数据,则当您缩小它时,那里不再有数据,因此您无法对不存在的数据进行差异分析。
我确信,LVM 可以进行更新来处理这个问题,但这需要相当多的编码,这可能会导致错误和数据丢失,而且似乎尚未实现。