如何在 64 位 Ubuntu 服务器上自动挂载/卸载 ramdisk?

如何在 64 位 Ubuntu 服务器上自动挂载/卸载 ramdisk?

我的 Ubuntu 服务器有 24GB 的 RAM。我想在启动时自动创建一个 ramdisk 并从/home/user1/ramdisk文件夹中加载文件。当系统关闭时,我需要将文件从ramdisk该目录加载回来。

我怎样才能实现这个目标?

答案1

虽然 upstart 可以用于做这样的事情,但只有在用户意识到数据是易失性的前提下才建议这样做,并且可能会迷路

考虑一下断电的情况。机器不可能对此做出反应并快速将数据从 ramdisk 移动到其他存储设备。

这意味着:数据不再安全。

因为您想要挂载它,所以您需要超级用户权限,这意味着您还可以直接存储/dev/shm系统启动时创建的易失性数据。

答案2

正如 status_access_denied 在他的回答中指出的那样,这对于数据来说并不安全,因为如果发生断电或其他不受控制的关机,数据就会丢失。

此外,您通常最好让操作系统决定在 RAM 中保存什么。如果您将一大块 RAM 用于此类特定文件,那么它就不能将其用于其他用途,例如缓存其他文件、VM 内存、数据库以及您的服务器正在执行的其他任何操作。

如果您想确保数据在启动时位于缓存中(如果内存确实不需要用于其他任何操作,数据将保留在那里),您可以运行如下命令:

find /path/to/directory -type f | xargs cat > /dev/null

在启动时。上述命令将导致读取所有文件,并因此通过缓存子系统。Debian 和 Ubuntu(可能还有其他发行版)/etc/rc.local在启动过程结束时运行脚本,因此这可能是放置命令最简单的位置。如果加载的数据量很大和/或分布在许多大文件中,您可能需要限制读取的速率,以便这不会干扰正在进行的任何其他操作(即,如果您在启动后直接登录,或者其他服务仍在启动),例如:

find /path/to/directory -type f | xargs pv --rate-limit 1M --quiet > /dev/null

您会pv在标准存储库中找到。该--rate-limit选项按照其说明执行(在本例中将速率限制为 1Mbyte/sec)并--quiet告诉它不要理会进度条和其他显示。

如果您希望服务器偶尔重新读取文件,以便在文件被其他程序推出时将其重新放入缓存中,则可以将命令放入 cron 作业中。

相关内容