这是我在物理 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
可以使用 和 的组合来实现rezise2fs
。lvreduce
这lvextend
非常危险,我不建议在包含您关心的任何数据的系统上执行此操作。但如果您想尝试,该过程如下所示:
#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 下?