服务器磁盘被写满,SSH连上去敲 df -h,Use% 停在 99%,数据库日志疯狂报错,业务告警群里已经炸了锅——这种场面我在运维 CentOS 的几年里见过太多次。其实绝大多数磁盘问题都不是玄学,而是对分区表、文件系统、挂载链路这几个基础环节理解不透。这篇文章把我这几年操作 CentOS 磁盘管理的经验整理一遍,从分区到 LVM 扩容,从 fstab 到故障排查,尽量把每个步骤背后的原理也讲清楚。适合刚接手 CentOS 服务器的同学,也适合被扩容、磁盘满、挂载失败折腾过的朋友。
1. 磁盘管理的底层逻辑:从分区表到文件系统
1.1 Linux 如何“看见”一块磁盘
Linux 下一切皆文件,磁盘也不例外。传统 SATA/SCSI 硬盘的设备名通常是 /dev/sda、/dev/sdb,NVMe 固态是 /dev/nvme0n1,虚拟化环境可能是 /dev/vda 或 /dev/xvda,云服务器还可能直接给你一整块 /dev/vdb。这些名字由内核按照驱动探测到的顺序分配,所以“sda”和物理位置并不一定一一对应。
这里有个容易被忽略的坑:设备名在重启后可能变化。你插了两块盘,第一次启动系统识别为 sda、sdb,换了个接口或者升级了 BIOS,第二次启动可能就变成 sdb、sda 了。所以在 /etc/fstab 里写死 /dev/sda1 是非常危险的做法,更稳妥的是使用 /dev/disk/by-uuid/ 下的 UUID 或者文件系统 LABEL。
分区之后,Linux 会在设备名后面追加分区号,比如 /dev/sda1、/dev/sda2。如果是 GPT 分区表,还可能看到 /dev/sda1p1 这种命名,别慌,这是内核在部分场景下的命名方式。对于习惯 lsblk 的人来说,这些差异都无所谓,因为 lsblk 会把树状结构展示得很清楚。
1.2 MBR 与 GPT:分区表怎么选
MBR(Master Boot Record)和 GPT(GUID Partition Table)是两种主流分区表格式。
- MBR:传统格式,最多 4 个主分区,单个分区最大 2TB。为了超过 4 个分区,可以用扩展分区套逻辑分区,但操作麻烦,而且 2TB 的上限在现代服务器面前完全不够看。
- GPT:全局唯一标识分区表,最多支持 128 个分区(Windows 下更多),单个分区容量理论上可达 EB 级别,远远超过当前硬盘容量的实际需求。GPT 还在磁盘末尾保留了分区表备份,容错性更好。
CentOS 7 以上安装时默认就使用 GPT,即使是 BIOS 引导,grub2 也能正常识别。如果你新加了一块磁盘,只要容量大于 1TB,我建议直接上 GPT,避免以后扩容到 2TB 时再折腾迁移。操作上,fdisk 虽然新版也支持 GPT,但很多人还是习惯用 parted 或 gdisk。我的经验是:MBR 小盘用 fdisk,GPT 大盘用 parted -s /dev/sdb mklabel gpt,后续分区也直接用 parted 脚本,干净利落。
1.3 文件系统选择:XFS 还是 ext4
CentOS 7 开始,默认文件系统换成了 XFS。XFS 对大数据量、高并发读写优化得更好,支持在线扩容(xfs_growfs),但它有一个硬伤:不能缩容。ext4 则老当益壮,resize2fs 既支持扩容也支持缩容,小文件场景表现也很稳。
所以规划文件系统的思路是:
- 如果分区后期可能要缩小,比如
/home这种隔一段时间想调整大小的目录,用 ext4 会更灵活; - 如果分区只增不减,比如根分区
/、日志分区/var/log,用 XFS 没问题; - 跑数据库的独立数据盘,两者皆可,但 XFS 在大文件连续读写上稍占优势,ext4 在大量随机小文件写入上更耐造。
还有一点必须记住:mkfs.xfs 和 mkfs.ext4 格式化出来的文件系统,调优参数不一样,后面扩容时用的工具也不一样。XFS 用 xfs_growfs,ext4 用 resize2fs,千万别混。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 分区实操:fdisk、parted、gdisk 到底怎么选
2.1 一块新盘的分区流程
假设你给 CentOS 加了一块 20GB 的 /dev/sdb,目标是把它分成一个分区、格式化成 xfs、挂载到 /data。
先确认磁盘已经识别:
bash复制lsblk
输出里如果出现了 sdb 20G,就可以开始分区了。如果看不到,先检查虚拟机/宿主机是否正确添加了磁盘,然后扫描总线(后面第 4 节详细讲)。
MBR 风格用 fdisk:
bash复制fdisk /dev/sdb
交互界面里输入 n 新建分区,p 主分区,分区号默认 1,起始扇区默认,结束扇区默认(表示使用整块盘),最后 w 写入分区表。整个过程需要按几次回车,非常简单。
GPT 风格用 gdisk 或 parted。gdisk 的交互逻辑和 fdisk 几乎一样,适合习惯 fdisk 的人。parted 更适合脚本化操作:
bash复制parted -s /dev/sdb mklabel gpt
parted -s /dev/sdb mkpart primary xfs 1MiB 100%
parted -s /dev/sdb set 1 lvm on
注意我指定了 1MiB 作为起始位置。这是现代分区工具的默认对齐方式,保证分区起始位置对齐物理扇区,避免 I/O 性能损失。以前用 fdisk 默认起始扇区 63 导致的“分区未对齐”问题,在 2048 扇区(1MiB)对齐后基本消失。
分区创建完后,让内核重新读取分区表:
bash复制partprobe /dev/sdb
# 或者
kpartx -av /dev/sdb
然后格式化并挂载:
bash复制mkfs.xfs /dev/sdb1
mkdir -p /data
mount /dev/sdb1 /data
如果你想一次性看到效果,lsblk -f 会列出设备、文件系统、UUID、挂载点,非常清晰。
2.2 分区表重读:为什么有时候看不到新分区
分区写完后会立刻生效吗?不一定。如果你对正在使用中的磁盘执行了分区操作,内核可能还持有旧的分区表缓存。partprobe 就是用来通知内核重新读取分区表的。
有时候 partprobe 也会失败,特别是磁盘上有 LVM 卷正在使用,或者虚拟机磁盘处于“繁忙”状态。此时可以尝试:
bash复制partx -u /dev/sdb
如果还不行,就只能重启了。这也是我建议在虚拟机扩容场景里尽量“新增一块磁盘加入 LVM”而不是“原地改分区表”的原因之一——原地操作风险高,失败后可能需要重启才能生效。
2.3 分区工具对比与推荐
| 工具 | 支持的格式 | 交互方式 | 适用场景 |
|---|---|---|---|
| fdisk | MBR、GPT(新版) | 交互式 | 小块磁盘手动分区 |
| parted | MBR、GPT | 交互式/命令行 | 脚本化分区、大容量磁盘 |
| gdisk | GPT | 交互式 | 习惯 fdisk 的用户操作 GPT |
| cfdisk | MBR | 交互式界面 | 喜欢图形化终端界面的人 |
我的建议很简单:日常用 fdisk 够了,遇到 2TB 以上或者需要脚本自动化,直接 parted。gdisk 作为备选也行,但没必要专门学。
2.4 分区规划心得
分区不是“分完拉倒”,要想着后面几年怎么扩张。
/boot:BIOS/UEFI 引导需要,通常 1GB 足够,不要和根分区混在一起;/:系统盘,取决于你安装的软件数量,一般 30-50GB;/home:用户数据,如果有多用户/容器数据,尽量独立分区,且使用 ext4,方便日后缩容;/var/log:日志可能会暴涨,如果物理盘够,单独分出来 10-20GB 可以防止日志把根分区写满;- 数据盘:单独一块或多块盘做 LVM,不要直接挂裸分区。
生产环境里我强烈建议:只要有条件,所有数据分区都跑在 LVM 上。原因很简单——LVM 给了你“后悔药”,后面再讲。
3. LVM:CentOS 扩容的“后悔药”
3.1 LVM 的三层抽象
LVM(Logical Volume Manager)把磁盘分区的传统玩法升级成了三层结构:
- PV(物理卷):实际磁盘分区或整个磁盘;
- VG(卷组):多个 PV 聚合成一个资源池;
- LV(逻辑卷):从 VG 中划分出来的逻辑分区,格式化后挂载使用。
用仓库类比:PV 是一个个仓库,VG 是所有仓库合起来的库区,LV 是从库区里指定的一个货架。你需要扩容货架时,不用拆墙,只要往库区里加仓库,然后把新仓库的空间分给货架。
这种抽象的最大价值是:扩容不需要动数据,不需要重新分区,不需要停机卸载。
3.2 创建 LVM 的完整流程
还是以 /dev/sdb 20GB 为例,目标是把整个盘做成一个 VG 叫 vg_data,再分一个 LV lv_data 挂到 /data。
第一步,把磁盘分区(或者直接整块盘作为 PV)。整块盘做 PV 时不需要分区:
bash复制pvcreate /dev/sdb
如果你用的是 /dev/sdb1 分区,也可以。不过我倾向于整块盘直接 PV,省去分区步骤,以后扩容时也更灵活。
第二步,创建 VG:
bash复制vgcreate vg_data /dev/sdb
第三步,创建 LV。-L 18G 表示从 20GB 里划 18GB,留一点空间给快照或元数据:
bash复制lvcreate -L 18G -n lv_data vg_data
第四步,格式化并挂载:
bash复制mkfs.xfs /dev/vg_data/lv_data
mkdir -p /data
mount /dev/vg_data/lv_data /data
第五步,写入 fstab,设备名用 /dev/mapper/vg_data-lv_data 或 UUID,推荐后者。
3.3 LVM 扩容:在线延长逻辑卷
这是 LVM 最爽的地方。卷组空间不够时,加一块新盘,或者用已有空闲空间扩展 LV,全程不需要卸载文件系统。
假设 vg_data 还有 2GB 空闲,要把 lv_data 扩到 20GB:
bash复制lvextend -L 20G /dev/vg_data/lv_data
逻辑卷大小变了,但文件系统还不知道。XFS 执行:
bash复制xfs_growfs /data
ext4 执行:
bash复制resize2fs /dev/vg_data/lv_data
注意参数差别:xfs_growfs 后面接挂载点,resize2fs 后面接设备路径。XFS 扩容只能在线,ext4 可以在挂载状态下扩容,但要缩容就得先卸载。
更常用的是加新物理磁盘扩展卷组:
bash复制pvcreate /dev/sdc
vgextend vg_data /dev/sdc
lvextend -l +100%FREE /dev/vg_data/lv_data
xfs_growfs /data
-l +100%FREE 表示把卷组里所有剩余空闲全部给这个 LV,非常省事。整个过程业务不中断,数据不迁移,这是分区方案给不了的。
3.4 LVM 缩容:ext4 可以,XFS 不行
缩容是 LVM 里最需要小心的操作。XFS 文件系统不支持缩容,所以如果 lv_data 是 XFS,你只能扩不能缩。如果你想缩,只能备份数据、删除 LV、重建小一点、再恢复数据,非常痛苦。
ext4 缩容步骤:
bash复制umount /data
e2fsck -f /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data 15G
lvreduce -L 15G /dev/vg_data/lv_data
mount /data
注意顺序:先缩文件系统,再缩逻辑卷,顺序反了会直接损毁数据。e2fsck -f 强制检查是必须的,resize2fs 之前只有通过检查才能继续。缩容有风险,操作前务必备份。
3.5 LVM 快照:拯救手残党的神器
LVM 支持创建逻辑卷快照,可以在几乎不影响性能的情况下记录某个时间点的状态。
bash复制lvcreate -L 2G -s -n lv_data_snap /dev/vg_data/lv_data
这条命令会创建一个 2GB 的快照卷。快照初始不占空间,随着原卷数据变化增多才慢慢占用。所以快照大小不是数据总量,而是“从快照创建到删除之间可能变化的数据量”。
快照可以用于测试环境快速回滚,也可以配合备份工具做一致性备份。使用完后直接:
bash复制lvremove /dev/vg_data/lv_data_snap
生产环境千万别把快照当长期备份用,因为快照依赖原卷,原卷损坏快照也没了。
4. 虚拟机磁盘扩容完整链路:从宿主机加盘到系统内生效
4.1 场景:虚拟机空间不够了怎么办
热词里多次出现“centos扩容”“esxi centos 增加硬盘”“vmware centos 共享文件夹”,说明大家经常在虚拟化环境里折腾 CentOS 磁盘。虚拟机扩容分为两个层面:宿主机层面的虚拟磁盘变化,以及客户机(CentOS)内部的空间分配。
常见操作有两种:
- 在 VMware/ESXi 中直接扩展已有虚拟磁盘的大小;
- 在宿主机上给虚拟机新增一块虚拟磁盘。
我强烈推荐第二种,理由后面说。
4.2 宿主机层面:扩展虚拟磁盘还是新增磁盘
直接扩展虚拟磁盘的原生操作很简单:在 vSphere 或 VMware Workstation 里,编辑虚拟机设置,把硬盘大小从 20G 改成 30G,点确定。但进入 CentOS 后,你会发现自己看到的还是 20G,因为虚拟机变大的只是“物理磁盘”大小,分区表和文件系统并不知道。
这时有两种路:
- 扩展现有分区:用
growpart或fdisk把分区从 20G 扩到 30G,然后xfs_growfs。这个操作需要分区表支持,而且如果根分区是 GPT 且后面还有分区,扩展会很麻烦。 - 新增一块盘并加入 LVM:比如加一块 10G 的新盘
/dev/sdb,把它做成 PV,加入根卷组,再扩展根逻辑卷。这个操作风险小、可回退、不需要动原有分区。
我一般推荐后者。扩展虚拟磁盘虽然省了一块盘,但如果分区表不小心写坏,整个虚拟机就起不来了。新增一块盘最多是多一个设备,不影响已有系统。
4.3 系统内发现新磁盘
宿主机加完盘后,CentOS 可能不会立刻看到。VMware 环境下,可以在客户机里重新扫描 SCSI 总线:
bash复制echo 1 > /sys/class/scsi_host/host0/scan
echo 1 > /sys/class/scsi_host/host1/scan
echo 1 > /sys/class/scsi_host/host2/scan
或者用 ls /sys/class/scsi_host/ 数一下有多少 host,全部扫描一遍。lsblk 确认新盘出现。
如果还是不行,重启虚拟机一般都能识别。ESXi 下热添加磁盘后,客户机可能需要安装 open-vm-tools 才能自动识别,这也是为什么虚拟机上 CentOS 一般都要装这个包。
4.4 实操示例:根分区 LVM 扩容
假设你的 CentOS 根分区在 LVM 上(安装时默认就是),虚拟机原盘 20G,现在宿主机增加了一块 10G 的新盘 /dev/sdb,想把根分区扩到 30G。
步骤如下:
bash复制pvcreate /dev/sdb
vgextend centos /dev/sdb # 卷组名以 vgdisplay 输出为准
lvextend -l +100%FREE /dev/centos/root
xfs_growfs /
df -h
几个注意点:
- 卷组名未必是
centos,CentOS 7 默认叫cl,8 叫cs或centos,用vgs查一下最稳; - 如果根文件系统是 XFS,用
xfs_growfs /; - 如果根文件系统是 ext4,改用
resize2fs /dev/centos/root。
整个过程大概两三分钟,不需要停机,不需要重启,生产环境也能操作。
4.5 VMware 共享文件夹的挂载问题
热词里还有“vmware centos 共享文件夹”和“vmware centos 共享文件夹重启后就没有了”。VMware 的共享文件夹在客户机里通过 vmhgfs-fuse 挂载:
bash复制vmhgfs-fuse .host:/ /mnt/hgfs
但每次重启就没了,原因是 systemd 没有自动挂载。解决办法是写一个 systemd service 或者直接加到 /etc/fstab:
bash复制.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
注意 fstab 里写 vmhgfs-fuse 还是 fuse.vmhgfs-fuse,取决于系统识别情况。更稳的方式是创建 /etc/systemd/system/mnt-hgfs.mount 单元文件,不过日常实验环境直接放 fstab 也够了。
共享文件夹适合开发测试,生产环境建议用 NFS 或 Samba,性能和稳定性更好。
5. 挂载与开机自启:fstab、UUID 与 systemd 挂载单元
5.1 mount 命令只是临时生效
手动 mount 挂载的好处是即时生效,坏处是重启后失效。要在开机时自动挂载,传统做法是编辑 /etc/fstab。
fstab 每行六个字段:
bash复制<设备> <挂载点> <文件系统类型> <挂载选项> <dump> <fsck>
示例:
bash复制UUID=7b9f3d1a-... /data xfs defaults 0 0
5.2 为什么强烈推荐用 UUID
设备名(/dev/sda)会漂移,文件系统 UUID 在格式化时生成,几乎不会变。用 blkid 或 lsblk -f 可以查看:
bash复制blkid /dev/sdb1
输出里有 UUID="...",把这段填进 fstab 即可。好处是无论内核怎么调整设备顺序,挂载关系都不会错。
有一个例外:LVM 逻辑卷的设备名 /dev/mapper/vg-lv 本身比较稳定,也可以直接用。不过为了统一,我通常还是写 /dev/mapper/vg_data-lv_data 这种,它不会漂移。
5.3 fstab 写错会怎样
如果 fstab 里出现一个无效的 UUID 或错误挂载路径,开机时系统会因为无法挂载而进入 emergency mode,提示你维护。这时输入 root 密码后,先执行:
bash复制mount -o remount,rw /
让根文件系统可写,然后编辑 /etc/fstab 修正错误,再 reboot。
为了避免这种事故,推荐每次改完 fstab 后执行:
bash复制mount -a
这个命令会模拟挂载 fstab 里所有未挂载的文件系统,如果有错误会直接报出来,不会等到重启才炸。这是我在生产环境养成的小习惯,改完必测。
5.4 systemd 挂载单元:更现代的方式
CentOS 7 以后,systemd 可以替代 fstab 管理挂载。比如要挂载 /dev/sdb1 到 /data,可以创建 /etc/systemd/system/data.mount:
ini复制[Unit]
Description=Mount /data
[Mount]
What=/dev/sdb1
Where=/data
Type=xfs
Options=defaults
[Install]
WantedBy=multi-user.target
然后:
bash复制systemctl daemon-reload
systemctl enable --now data.mount
相比 fstab,systemd 单元的好处是错误处理更清晰,支持依赖关系,比如“等网络就绪后再挂载远程目录”。但对于本地磁盘,fstab 足够,我一般不用 systemd 挂载单元给自己添麻烦。
5.5 CentOS 挂载 Samba 共享
热词里“centos挂载samba共享”出现频率不低。如果你要挂载 Windows 共享或 NAS 的 SMB 共享,CentOS 需要安装 cifs-utils:
bash复制yum install -y cifs-utils
mkdir -p /mnt/samba
mount -t cifs //192.168.1.100/share /mnt/samba -o username=user,password=pass,vers=3.0
vers=3.0 是 SMB 协议版本,老 NAS 可能用 vers=1.0,但 SMB1 有安全风险,生产环境建议能不用就不用。密码写在命令行里会被 history 记录,更安全的做法是使用凭据文件:
bash复制cat > /etc/samba-credentials << EOF
username=user
password=pass
EOF
chmod 600 /etc/samba-credentials
fstab 里写:
bash复制//192.168.1.100/share /mnt/samba cifs credentials=/etc/samba-credentials,vers=3.0,uid=1000,gid=1000,_netdev 0 0
_netdev 告诉 systemd 等待网络就绪后再挂载,否则开机可能因网络没起而挂载失败。这个参数对 NFS、Samba 都是必须的。
5.6 自动挂载 vs 即时挂载
如果共享目录不是时刻都在用,可以用 systemd automount 实现“访问时挂载”,减少开机时间和网络依赖。简单来说,你需要写一个 .mount 单元对应的 .automount 单元。这个配置稍微复杂,日常使用频率不高,先不展开细说。真要玩,系统日志和 systemctl status 会告诉你一切。
6. 磁盘故障与性能排查:用命令让数据说话
6.1 磁盘空间满:df 与 du 的区别
df -h 看的是文件系统整体使用率,du -sh 看的是目录实际占用。有时候 df 显示满了,但 du 加起来却对不上,最大的嫌疑是文件被进程删除了但没释放。
排查流程:
bash复制df -h
du -x -h / | sort -h | tail -20
lsof | grep deleted
lsof | grep deleted 能列出已经被删除、但仍被进程打开的文件。找到进程后重启或重载该进程,空间就会释放。遇到这种情况,不要急着删文件,先找到真凶。
6.2 inode 满:明明有空间却写不了文件
很多人只盯磁盘空间,忽略了 inode。一个文件对应一个 inode,如果你存放了大量小文件,比如缓存、邮件队列,inode 可能先被耗尽。
查看方式:
bash复制df -i
如果 IUse% 到 100%,哪怕 df -h 还有几个 T,你也创建不了新文件。解决办法是删除无用小文件,或者规划时就把大文件目录放在 XFS 上(XFS 的 inode 可以动态分配,ext4 是固定数量,更容易出现这个坑)。
6.3 磁盘性能瓶颈:iostat 怎么读
排查磁盘慢,最常用的工具是 sysstat 包提供的 iostat:
bash复制yum install -y sysstat
iostat -x 1 5
重点看两个指标:
%util:设备忙绿百分比,长期超过 80% 说明接近瓶颈;await:平均 I/O 响应时间,机械盘一般几十毫秒,SSD 应该个位数毫秒。
如果 %util 很高但 await 不高,往往是并发量很大但延迟还行;如果 %util 不高但 await 很高,可能有排队或者磁盘故障,需要结合 sar -d 和 smartctl 进一步判断。
iotop 能看到具体是哪些进程在疯狂写盘:
bash复制yum install -y iotop
iotop -o
6.4 磁盘健康状态:smartctl 主动体检
物理磁盘故障大多有前兆。安装 smartmontools:
bash复制yum install -y smartmontools
smartctl -a /dev/sda
重点看 Reallocated_Sector_Ct、Current_Pending_Sector、UDMA_CRC_Error_Count 这几个值。如果出现大量重分配扇区或待映射扇区,恭喜,赶紧备份数据换盘。SSD 还要看 Wear_Leveling_Count 和剩余寿命百分比。
有 RAID 卡的环境,别直接对物理硬盘跑 smartctl,很多 RAID 卡会屏蔽直通。你需要用 megacli 或 storcli 这类厂商工具,或者通过 smartctl -d sat+megaraid,0 /dev/sda 这种设备类型参数读取。
6.5 文件系统只读与意外断电的处理
Linux 检测到文件系统异常时,会主动将磁盘挂载为只读防止进一步损坏。遇到这种情况,先别乱动,把数据备份优先。然后在维护模式下执行:
bash复制umount /data
xfs_repair /dev/mapper/vg_data-lv_data
mount /data
ext4 用 e2fsck -y /dev/...。如果是 XFS,xfs_repair 必须在文件系统卸载状态下进行,而且 XFS 对意外断电的容忍度比较高,一般不需要人工干预,除非挂载日志损坏。
强制关机、断电是 XFS 的大敌。生产环境务必加 UPS,虚拟机也要注意宿主机不要随便强杀。
6.6 Swap 与磁盘的微妙关系
磁盘管理不仅指数据盘,还包括 Swap 空间。内存不足时,Swap 会扛起重担,而 Swap 本身是磁盘上的分区或文件。如果系统频繁换页,你会在 iostat 里看到大量的写入流量,其实是 swap 在写入。
排查内存和 swap:
bash复制free -h
vmstat 1 5
si(swap in)和 so(swap out)长期不为 0,说明内存压力很大,加内存比加磁盘更有效。不要在 Swap 上扣门,但也不要过度依赖 Swap,磁盘再快也比内存慢几个数量级。
6.7 一个实战案例:删了文件但磁盘还满
有一次线上服务器 / 满了,du -sh /* 排除一圈发现所有目录加起来才用了一半,但 df -h / 显示 100%。我用 lsof | grep deleted 找到了一个被 Nginx 打开的 access.log(已经删了但还没释放),日志文件被写成了“幽灵文件”。解决办法是给 Nginx 发送 USR1 信号重新打开日志文件,空间立刻释放。
这个案例告诉我们:磁盘管理不是敲几条命令那么简单,理解文件句柄、文件系统、进程之间的关系,才能在关键时刻不背锅。
7. 一点经验总结
最后分享一个我长期养成的习惯:无论什么环境,拿到新 CentOS 服务器第一件事就是检查分区是否用了 LVM、fstab 有没有用 UUID、根分区的空间规划是否合理。磁盘管理是运维的基础功课,短时间不坏,坏了就是大事。平时多花十分钟规划和检查,遇到故障时能少掉不少头发。
如果你想进一步尝试,可以先从虚拟机里搞一块备用盘,练习用 parted 分区、用 LVM 扩容、在 xfs 和 ext4 之间感受差异。只要不是在核心生产环境乱搞,放开手练就行。踩过几个坑之后,你对 CentOS 磁盘管理的理解会完全不同。
