別再折騰了,生產環境磁盤就該這么分!區分物理機和虛擬機的不同分法
對于運維來說,磁盤分區也是重要的一課。我今天根據多年的運維經驗,分享一些磁盤分區的原則。

1. 越簡單越好
生產環境里,分區方案其實就幾個重點:
- 必須有的:啟動分區/boot、根分區/、數據分區/data(不一定是/data也可以是其他名字)
- 可選的:swap(內存不夠時兜底用)、/boot/efi(物理機必需)
其他那些 /var、/opt、/home 的,大部分時候都沒必要單獨分一個區,數據不是很多,放根分區就好。
2. 物理服務器怎么分?
物理服務器一般都是 UEFI 啟動,所以必須有 /boot/efi。
一個常見的分法是:
- /boot/efi:200~600M,放 EFI 引導文件,沒有它可能開不了機
- /boot:1G,放內核和啟動文件
- /:50~100G,裝系統
- /data:剩下的全部,放應用、數據庫、日志
- swap:16~32G(可選),給內存兜底用,像K8S這些就可以不使用
總結一句:物理機一定要有 /boot/efi,不然后果很嚴重。
3. 虛擬機怎么分?
虛擬機(KVM、VMware、云主機)大多數還是 BIOS 啟動,這里就不需要 /boot/efi 了。
推薦分法:
- /boot:1G,啟動分區
- /:50~100G,系統
- /data:剩下的全部,業務數據都放這里
- swap:8~16G(可選),兜底
甚至很多云主機廠商干脆不給 /boot,直接給你一個 / 根分區,你只要記得單獨掛一個 /data 就好。
4. swap 要不要?
swap 就是“假內存”。當內存不夠用時,系統會把部分數據寫到 swap 去。
(1) 建議有 swap 的場景
- 內存比較小(<16G),swap 可以兜底,swap = 內存大小,避免 OOM 殺進程
- 某些數據庫(Oracle、PostgreSQL)安裝時強制要求存在 swap
(2) 可以不分 swap 的場景
- 內存充足(32G/64G+),系統穩定跑內存內業務
- 高性能場景(數據庫、Redis),不希望 swap 拖慢 IO
- 已經用 cgroup / Kubernetes 等限制資源
注意:swap 只是兜底,不是讓你當內存用。業務長期跑在 swap 上,性能會被拖死。
5. 最后總結
生產環境分區,別搞復雜,記住幾個關鍵點就行:
- 物理機:/boot/efi + /boot + / + /data + (swap 可選)
- 虛擬機:/boot + / + /data + (swap 可選)
還有一個問題就是你是一塊盤還是多塊盤,如果是多塊盤,/boot和/分區用一塊,其他給數據盤使用。還可以用LVM將多塊盤做成邏輯卷,給數據盤使用。
復雜是新手的炫技, 簡單才是老司機的智慧。























