故事背景:就是突然mysql崩掉了,然后发现其所在分区已经百分之百了,数据也存不下,临时文件也写不下:
然后挣扎着,试图删掉一些文件,但空出来的空间又会很快被占掉。
面对这种情况,肯定有诸多的解决办法,如果有知道的,欢迎指教,这里说下我用的方法。
看到这篇帖子(https://www.cnblogs.com/feiyun126/p/7680534.html)后,不禁心动了。
大致复述一下:
df -h #查看当前分区使用情况
#关机,插上一块新的硬盘,重启电脑
ls /dev/sd* #输出/dev/sda /dev/sda1 /dev/sda2 /dev/sdb 看到了新的磁盘/dev/sdb
pvcreate /dev/sdb #创建PV
vgs #查看分组
vgextend centos /dev/sdb #扩展vg
vgs #再次查看分组
lvs #查看lv,虽然我们把vg扩展了,但是lv还没有扩展
lvextend -L +20G /dev/mapper/centos-root #扩展lv
xfs_growfs /dev/mapper/centos-root #使系统重新读取大小
看起来挺靠谱的,而且自己正好多一块硬盘,不妨一试。
需要提醒的是,最后一句有可能报错:
xfs_growfs: command not found
只需要换成:
resize2fs /dev/mapper/vg_itshadoop10-lv_root
反正两个都试试呗。
如果以上方案能解决问题,那也是挺幸运的。
然而,我这里其实有很多不顺利的地方:
[root@ITS-Hadoop10 ITS-Hadoop]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2
后面多了两个东西,~~~~~~
然后:
[root@ITS-Hadoop10 ITS-Hadoop]# cd /dev
[root@ITS-Hadoop10 dev]# cd mapper/
[root@ITS-Hadoop10 mapper]# ls
control vg_itshadoop10-lv_home vg_itshadoop10-lv_root vg_itshadoop10-lv_swap vg_itshadoop12-lv_root vg_itshadoop12-lv_swap
这块硬盘是之前另一台电脑的,所以会出来很多很神奇的东西。
无妨,我们把它格式化吧:
[root@ITS-Hadoop10 dev]# mkfs.ext4 /dev/sdb
mke2fs 1.41.12 (17-May-2010)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
/dev/sdb is apparently in use by the system; will not make a filesystem here!
说它正在被使用,网上说可以找到哪个进程在用,但我这里并没查出来。指令如下,不妨一试:
fuser -v /dev/sdb
折腾了好久,找到如下指令:
[root@ITS-Hadoop10 dev]# dmsetup status
vg_itshadoop10-lv_home: 0 1831575552 linear
vg_itshadoop12-lv_swap: 0 32768000 linear
vg_itshadoop12-lv_root: 0 104857600 linear
vg_itshadoop10-lv_swap: 0 16056320 linear
vg_itshadoop10-lv_root: 0 104857600 linear
竟然看到了那两个别的系统上的东西,有戏有戏
dmsetup remove_all
dmsetup status
结果
[root@ITS-Hadoop10 dev]# dmsetup status
vg_itshadoop10-lv_home: 0 1831575552 linear
vg_itshadoop10-lv_swap: 0 16056320 linear
vg_itshadoop10-lv_root: 0 104857600 linear
那两个多出来的玩意儿竟然消失了,有戏有戏
mkfs.ext4 /dev/sdb
重新格式化,竟然成功啦
执行后续步骤:
vgextend centos /dev/sdb #扩展vg
vgs #再次查看分组
lvs #查看lv,虽然我们把vg扩展了,但是lv还没有扩展
lvextend -L +20G /dev/mapper/centos-root #扩展lv
xfs_growfs /dev/mapper/centos-root #使系统重新读取大小
一气呵成,开心
一些缩写的名词解释:
dmsetup 中的 dm:Device mapper
vg:卷组
lv:逻辑卷
pv:物理卷
pvcreate:用于将物理硬盘分区初始化为物理卷,以便LVM使用。
vgreduce --removemissing --force vgdata01
网友评论