大容量存储规划:分区、文件系统与扩容
从分区表选型到文件系统、对齐、挂载与在线扩容,教你把大容量磁盘规划得既稳又能长。
当你的服务器或物理机挂上几块大盘,随手 mkfs 往往会在半年后付出代价:分区表撑不住、文件系统不适配、想扩容却发现布局锁死。提前做一点规划,能省下之后停机迁移的麻烦。
分区表:超过 2TB 必须用 GPT
传统 MBR 分区表最大只能寻址 2TB,超过的空间会被直接浪费,而且最多 4 个主分区。现代磁盘一律用 GPT:支持超大容量、分区数量几乎不受限,还自带备份分区表更耐损坏。
sudo parted /dev/sdb # 交互式
(parted) mklabel gpt # 建立 GPT 分区表
(parted) mkpart data 1MiB 100% # 从 1MiB 起始(保证对齐)
> 风险提醒:mklabel 会清空整块盘的分区信息,mkfs 会清空分区里的数据。操作前务必用 lsblk、blkid 确认盘符,别把系统盘或有数据的盘当成空盘。
对齐与 inode
从 1MiB 起始就能保证与 SSD/RAID 的物理边界对齐,避免写放大导致性能骤降。格式化时,如果盘上是海量小文件(邮件、图片缩略图),用 -i 调小每个 inode 的字节数以增加 inode 数量;若是少量大文件(视频、备份),默认值即可,别浪费。
文件系统:ext4 还是 xfs
- ext4:成熟稳妥,支持缩小(shrink),中小容量、通用场景的默认选择。
- xfs:对大文件、大容量、高并发表现更好,可在线扩容但不能缩小。数据盘上 TB 级容量、数据库、媒体库更推荐它。
sudo mkfs.ext4 /dev/sdb1 # 或
sudo mkfs.xfs /dev/sdb1
布局规划:系统盘与数据盘分离
把系统盘和数据盘分开是核心原则。系统盘只装操作系统,数据盘独立承载业务数据。这样重装系统不动数据、备份粒度更清晰、单盘故障影响面更小。同时预留增长空间——用 LVM 时别一次把卷组占满,留一部分给未来扩容。
扩容:云盘扩容或 LVM
两条主流思路,共同点是先扩底层、再扩文件系统:
- 云盘扩容:控制台把盘扩到更大容量后,先 growpart /dev/sdb 1 扩分区,再扩文件系统。
- LVM:lvextend -L +500G /dev/vg/data 扩逻辑卷,再扩文件系统。
sudo resize2fs /dev/sdb1 # ext4 在线扩容
sudo xfs_growfs /data # xfs 按挂载点扩容
挂载并写入 fstab
临时挂载重启即失效,要持久化必须写 /etc/fstab,并用 UUID 而非盘符(盘符可能变化):
sudo mkdir -p /data
sudo blkid /dev/sdb1 # 取 UUID
echo 'UUID=xxxx /data xfs defaults 0 2' | sudo tee -a /etc/fstab
sudo mount -a # 校验配置,不报错才算成功
> mount -a 不报错再重启是铁律——fstab 写错会导致系统进不去救援模式。
小结
超过 2TB 用 GPT、从 1MiB 对齐;大容量大文件倾向 xfs、需要缩小选 ext4;系统盘数据盘分离并预留增长;扩容记住"先底层后文件系统";挂载用 UUID 写 fstab 并 mount -a 验证。规划做在前面,扩容就只是几条命令的事。