最近数据库项目中需要测试存储和查询的速率,就在虚拟机的数据库mysql中存入了大量数据,导致磁盘内存占满,无法存入数据,虚拟机在关机后也没法开机。好在之前把虚拟机备份了,这足以说明备份的重要性,现在能有心情来写文的我得益于之前那个备份了虚拟机的我,感恩呐。
接下来就写下我在备份虚拟机上如何解决根目录被占满的问题:
1、查看虚拟机磁盘使用情况
命令行:df -h可查看当前根分区的大小
可以看到/dev/mapper/centos-root 已经快满了,这时候就算启动hdfs,也会是强制性的进入安全模式,不让写数据
[dyx@localhost ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 17G 756M 96% /
/dev/sda1 1014M 237M 778M 24% /boot
vmhgfs-fuse 100G 84G 17G 84% /mnt/hgfs
tmpfs 378M 8.0K 378M 1% /run/user/42
tmpfs 378M 24K 378M 1% /run/user/1000
1
2
3
4
5
6
7
8
9
10
11
12
2、查看哪个目录占用过高
使用 du -h -x --max-depth=1 查看哪个目录占用过高,对于过高目录中的内容适当删减腾出一些空间
执行命令:cd / && du -h -x --max-depth=1
[root@localhost dyx]# du -h -x --max-depth=1
69M ./.mozilla
2.1G ./.cache
4.0K ./.dbus
16M ./.config
9.0M ./.local
0 ./桌面
7.6M ./下载
0 ./模板
2.6M ./公共
1.2G ./文档
0 ./音乐
0 ./图片
0 ./视频
44M ./.eclipse
811M ./eclipse-workspace
4.0K ./.swt
12K ./.ssh
0 ./.pki
8.0K ./.wireshark
24K ./.subversion
325M ./编程软件
4.0K ./.vscode
20K ./.designer
4.0K ./.arduinocdt
92K ./.java
4.0K ./.gnome
2.7M ./.jetbrains
266M ./4.3
106M ./linux内核
4.9G .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
可以看到当前是./cache文件占用内存最多,这是我扩容及删除文件之后的占用情况,在之前是文档占用最多。
找到占用最多的文档,并进入文档,再执行du -h -x --max-depth=1,查看占用内存的文档,删除不必要的文件。
3、查看是否还有文件被删除而进程还活着造成占用空间的现象
若发现空间被占满,就还有这种方式可以查看是否是系统文件删除后还存在进程活着的情况,解决方式就是:
使用lsof |grep delete语句查看对应进程号;
使用kill -9 进程号,杀掉对应进程即可。
[root@localhost dyx]# lsof |grep delete
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
tuned 1406 root 8u REG 253,0 4096 17013345 /tmp/ffi3cM9aN (deleted)
gmain 1406 2038 root 8u REG 253,0 4096 17013345 /tmp/ffi3cM9aN (deleted)
tuned 1406 2039 root 8u REG 253,0 4096 17013345 /tmp/ffi3cM9aN (deleted)
tuned 1406 2047 root 8u REG 253,0 4096 17013345 /tmp/ffi3cM9aN (deleted)
tuned 1406 2049 root 8u REG 253,0 4096 17013345 /tmp/ffi3cM9aN (deleted)
1
2
3
4
5
6
7
8
9
10
4、虚拟机扩容
1、查看磁盘编号
[dyx@localhost ~]$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
1
2
2、创建pv
[root@localhost dyx]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
1
2
3、把pv加入vg中,相当于扩充vg的大小
[root@localhost dyx]# vgs *** 先使用vgs查看vg组
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
[root@localhost dyx]# vgextend centos /dev/sdb *** 扩展vg,使用vgextend命令
Volume group "centos" successfully extended
1
2
3
4
5
6
4、成功把vg卷扩展了,再用vgs查看一下
[root@localhost dyx]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 23.99g <5.00g
[root@localhost dyx]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
1
2
3
4
5
6
7
8
虽然我们把vg扩展了,但是lv还没有扩展
5、扩展lv,使用lvextend命令
[root@localhost dyx]# lvextend -L +4G /dev/mapper/centos-root
Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <21.00 GiB (5375 extents).
Logical volume centos/root successfully resized.
1
2
3
6、命令使系统重新读取大小
[root@localhost dyx]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 5504000
1
2
3
4
5
6
7
8
9
10
11
7、再使用df -h查看
[root@localhost dyx]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 21G 15G 6.2G 71% /
/dev/sda1 1014M 237M 778M 24% /boot
vmhgfs-fuse 100G 84G 17G 84% /mnt/hgfs
tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs 378M 24K 378M 1% /run/user/1000
1
2
3
4
5
6
7
8
9
10
11
容量已经从17G扩展到21G了,扩容成功。
本文章来自链接:
https://mp.csdn.net/mp_blog/creation/editor?spm=1001.2101.3001.4503