我们有使用磁盘/dev/sdb
保存数据的Linux机器,我们配置了挂载点/etc/fstab
磁盘是100G
,挂载点是文件夹/data
现在我们想使用内存(我们有256G
),而不是磁盘
那么是否可以使用内存RAM256G
来代替磁盘挂载呢?
如果是的话如何将文件夹挂载/data
到 RAM 内存
什么是 RAM 盘?
基本上,基于 RAM 的文件系统在内存中创建存储,就好像它是磁盘上的分区一样 – 它称为 RAM 磁盘。请注意,RAM 是易失性的,数据会在系统重新启动或崩溃后丢失。 RAM 驱动器最重要的优点是速度 – 甚至比 SSD 快 10 倍以上。这些非常快的存储类型非常适合需要速度和快速缓存访问的应用程序。重复:写入该类型文件的数据
答案1
或多或少就像你想的那样/dev/sdb1
。
首先卸载/dev/sdb1
(您可以将其安装到其他地方)。
umount /dev/sdb1
您可以创建另一个目录并将磁盘挂载到其中:
mkdir /physical-data
mount /dev/sdb1 /physical-data ...(the other options you already have).
在 中/etc/fstab
,将“/data”重命名为“/physical-data”。现在硬盘已像以前一样安装,但/data
可以自由使用。
因此,当该/data
目录可用作挂载点时,您可以将 RAM tmpfs 的实例与其关联,并在其中创建一个 ramdisk 并调用它,例如“ramdisk1”(或其他任何名称):
mount -t tmpfs -o size=100G ramdisk1 /data
您可以设置 fstab 在启动时自动重新挂载它:
ramdisk1 /data tmpfs nodev,nosuid,noexec,nodiratime,size=100G 0 0
例如,您可以设置一个脚本在启动时运行,
rsync -a /physical-data/ /data/
假设您的 /dev/sdb1 已安装在 上/physical-data
,并且在关闭之前运行一个脚本,该脚本会将修改后的 RAM 磁盘的内容复制回/dev/sdb1
rsync -a --delete /data/ /physical-data/
“--delete”选项确保如果您从 RAM 磁盘中删除文件,该文件稍后也会从硬盘中删除。
这样,当电源关闭时,您的数据将驻留在硬盘上,并在电源打开时重新出现在速度更快的 RAM 磁盘上。
不用说,首先进行实验并谨慎使用。如果出现问题,您可能很容易丢失硬盘上的所有数据。