无法使用模块 brd 创建不同大小的 ramdisk。(Linux)

无法使用模块 brd 创建不同大小的 ramdisk。(Linux)

我正在 Linux 机器上为我们正在进行的项目创建 RAM 块设备。我不想使用 tmpfs。

当我使用模块 brd 创建 ramdisk 时,我运行以下命令

modprobe brd rd_size=1048576

这将创建 16 个设备 -> /dev/ram[0-15] (所有大小均为 1 GB)

但现在我想创建两个不同大小的 ramdisk,比如 1Gb 和 2Gb。

我还知道我可能能够使用 lvm 将两个设备“合并”在一起,并从两个 1GB 设备创建一个新的 2GB 设备。

但我希望模块能够创建不同大小的 ramdisk,而不必进行合并。

我已经寻找过一种方法来做到这一点,但似乎没有办法。

有人知道是否有办法做到这一点?

答案1

我一直在寻找有关 RAM 磁盘的类似信息(在我的情况下,计划将 RAM 磁盘作为 RAID 1 阵列的一部分)。对于部分答案,因为我不确定如何创建不同大小的 RAM 磁盘:

尝试:modprobe brd rd_nr=1 rd_size=1048576 max_part=0

哪个应该创建一个 1GB RAM 磁盘。也许将 rd_nr=1 改为 rd_nr=3?这应该会给出三个 1G RAM 磁盘,然后将它们组装到 2GB 或 LVM?

参考解决方案,并原谅 necro-post 答案(关于这个问题仍然非常缺乏文档): http://forums.debian.net/viewtopic.php?f=5&t=114458

答案2

选项1

创建一个 4GB 的 RAM 磁盘。然后在其上创建两个分区。第一个分区为 1GB,第二个分区为 2GB。使用分区。

这是 modprobe 命令:

modprobe  brd  rd_nr=1  rd_size=4194304  max_part=2

我假设您已经知道(或可以轻松学习)如何对设备进行分区,例如使用gdisk。我们需要一个大于 3GB 的设备,因为 MBR 或 GPT 标头将使用设备上的少量空间。

选项 2

创建两个 2GB 的 RAM 磁盘。然后在其中一个上创建 1GB 的分区。使用 2GB 的 RAM 磁盘和 1GB 的 RAM 分区。

modprobe  brd  rd_nr=2  rd_size=2097152  max_part=1

笔记: 我相信brd设备上的内存仅在写入时才分配。因此上述任何选项都不会浪费内存。

相关内容