Host-Managed SMR(简称 HM-SMR)是一种特殊类型的硬盘驱动器,采用了叠瓦式磁记录技术(Shingled Magnetic Recording, SMR)。与传统的硬盘不同,HM-SMR 硬盘在写入数据时需要主机(Host)进行管理,以确保数据的正确写入和读取。
这是一块非常硬核的硬盘,胜在价格便宜,缺点是对文件系统和写入模式要求较高,不适合随机写入场景,更多适合归档存储和顺序写入场景,对顺序写入有着极其严格变态的要求。
我购买了一块 16TB 的 HM-SMR 硬盘,价格仅为同价位 CMR 硬盘容量的1/3,主要用于 PVE 硬盘的冷数据存储和备份,接下来分享一下我的使用体验和配置方法。
PVE 原生支持 Zone 写入的文件系统,由于这块盘不支持随机写入,不能用 ext4 或 xfs(除非套一层 dm-zoned,但那个性能开销大且麻烦)。直接用 btrfs:
# -d single -m single 表示数据和元数据都用单盘模式
# 系统会自动检测到这是 Zoned 设备并开启 Zoned 模式
mkfs.btrfs -d single -m single -f /dev/sdd
挂在到 /mnt/smr_backup:
mkdir -p /mnt/smr_backup
# 查看 UUID
blkid /dev/sdd
# 编辑 fstab
nano /etc/fstab
# 添加一行 (替换你的 UUID)
UUID=你的UUID值 /mnt/smr_backup btrfs defaults,nofail 0 0
# 挂载
systemctl daemon-reload
mount -a
可以测试一下写入速度,顺序写入速度非常不错:
apt install fio -y
fio --name=write_test --filename=/mnt/smr_backup/testfile --size=5G --bs=1M --rw=write --direct=1 --ioengine=io_uring
我的测试结果大概在 140-160MB/s 左右,完全满足备份需求,如下:
root@pve:/mnt # fio --name=write_test --filename=/mnt/smr_backup/testfile --size=5G --bs=1M --rw=write --direct=1 --ioengine=io_uring
write_test: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=io_uring, iodepth=1
fio-3.39
Starting 1 process
write_test: Laying out IO file (1 file / 5120MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=132MiB/s][w=132 IOPS][eta 00m:00s]
write_test: (groupid=0, jobs=1): err= 0: pid=8044: Sun Dec 21 00:42:57 2025
write: IOPS=145, BW=146MiB/s (153MB/s)(5120MiB/35185msec); 0 zone resets
slat (nsec): min=17042, max=62309, avg=29487.62, stdev=4883.18
clat (msec): min=3, max=118, avg= 6.84, stdev= 1.96
lat (msec): min=3, max=118, avg= 6.87, stdev= 1.96
clat percentiles (msec):
| 1.00th=[ 6], 5.00th=[ 6], 10.00th=[ 6], 20.00th=[ 7],
| 30.00th=[ 7], 40.00th=[ 7], 50.00th=[ 7], 60.00th=[ 7],
| 70.00th=[ 8], 80.00th=[ 8], 90.00th=[ 8], 95.00th=[ 8],
| 99.00th=[ 8], 99.50th=[ 9], 99.90th=[ 32], 99.95th=[ 36],
| 99.99th=[ 120]
bw ( KiB/s): min=98304, max=172032, per=100.00%, avg=149123.66, stdev=9832.95, samples=70
iops : min= 96, max= 168, avg=145.63, stdev= 9.60, samples=70
lat (msec) : 4=0.47%, 10=99.10%, 20=0.27%, 50=0.14%, 250=0.02%
cpu : usr=0.48%, sys=0.26%, ctx=5120, majf=0, minf=8
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,5120,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=146MiB/s (153MB/s), 146MiB/s-146MiB/s (153MB/s-153MB/s), io=5120MiB (5369MB), run=35185-35185msec
接着在 PVE 界面添加存储,选择目录类型,路径选择 /mnt/smr_backup 即可,如下:

配置完成后,可以直接在 PVE 界面使用这块 HM-SMR 硬盘进行虚拟机和容器的备份存储,享受大容量低成本存储的优势。

这个写入是完全安全的,vzdump 备份本身是顺序写入的场景,非常适合 HM-SMR 硬盘使用。