Linux磁盘的折腾... (查看、分区、挂载)

背景: 负责ci上线的机器在上线时候提示磁盘满了... 很奇怪居然没部署几天就满了。于是折腾一番磁盘操作。

常用指令

du df

du (disk usage),是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。

df (disk free),通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件,df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。

当文件系统也确定删除了该文件后,这时候du与df就一致了。

一般遇到磁盘占用满了,df 快速查看一下,然后可以进入根目录下 du -sh *查看每个文件夹下的总的大小。

Linux磁盘的折腾... (查看、分区、挂载)_第1张图片
df
Linux磁盘的折腾... (查看、分区、挂载)_第2张图片
du -sh *

其实可以看出并没有使用多大的空间,发现问题挂载 /的磁盘居然 4.8G 就已经使用 100%了。

fdisk -l

查看挂载情况

Linux磁盘的折腾... (查看、分区、挂载)_第3张图片
fdisk -l

本来就一共21.5G的mini机型,居然才挂载了5G....

lsblk
Linux磁盘的折腾... (查看、分区、挂载)_第4张图片
lsblk

扩容

一般遇到这种情况首先想到的就是扩容。

搜一下,相关扩容的文章,例如
Centos/Linux下调整分区大小(以home和根分区为例)

又例如

以下操作基于场景:有两个同vg的lv(applv和rootlv),我们需要从applv腾出1G给rootlv。
1.缩小applv磁盘
lvresize -L -1G /dev/mapper/myvg-applv
2.扩展rootlv磁盘
lvresize -L +0.99G /dev/mapper/myvg-rootlv
3.扩展rootlv文件系统
resize2fs /dev/mapper/myvg-rootlv

扩展完磁盘后使用lsblk查看的结果变了而使用df -h结果大小却没变,这是因为前者查看的是磁盘的大小而后者查看的是文件系统的大小。磁盘和文件系统在不严格区分时可视为同一个东西,但追究起来确实是两样东西。这也是需要第3步的原因。

原本以为我们的/dev/vda1正好没有充满 /dev/vda 所以直接扩容就好,然而上面的操作是针对于 LVM 的。

Linux磁盘的折腾... (查看、分区、挂载)_第5张图片

我们的这种磁盘是不支持的。
需要 pvcreate 将物理硬盘分区初始化为物理卷

旧环境经不起这样折腾啊....
只能新建分区,再挂载一个新文件夹了 。

新建分区

借助fdisk指令

fdisk /dev/vda  
m 查看帮助  
p 打印现有分区  
n 新建分区  

新建一个主分区 然后占用剩下的全部空间 直接一路回车敲下去使用default就行了

Linux磁盘的折腾... (查看、分区、挂载)_第6张图片
新建分区

p 再查看一次

Linux磁盘的折腾... (查看、分区、挂载)_第7张图片

已新建成功
w保存退出

更新内核分区表

不用重启系统,更新内核分区表
partprobe

格式化新建分区

mkfs -t ext4 /dev/vda2

挂载

新建一个路径 然后 挂载分区

mkdir /data2
mount /dev/vda2 /data2/

df -h 查看 已可正常使用

Linux磁盘的折腾... (查看、分区、挂载)_第8张图片

查看现有挂载

Linux磁盘的折腾... (查看、分区、挂载)_第9张图片

前面的挂载只是手动挂载,重启后又会丢失,所以需要给写到配置文件/etc/fstab
在末尾补充
/dev/vda2 /data2 ext4 defaults 0 0 即可

参考资料

linux下磁盘进行分区、文件系统创建、挂载和卸载
多硬盘分区管理fdisk
Linux du命令和df命令区别

你可能感兴趣的:(Linux磁盘的折腾... (查看、分区、挂载))