RAMFS是什么

小白 2020-09-23 01:42:03
QA

RAMFS是Linux下一种基于RAM做存储的文件系统。在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储效率。

RAMFS 是 Linux 下一种基于 RAM 做存储的文件系统。在使用过程中你就可以把 ramfs 理解为在普通的 HDD 上建立了一个文件系统,而现在 HDD 被替换成了 RAM,因为是 RAM 做存储所以会有很高的存储效率。

RAMFS是什么

由于 ramfs 的实现就相当于把 RAM 作为最后一层的存储,所以在 ramfs 中不会使用 swap。你什么时候听过会把 HDD 上的文件 swap 到哪里去吗?平常说的 swap 都是针对内存来说的,而 ramfs 底层的存储是 RAM,虽然不是 HDD,但是在 Linux 看来它就跟 HDD 一样。但是 ramfs 有一个很大的缺陷就是它会吃光系统所有的内存,即使你 mount 的时候指定了大小,同时它也只能被 root 用户访问。测试方法很简单:

sudo mount -t ramfs -o size=10M ramfs ./ramfs/

sudo dd if=/dev/zero of=./ramfs/test.file bs=1M count=20

测试时你会发现上面这个操作是能成功的,或者你再自己虚拟机上干脆做狠点,直接写一个比内存更大的文件,你会发现瞬间系统就卡主了。另外在 dd 命令如果不以 root 用户执行就会权限不够:

dd: opening `./ramfs/test.file': Permission denied

tmpfs 也是 Linux 下的一个文件系统,它将所有的文件都保存在虚拟内存中,umount tmpfs 后所有的数据也会丢失,tmpfs 就是 ramfs 的衍生品。tmpfs 使用了虚拟内存的机制,它会进行 swap,但是它有一个相比 ramfs 的好处:mount 时指定的 size 参数是起作用的,这样就能保证系统的安全,而不是像 ramfs 那样,一不留心因为写入数据太大吃光系统所有内存导致系统被 hang 住。在我文章最开始的那个例子中就是 mount 了一个 10M 大小的 tmpfs,然后执行 sql 命令(它需要创建的临时表大于 10M),因为 tmpfs 限制了大小,因此也就报错。那么 tmpfs 适用的场景有哪些呢?在官方文档上主要有如下几点:

kernel 内部需要用到它,而我们是无法看到的

glibc 2.2 以上的版本,必须有一个 tmpfs 被 mount 在/dev/shm 用做 POSIX shared memory

还有很多包括现在还不知道的用途

包括我现在的公司就有一个需求,某些数据如果放在磁盘上访问压力根本扛不住,因此临时做了一个 tmpfs 做缓存来减缓压力,当然这不是最终的解决之道。所以总结来说 ramfs 与 tmpfs 有如下几点异同:

ramfs 会因为数据的写入自动增长空间,所以可能导致最后系统所有的内存耗完

tmpfs 可以再 mount 时限定大小,不会自动增长

ramfs 不会用 swap

tmpfs 会使用 swap

RAMFS 是一个非常巧妙的,利用 VFS 自身结构而形成的内存文件系统。

RAMFS 没有自已的文件存储结构,它的文件存储于 page cache 中,目录结构由 dentry 链表本身描述,文件则由 VFS 的 inode 结构本身描述。

0个人收藏 收藏

相关推荐

  • NAS ZFS

    NAS如何选择文件系统

    选择NAS文件系统时关键因素包括性能、数据安全性、容量、兼容性和易用性。主流选项如EXT4、Btrfs、ZFS、NTFS、exFAT各有特点。高性能和并发访问适合EXT4或ZFS,数据安全性重视者应考虑ZFS或Btrfs。大容量存储偏好ZFS和Btrfs,而高兼容性场景适用NTFS或exFAT。
  • ZFS

    Btrfs和ZFS哪个文件系统更适合NAS

    Btrfs和ZFS都是高效的文件系统,适用于NAS。Btrfs操作简单,适合资源有限和需求灵活性的环境。ZFS提供更高的数据完整性和性能,适合硬件资源充足、对数据安全有高要求的场景。选择应基于硬件资源、数据安全需求和性能考虑。
  • Btrfs 文件系统

    为什么很多NAS厂家都采用Btrfs文件系统

    Btrfs文件系统因其先进的写时复制、数据校验、快照功能和动态卷管理,在NAS领域受到厂家青睐。这些特性提供了强大的数据保护、灵活的存储管理、优化的性能和易于维护的优势。其作为开源项目的一部分,也享有持续的社区支持和发展,使得Btrfs成为满足现代存储需求的理想选择。
  • ZFS

    为什么ZFS文件系统更适合NAS设备

    ZFS文件系统以其独特的特性非常适合NAS设备。它提供了高级的数据完整性保护,优化了性能和容量利用率,支持灵活的数据管理,如快照和克隆,且易于扩展和维护。ZFS是一个可靠、高效且易于管理的NAS存储解决方案,满足高要求数据存储需求。
  • Linux 文件系统 Linux File System

    Linux系统应该如何选择文件系统

    Linux系统选择合适的文件系统对于优化性能和确保数据安全至关重要。Ext4适合大多数个人和小型服务器,提供良好的性能和稳定性。XFS优于处理大文件和高并发操作,适合企业级数据库。Btrfs和ZFS以高级功能和数据保护著称,适合需要高级数据管理的环境。
  • XFS 文件系统 XFS Filesystem

    XFS文件系统是什么

    XFS文件系统是一种高性能的文件系统,专为处理大型文件和高容量存储设计。它通过高效的B树索引和日志式结构提供快速数据访问和优秀的扩展性。XFS特别适合用于大型数据库、多媒体处理和科学计算等需要高速存取和大数据量管理的应用。虽然它在小文件处理上可能不如某些其他文件系统高效。