对已挂载的逻辑卷进行重新分区

对已挂载的逻辑卷进行重新分区

这是我在物理 CentOS 机器上的当前磁盘状态:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_ecomwise-lv_root
                       50G   47G  267M 100% /
tmpfs                 5.8G     0  5.8G   0% /dev/shm
/dev/sda1             485M   63M  397M  14% /boot
/dev/mapper/vg_ecomwise-lv_home
                      406G  158G  227G  41% /home

如您所见,我的根分区几乎已满,我需要更多空间,因为无法在 /var 目录中写入其他日志文件。在 /var/lib/mysql 目录中导入大型数据库后,这个问题变得更加严重。

我的逻辑卷 lv_home 上有足够的空间,但我不知道如何从 lv_home 获取部分内容,而无需格式化和丢失任何分区的数据。这可能吗,还是我需要找到其他解决方案?

答案1

这应该可以做到,如果您想了解有关特定命令的更多详细信息,请查看手册页;

umount /home
resize2fs /dev/mapper/vg_ecomwise-lv_home {the size you want}
lvreduce -L-{the size you want} /dev/mapper/vg_ecomwise-lv_home
mount /home

lvextend -L +{the size you want} /dev/mapper/vg_ecomwise-lv_root
resize2fs /dev/mapper/vg_ecomwise-lv_root {the size you want}

答案2

可以使用 和 的组合来实现rezise2fslvreducelvextend非常危险,我不建议在包含您关心的任何数据的系统上执行此操作。但如果您想尝试,该过程如下所示:

#Shrink the filesystem to 200G
resize2fs /dev/mapper/vg_ecomwise-lv_home 200G 
#Use a bit larger to avoid fatal off-by-something errors
lvreduce -L 210G /dev/mapper/vg_ecomwise-lv_home
#Regrow the filesystem to fill the partition
resize2fs /dev/mapper/vg_ecomwise-lv_home 
#Extend the volume by 50G
lvextend -L+50G /dev/mapper/vg_ecomwise-lv_root 
#Grow the filesystem
resize2fs /dev/mapper/vg_ecomwise-lv_root 

答案3

如果您不想因分区/文件系统调整大小而丢失数据,为什么不停止 MySQL,修改中的主目录my.cnf,将数据库移动到/home/mysql/db左右,并让 MySQL 将其数据存储在 /home 下?

相关内容