最后还是没用1c2G10G装PBS,大盘性能毕竟太差了。还是安静的做个存储吧。
既然你使用的是块存储(Block Storage),性能通常比挂载的网络磁盘(如 NFS/WebDAV)要好得多。
对于 PBS (Proxmox Backup Server) 这种极其依赖文件索引和频繁 IO 的服务,我建议使用 LVM 来管理这 2T 存储,但在文件系统选择上要保持克制。
以下是针对你的硬件环境(2G 内存/2T 磁盘)的最佳实践建议:
1. 为什么建议使用 LVM?
即使你现在只有一块 2T 的磁盘,使用 LVM 依然有以下不可替代的优势:
- 弹性扩展: 如果以后你的存储不够了,再挂载一块新的块存储,你可以通过
lvextend无缝把两个磁盘合并成一个大的逻辑卷,而无需迁移数据。 - 管理方便: 你可以在 LVM 上直接划分一个独立的 Logical Volume (LV) 作为 Swap 空间,这比 Swapfile 的性能理论上更稳定。
- 快照能力: 虽然 PBS 内部有冗余逻辑,但 LVM 快照在某些系统底层维护时非常有用。
2. 最佳方案架构:LVM + Ext4
在 2G 内存 的限制下,千万不要用 ZFS。ZFS 虽然是 Proxmox 的亲儿子,但它的 ARC 缓存会疯狂吞噬内存,在 2G 环境下会导致 PBS 在执行垃圾回收(GC)时频繁触发 OOM(内存溢出)。
最佳配置:
- 底层: LVM (Logical Volume Manager)
- 文件系统: Ext4(比 XFS 在处理 PBS 这种数以百万计的小文件时更省资源,且支持缩减容量)。
3. 落地执行步骤
A. 初始化 LVM
假设你的块存储设备是 /dev/sdb(请务必确认名称!):
# 1. 创建物理卷
pvcreate /dev/sdb
# 2. 创建卷组 (命名为 pbs_data)
vgcreate pbs_data /dev/sdb
# 3. 创建逻辑卷 (留一点点余量,比如分配 1.9T,剩下的以后应急)
lvcreate -L 1.9T -n datastore pbs_dataB. 格式化并挂载(针对 PBS 优化)
PBS 会产生海量的 4MB 左右的 chunk 文件,我们需要对 Ext4 进行优化:
# 格式化,启用 64bit 以支持大容量,禁止预留块以榨干空间
mkfs.ext4 -m 0 -O 64bit /dev/pbs_data/datastore
# 挂载时禁用 atime (减少写 IO,提升 PBS 扫描速度)
mkdir -p /mnt/pbs_storage
mount -o noatime /dev/pbs_data/datastore /mnt/pbs_storage别忘了把挂载信息写入 /etc/fstab: /dev/pbs_data/datastore /mnt/pbs_storage ext4 noatime,defaults 0 2
4. 关于 Swap 的进阶策略
既然你用了 LVM,你可以考虑把之前想做的第二个 Swapfile 换成 Swap LV:
在 2T 的 LVM 里分出 8G 做 Swap:
lvcreate -L 8G -n swap_lv pbs_data mkswap /dev/pbs_data/swap_lv swapon -p 5 /dev/pbs_data/swap_lv- 系统盘(10G SSD) 依然保留一个 2G 的 Swapfile (优先级设为 10)。
- 这样性能最好的 SSD 优先承担交换压力,2T 磁盘作为大容量兜底。
5. PBS 特有的优化(2G 内存活下去的关键)
由于 PBS 在执行 Garbage Collection (GC) 时会扫描所有索引,非常吃内存。
- 限制 Datastore 缓存: 在 PBS 的 Web UI 创建 Datastore 时,由于我们用的是 Ext4,Linux 内核会自动利用剩余内存做 Page Cache,这比手动限制要智能。
- 网络调优: 既然这台是存储 VPS,记得把你的 BBR 跑起来,毕竟备份数据流通常很大。
不使用pbs的情况
给大盘划分出一个较大的swap,比用swapfile效率高,且不影响存储区的‘文件碎片’。
准备: 安装lvm2
apt update && apt install lvm2 -y1. 初始化物理卷 (PV)
如果直接输入 pvcreate 报错,请尝试加上路径 /sbin/。
# 初始化 2T 的 vdb
pvcreate /dev/vdb2. 创建卷组 (VG)
为了和系统自带的 vg 区分开,建议起名为 vg_data。
# 创建名为 vg_data 的卷组
vgcreate vg_data /dev/vdb3. 创建逻辑卷 (LV)
A. 创建 Swap 卷 (假设 8G)
lvcreate -L 8G -n lv_swap vg_data
# 格式化并启用
mkswap /dev/vg_data/lv_swap
swapon /dev/vg_data/lv_swapB. 创建数据卷 (使用剩余所有空间)
lvcreate -l 100%FREE -n lv_storage vg_data格式化为 ext4 (或者 xfs)
mkfs.ext4 /dev/vg_data/lv_storage4. 挂载与开机自启
创建挂载点并修改 /etc/fstab:
mkdir -p /data写入 fstab
cat >> /etc/fstab <<EOF
/dev/vg_data/lv_swap none swap sw 0 0
/dev/vg_data/lv_storage /data ext4 defaults 0 2
EOF挂载数据卷
systemctl daemon-reload运行
mount -a注意事项:
- 工具路径:如果
pvcreate依然提示找不到,请执行export PATH=$PATH:/sbin:/usr/sbin临时修复环境变量。 - 扩容灵活性:之所以建议数据卷不一定要一次性占满
100%FREE,是因为 LVM 支持在线扩容。如果你以后想给 Swap 增加空间,留一点剩余在 VG 里会更方便。 - 确认磁盘:请确保
vdb确实是空的,执行pvcreate会擦除该盘上的所有元数据。
ULTRAVPS推荐 AFF 用aff前6个月有15%折扣(活动款除外)