RAM drive
A RAM drive (also called a RAM disk) is a block of random-access memory (primary storage or volatile memory) that a computer's software is treating as if the memory were a disk drive (secondary storage). It appears as a virtual disk drive and hosts a disk file system.
RAM drives是一种将计算机的内存(RAM)作为磁盘驱动器使用的技术,可以叫内存盘
典型应用包括CD和DVD磁盘映像的挂载。如适用于MacOS的应用程序通常在线提供为一个苹果磁盘映像(.img),里面包含着一个文件系统,而该文件系统中包含该应用程序、该应用程序的文档等文件。部分商业软件公司也会为客户提供联机数据与可启动恢复CD的镜像。
They are in a sense the reverse of virtual memory: RAM drive uses a volatile fast memory as if it's a nonvolatile slow memory. Virtual memory is the opposite.
RAM drive 分类
virtual RAM drive and hardware RAM drive
It is sometimes referred to as a virtual RAM drive or software RAM drive to distinguish it from a hardware RAM drive that uses separate hardware containing RAM, which is a type of battery-backed solid-state drive.
好家伙,直接有把ram当disk用的硬件设备。。。
RAM drive 现状
Historically primary storage based mass storage devices were conceived to bridge the performance gap between internal memory and secondary storage devices. In the advent of solid-state(no moving parts) devices this advantage lost most of its appeal. However, solid-state devices do suffer from wear from frequent writing. Psorimary memory writes do not or in far lesser effect. So RAM devices do offer an advantage to store frequently changing data, like temporary or cached information.
曾经,RAM drive 用来桥接内存和外存间的性能差距;但是随着SSD的出现,RAM drive优势不再明显。
格式化RAM drive
在创建RAM驱动器后,需要对其进行格式化以便为其分配文件系统(通常是ramfs、tmpfs),这样才能在RAM驱动器上存储和管理文件
ramfs 和 tmpfs 都是内存文件系统,但它们之间存在一些关键区别。
-
内存使用和管理:
ramfs:在 ramfs 中,分配给文件系统的内存会一直保留,即使文件被删除。这可能导致内存的低效使用,因为删除的文件空间实际上并未释放。ramfs 可能会导致内存耗尽,因为它不会将文件移出内存。
tmpfs:tmpfs 更智能地管理内存。当文件被删除或不再需要时,tmpfs 会释放内存。tmpfs 还可以将不常用的文件页交换出内存,这有助于在内存不足时释放空间。 -
文件大小限制:
ramfs:ramfs 没有预设的大小限制。实际上,它可以增长到消耗所有可用内存,这可能导致系统不稳定。
tmpfs:tmpfs 允许设置最大大小限制,这有助于防止文件系统消耗过多内存。当达到最大限制时,tmpfs 会像普通文件系统一样报告磁盘已满。 -
交换空间:
ramfs:ramfs 不使用交换空间。所有数据都存储在物理内存中,不会被交换到磁盘。
tmpfs:tmpfs 可以使用交换空间。这意味着当物理内存不足时,tmpfs 可以将不常用的数据页交换到磁盘,从而释放内存。
总之,尽管 ramfs 和 tmpfs 都是将内存用作文件系统的方法,但 tmpfs 通常被认为是更灵活、更可靠的解决方案,因为它可以更好地管理内存使用并提供额外的功能。在大多数情况下,建议使用 tmpfs 而不是 ramfs。
这里我们使用 tmpfs 创建一个 RAM drive:
sudo mkdir /mnt/ramdrive
sudo mount -t tmpfs -o size=1G tmpfs /mnt/ramdrive
RAM drive 可以写入ext4、NTFS 或 FAT32 等文件系统吗
可以,但是需要在ramfs/tmpfs之上通过磁盘映像(disk image)再包装一层
RAM drive 本身通常使用 tmpfs 或 ramfs 文件系统。然而,某些应用程序可能需要特定的文件系统,如 ext4、NTFS 或 FAT32。创建一个磁盘映像文件并对其进行格式化以使用所需的文件系统可以满足这些特定需求。这样,您可以将 RAM drive 与需要特定文件系统的应用程序一起使用。
# 创建一个磁盘映像文件。这个文件的内容将包含我们要创建的文件系统。
sudo dd if=/dev/zero of=/mnt/ramdrive/disk_image bs=1M count=1024
# 对磁盘映像文件进行格式化,使用您选择的文件系统(ext4、NTFS 或 FAT32)
sudo mkfs.ext4 /mnt/ramdrive/disk_image
# 将格式化后的磁盘映像文件挂载到一个新的挂载点
sudo mkdir /mnt/ramdrive_ext4
sudo mount -o loop /mnt/ramdrive/disk_image /mnt/ramdrive_ext4
补充说明:磁盘映像
磁盘映像文件(也称为磁盘镜像文件)是一个包含整个磁盘驱动器或文件系统内容的文件。磁盘映像文件通常用于备份、克隆磁盘、创建虚拟机磁盘或在不同系统之间传输文件系统。
磁盘映像文件的结构和内容与实际磁盘驱动器非常相似,包括文件系统、文件、目录和元数据等。磁盘映像文件可以使用各种文件格式(如 ISO、IMG、VMDK、VHD 等)存储,并可以在需要时挂载到操作系统中,使其看起来像一个实际的磁盘驱动器。
磁盘映像文件在以下场景中非常有用:
-
数据备份和恢复:创建磁盘映像文件可以将整个磁盘或分区的内容备份到单个文件中,方便存储和传输。在需要时,可以将磁盘映像文件恢复到新的磁盘驱动器,快速恢复系统和数据。
-
虚拟机:虚拟机软件(如 VirtualBox、VMware 和 Hyper-V)通常使用磁盘映像文件作为虚拟磁盘驱动器。这使得虚拟机可以访问和操作磁盘映像文件中的文件系统和数据,就像它们是实际的硬件磁盘驱动器一样。
-
克隆和部署系统:磁盘映像文件可以用于克隆系统,将一个已配置好的操作系统和应用程序复制到多台计算机。这在大规模部署系统时非常有用,可以节省大量时间和精力。
-
软件分发:磁盘映像文件(如 ISO 文件)常用于分发操作系统、应用程序和游戏。用户可以下载磁盘映像文件,然后将其刻录到光盘、U 盘或挂载到虚拟驱动器中,以便安装和使用软件。
网友评论