Linux block ram disk 块设备创建指南与性能测试
1.First | 序
Block RAM Disk 即 brd
是 Linux 内核中的一个模块,用于创建基于 RAM 的块设备
与
tmpfs和ramfs对比如下
| 特性 | Block RAM Disk (brd) |
ramfs |
tmpfs |
|---|---|---|---|
| 存储方式 | 内存映射块设备,无压缩 | 内存存储,无压缩 | 内存存储,支持压缩 |
| 内存使用 | 使用指定大小的内存空间 | 动态分配内存,大小不受限制 | 动态分配内存,大小可限制 |
| 是否使用 Swap | 不使用 swap | 不使用 swap | 可以使用 swap(受内存压力时) |
| 是否支持压缩 | 不支持压缩 | 不支持压缩 | 支持内存压缩(减少占用空间) |
| 适用场景 | 高速缓存、大文件存储、临时存储等 | 临时文件存储、不持久数据 | 临时文件存储、/tmp、日志缓存等 |
| 是否易导致 OOM | 不容易,容量受系统内存限制 | 容量没有限制,可能导致 OOM | 容量有限,容易在内存不足时使用 swap |
| 使用方式 | 需要格式化为文件系统,挂载为块设备 | 无需格式化,直接挂载为文件系统 | 无需格式化,直接挂载为文件系统 |
与
zram对比如下
| 特性 | zram | Block RAM Disk (brd) |
|---|---|---|
| 数据存储 | 压缩后存储在内存中,节省内存空间 | 不进行压缩,直接存储在 RAM 中 |
| 目的 | 节省内存并提高 I/O 性能,常用作 swap 设备 | 创建一个虚拟的块设备,通常用于高速缓存 |
| 容量 | 可以存储更多数据,因为数据被压缩 | 受物理内存限制,容量较小 |
| 适用场景 | 临时存储、高效 swap、低延迟应用(如数据库缓存) | 高速缓存、临时文件存储、文件系统测试等 |
| Linux 支持 | 使用 zram 模块,可以通过 swapon 进行启用 |
使用 brd 模块,可以通过 mount 挂载 |
| 系统负担 | 提供压缩功能,但会消耗 CPU 进行压缩和解压 | 不需要压缩,但内存会直接占用 |
1.2.OS Version | 示例环境
-
OS | 系统

2.Knowledgebase | 知识库
首先熟悉了解
brd模块
在 Linux 系统下 当加载 brd 模块时会创建其 brd=block ram disk
有三个参数分别是
rd_nrbrd 设备的最大数量
rd_size每个 RAM 磁盘的大小(以千字节为单位)
max_part每个 RAM 磁盘的最大分区数
3.Procedure | 步骤
具体步骤如下:
- 创建
- 格式化
- 挂载
- 测试
- 移除
3.1.create brd
以下为一些示例,实际根据自身需求创建即可
-
创建一个有一个分区的大小为
10G的brdmodprobe brd rd_size=10240000 rd_nr=1 max_part=1Ex PIC| 示例图片
-
创建一个有一个分区的大小为
1G的brdmodprobe brd rd_size=1024000 rd_nr=1 max_part=1 -
创建两个个有一个分区的大小为
1G的brdmodprobe brd rd_size=1024000 rd_nr=2 max_part=1Ex PIC| 示例图片
3.2.format brd
使用 mkfs 命令格式化 brd
mkfs.ext4 /dev/ram0
Ex PIC| 示例图片

3.3.mount brd
使用 mount 命令挂载 brd
mount /dev/ram0 /mnt/ram0
3.4.Test brd
使用 yabs.sh 脚本中的 fio 测试
curl -sL yabs.sh | bash -s -- -ig
Ex PIC| 回显图片

3.5.rm brd
使用完毕后删除 brd
-
(若仍在挂载)取消挂载umount /dev/ram0 -
移除
brd模块modprobe -r brd
4.Ex | 拓展
4.1.brd
如果在创建 brd 时不指定 rd_nr 参数
Linux 默认会创建 ram0~ram15 这 16 个块设备
这些块设备均有相应的 rd_size 但互相共享
Ex | 示例

4.2.Test (NVMe-oF)
手头正好有相应的 NVMe-oF 环境
跟测一下
NVMe Over RDMA(RoCE) 配置指南
1x1.First | 序 此篇记录 NVMe Over RDMA(RoCE) 配置过程 2x1.What is NVMe-oF | 什么是 NVMe-oF 以下释义来自于ChatGPT NVMe-oF(Non-Volatile Memory Express over Fabrics是一种将NVMe(非易失性存储器表达)协议扩展到网络环境中的技术 NVMe 本身是一种用于固态硬盘(SSD) 的高速存储协议,能够充分发挥基于NAND闪存 的存储设备的性能 NVMe-oF 则是将 NVMe 协议通过不同的网络协议(如RDMA、Ethernet、Fibre Channel等)传输到远程存储设备,从而支持分布式存储系统 2x2.What is RDMA | 什么是 RDMA 以下释义来自于ChatGPT RDMA(远程直接内存访问,Remote
-
NVMe-oF target
fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/ram0): --------------------------------- Block Size | 4k (IOPS) | 64k (IOPS) ------ | --- ---- | ---- ---- Read | 1.32 GB/s (330.3k) | 5.43 GB/s (84.8k) Write | 1.32 GB/s (331.2k) | 5.46 GB/s (85.3k) Total | 2.64 GB/s (661.5k) | 10.89 GB/s (170.2k) | | Block Size | 512k (IOPS) | 1m (IOPS) ------ | --- ---- | ---- ---- Read | 3.49 GB/s (6.8k) | 3.50 GB/s (3.4k) Write | 3.67 GB/s (7.1k) | 3.73 GB/s (3.6k) Total | 7.16 GB/s (14.0k) | 7.24 GB/s (7.0k)

-
NVMe-oF host
fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/nvme0n1): --------------------------------- Block Size | 4k (IOPS) | 64k (IOPS) ------ | --- ---- | ---- ---- Read | 604.44 MB/s (151.1k) | 2.43 GB/s (38.0k) Write | 606.03 MB/s (151.5k) | 2.45 GB/s (38.2k) Total | 1.21 GB/s (302.6k) | 4.88 GB/s (76.3k) | | Block Size | 512k (IOPS) | 1m (IOPS) ------ | --- ---- | ---- ---- Read | 2.08 GB/s (4.0k) | 1.93 GB/s (1.8k) Write | 2.19 GB/s (4.2k) | 2.05 GB/s (2.0k) Total | 4.28 GB/s (8.3k) | 3.99 GB/s (3.8k)

Thanks & Copy
Using the RAM disk block device with Linux — The Linux Kernel documentation
docs.kernel.org
Creating a RAM Disk | Support | SUSE

suse.com
