在LINUX环境中,哪种文件系统存储更安全?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
[问题]
    昨天我转载的一文中,提到了对于ext3 reiserfs xfs jfs文件系统不同读写性能的比较。见: http://zhangyu.blog.51cto.com/197148/137389
结论方面,我并不完全同意,但真没精力做那样系统的测试(很敬佩那位老外作者),从文件系统的设计看,那篇文章的测试结果相对是比较符合我的判断的。只是测试并未针对异常操作、崩溃保护方面,文中提到的也很少。
     我以我个人看法,谈谈ext3 reiserfs xfs三种文件系统的安全性(jfs了解不多),泛泛而谈,应该有不当之处,欢迎提供不同的看法,以便改正。
     ext3是多数LINUX上默认的文件系统,也是从传统UNIX文件系统的结构上演变而来的,文件系统设计得非常简单明了,以不同的块组进行数据、节点、块组表的组织。优点是很简单,尤其适用于频繁删除/增加文件、同时每级文件下的文件总数不多的文件系统。
    因EXT3 B树的概念用得较少,在目录检索方面很差,所以同一组目录下不能放太多文件,目录结构也尽可能不能太复杂。
    EXT3的日志功能设计很差,经常会遇到实然断电后,文件系统损坏的情况,实际上ext3对日志的检验、还原方面做得还很不够。
    EXT3采用的数据存储方式相当表格化,格式化时就确定了固定数目的inode,并分配好了空间,当然会导致空间的大浪费,同时当文件太多,达到上限时,文件系统也无法负担。
    EXT3采用全索引的方式对数据存储区域进行索引管理,所以,大量的文件碎片在EXT3上并不会导致严重的数据风险,随机寻址会更快。当然,浪费也会大一些。
    总得看,EXT3并不是一个很安全的文件系统,如果从数据存储安全的角度看,并不推荐。
 
    REISERFS是一个算法敏捷的文件系统,无处不在的树结构使得索引、遍历的适应范围极大,一个上几千万个文件的文件系统,通常也只需要约4级索引就可以到达。但因索引以整个文件系统中所有的节点为单位组织(一颗树),所以即使访问一个文件,复杂程序也不会很低。所以很容易理解的,MOUNT的时间会更长(读取一个根目录就需要从整个树的根读到叶,同时根目录节点并不是索引B树的根节点,也是普通的一个叶节点,这点和其他文件系统很不相同),同时目录节点有机地整合在整个节点树里,并以HASH为索引键值。
    reiserfs的上述主要特征决定了,它在处理少量文件时的优势并不明显,反而会更慢,同时因复杂程度带来更强的不稳定性。但在处理大量文件时,它的稳定性也不会再下降多少,同时树的特征与目录节点的特征,遍历目录结构的性能也不会下降多少。所以特别适合大量文件(邮件系统、大量文件的网站服务器)的使用环境。
    另外,reiserfs也是一种日志文件系统,但日志能力并不很强,日志方面我分析得不多,只从结构方面看,比EXT3的好一点(更加结构化了)。
 
    xfs本身是SGI用在IRIX上的一种文件系统,设计结构感觉滴水不漏,随处可见的分层寻址机制(和REISERFS的设计可是大相径庭),让系统可以更快,更高效得处理指定文件。同时,XFS在寻址上大量运用位操作,这也使得处理大文件时效率更高。
    xfs在目录结构组织方面比较类似于ext3,目录也是以普通数据文件的方式进行存储与管理,这样在应付大量文件读取时,索引性能稍差一些。
    xfs文件系统的日志功能据其他资料讲相对要强一些(本人未作分析),通常不容易崩溃。
 
    从数据删除与格式化角度看,XFS与REISERFS在删除与格式化后,都有机会完整恢复(并不清除节点里的关键信息)。但EXT3恢复的难度就会大很多(清除节点)。
 
    简单的结论,XFS在文件数目不是特别多的情况下是较可靠的。REISERFS在大量小文件的文件系统(超过百万文件,且多数文件小于1MB)上是首选的。




本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/137383,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
1月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
202 11
|
2月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
185 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
3月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
149 20
|
3月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
154 16
|
3月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
265 8
|
3月前
|
安全 Linux C++
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
179 0
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
|
3月前
|
Ubuntu 安全 Linux
Ubuntu 24.10 发行版登场:Linux 6.11 内核、GNOME 47 桌面环境
Ubuntu 24.10 还带来了 GNOME 47,增强了性能和稳定性,并引入了新功能。此版本的 Ubuntu 还默认在采用 Nvidia 显卡的硬件上切换到 Wayland,并在支持的硬件上默认使用开源的 Nvidia 560 内核模块。 另外需要注意的是,Ubuntu 24.10 是稳定版本,但作为非 LTS 版本,仅支持 9 个月。
|
3月前
|
安全 Linux 网络安全
Linux系统初步设置本地Git环境和生成SSH密钥的步骤。
现在您的Linux系统已经配置好了Git环境,并创建并添加了SSH密钥,可以安全地与远端仓库进行交互,无论是克隆、推送还是拉取操作。此过程确保了数据传输的安全并使版本控制流程更为顺畅。使用Git时应考虑定期更新并管理您的凭据,以确保安全性。
490 0
|
3月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
491 0