我目前有以下分区:
ACTIVE '/dev/vg_server/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/vg_server/lv_home' [1.76 TiB] inherit
ACTIVE '/dev/vg_server/lv_swap' [5.86 GiB] inherit
我想减少lv_home
几乎为空的分区并增加lv_root
即将填满的分区。我有一个完整备份,但想在无法使用实时 CD 的实时服务器上执行此操作。
我想调整分区大小并重新启动,然后让一切尽快恢复运行。有没有比较安全的方法可以做到这一点?
答案1
基本问题是避免使用备份。如果lv_home
真的“几乎为空”,
- 你可以缩小它(调整文件系统大小,然后缩小逻辑卷),然后
- 使用释放的空间作为临时卷的复制目标
lv_home
。 - 然后,现有的
lv_home
是空的,你可以拆除它,lv_root
根据需要进行扩展, - 最后(如果
lv_home
是真的最初很小),将临时卷的内容移回到不需要的空白空间部分lv_root
,然后将其与临时空间合并。
当然,建议的顺序假设底层磁盘分区的顺序相同。LVM 不适合上下移动分区(某些离线磁盘分区工具可能会这样做)。
现在 - OP 的问题没有提到底层文件系统是否都驻留在一个物理磁盘上,以及它们的磁盘分区是否按相同的顺序排列。如果它们都驻留在一个物理磁盘上,那么问题来了,这个磁盘是用 MBR(最多四个物理分区)还是 GPT(128)分区的 - 例如参见MBR 和 GPT 有什么区别?对于前一种情况,OP 可能必须创建一个扩展分区作为调整大小分区的基础lv_home
。
LVM 本质上分为三层:物理层、卷层和逻辑层。为了保持整洁,最好将物理磁盘放在相邻的位置。但 LVM 并不要求这样做。可以lv_home
一步缩小(及其文件系统和物理分区),然后在末尾的空间中创建一个新的物理分区,将该分区添加到对应的卷组,lv_root
然后运行resize2fs
扩展文件系统。调整大小有很多现有的实践;而缩小则很少见——直到最近,文档中才有警告,解释说使用该工具可能会破坏文件系统。
以下可能会有帮助:
答案2
使用lvextended
命令改变逻辑卷的大小:
lvextend -l +4607 /dev/vg_home/LogVol01
resize2fs /dev/vg_home/LogVol01
我建议从概念上阅读在此网站上调整和缩小 lvm。