网站首页 > 技术文章 正文
天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据清除、数据备份、数据取证、数据迁移解决方案,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。
天津鸿萌科贸发展有限公司是众多国际主流数据取证、数据恢复、数据备份及同步软件的授权代理商:Miray(HDClone/HDShredder)、Killdisk、Passware、PassMark、ElcomSoft、R-Studio、Systools、GetData、Stellar、ReclaiMe、UFS Explorer、SyncBack Pro、ViceVersa Pro 等。
文件系统构成了任何操作系统不可或缺的一部分。大多数操作系统倾向于使用自己的原生文件系统格式,这些格式在其他环境中可能受到限制或不可用。Unix 系列操作系统及其变体,如 BSD 和 Solaris,传统上依赖于 UFS,后来升级到 UFS2。随后,出现了源自 Solaris 的 ZFS 下一代文件系统。
UFS/UFS2 系列
UFS(UNIX 文件系统)源于 Berkeley Fast File System (FFS)。UFS 最终成为运行 BSD 和其他 Unix 衍生产品的机器的主要格式。目前,尽管在功能方面相当过时,但鉴于其高度稳定的性能,UFS 仍然是首选的文件系统。
UFS 中的存储空间分为 Cylinder 组。他们的位置和其他重要的服务信息可以在 Superblock 中找到。UFS 中的文件由称为 inode 的单个描述符以及构成其内容的数据块表示。每个 Cylinder 组都使用专用位图跟踪其空闲块和 inode。
inode 具有文件的所有属性,但其名称除外。它还存储其前 12 个数据块的直接地址。如果有更多块,则后续地址指向存储直接块地址的间接块。另一方面,目录由将 inode 编号与驻留在给定目录中的文件的名称相关联的条目组成。
尽管 UFS 为每个文件创建一个 inode,但它允许将同一文件存储在多个目录中,并以不同的名称存储。此类文件共享相同的 inode,称为硬链接。在这种情况下,inode 将指示对它的精确引用数。
多年来,UFS 经历了许多变化。后来,UFS2 作为原始 UFS 的替代品推出,并逐渐在数 TB 存储设备上普及。此外,许多 Unix 供应商创建了他们自己的 UFS 变体。例如,Sun Microsystems 在 Solaris 7 中为其 UFS 版本添加了日志功能。此文件系统在将所有元数据更新应用于任何实际结构之前将其记录在日志中,从而确保其防止在此过程中可能发生的崩溃。
因此,不同的 UFS 版本之间可能存在相当大的差异。虽然整个文件系统系列都统称为 UFS,但它的许多实例可能适用于特定用途或具有与对应的 Unix 变体不兼容的专有扩展。
ZFS
ZFS(Zettabyte 文件系统)从根本上改变了文件系统的概念。它提供本机卷管理功能,类似于基于 RAID 的技术提供的功能,以及许多其他独特的功能。
ZFS 可以合并多个存储介质,组合成一个单一的共享存储池。它可能包含一个或多个称为 vdev 的虚拟设备。每个 vdev 都由一个单独的标签描述,该标签也包含其 Uberblock。后者的功能类似于其他文件系统中的 Superblock。
存储分配以可变大小的块执行。这些块被组织为不同类型的对象,如文件对象和目录对象。一种称为 dnode 的特殊结构记录对象类型、大小并指向存储其数据内容的块。一个 dnode 中最多可以有三个块指针。这样的指针可以引用存储实际数据的叶块,也可以引用反过来指向另一个块的间接块。
类似的对象组合在一起,形成对象集。此类集合中的每个对象都可以通过其编号来标识。描述它们的 dnode 集合也存储为由称为 metadnode 的特殊 dnode 指向的对象。称为 Meta Object Set 的专用对象集保留描述整个存储池的元数据。
ZFS 还采用写入时复制 (Copy-on-Write, CoW) 机制。它总是创建要修改的块的副本,而不是直接替换它。作完成后,块指针将更新以指示新写入块的地址,而原始版本保持不变。
目前,ZFS 在企业和精通技术的个人电脑中广泛部署。
Unix OS 系列的其他存储技术
UFS/UFS2 是一种传统的文件系统,更适合相当简单的用例。虽然在基本的文件系统功能方面是独立的,但它不包括任何高级存储管理功能,并且必须依赖内核级框架或外部实用程序来处理更复杂的任务,例如 RAID 或加密。相比之下,ZFS 是下一代格式,它将文件系统和各种卷管理机制组合到一个包中,无需外部工具。
以下是一些可以补充这些文件系统的常见存储技术:
- GEOM 框架 – 一个模块化的存储框架,可以与 FreeBSD 操作系统中的 UFS/UFS2 结合使用,允许对该文件系统所在的存储设备进行高级配置。GEOM 将它们抽象为可供文件系统使用的虚拟 “providers”。此类提供程序可以由单个驱动器、组织为 RAID 0(条带化)或 RAID 1(镜像)的多个驱动器或加密卷表示。
- zPool – ZFS 中的一种核心存储结构,它利用此文件系统的本机池功能,将多个设备聚合到单个逻辑存储单元中。在这样的池中,数据可以无冗余地分布在驱动器之间(类似于 RAID 0),镜像到两个或多个驱动器之间(类似于 RAID 1)或组织为 RAID-Z,这是一种更高级的设置,如下所述。
- RAID-Z — ZFS 文件系统中内置的类似 RAID 的功能,用于提高存储效率并提供容错能力。池中的数据被划分为跨多个磁盘写入的块,并为这些块中的数据计算一个或多个奇偶校验块。根据所选的配置,阵列可以使用单个奇偶校验块来防止一个驱动器 (RAID-Z1) 发生故障,使用两个奇偶校验块来承受两个驱动器的故障 (RAID-Z2),或三个奇偶校验块来允许三个驱动器发生故障 (RAID-Z3)。
- ZFS 加密 — 集成到 ZFS 文件系统中的加密功能。这样可以独立加密 ZFS 池中的每个数据集,从而确保存储数据的特定部分的安全性。
- 上一篇: 电商系统购物车模块设计
- 下一篇: 《我的世界》机械动力物流元件合成表与功能详解
猜你喜欢
- 2025-04-26 《我的世界》机械动力物流元件合成表与功能详解
- 2025-04-26 电商系统购物车模块设计
- 2025-04-26 AI如何将“一篇文章”一键转换成“讲解视频”?
- 2025-04-26 存储过程:强大与便捷的完美融合
- 2025-04-26 业务对象、数据实体、物理表傻傻分不清楚
- 2025-04-26 Win11学院:如何从Win10(MBR)无损数据升级到Win11(GPT)
- 2025-04-26 电脑存储清理对比:Macbook更强还是Windows老练?
- 2025-04-26 宇宙科幻文明系列:宇宙法则——宇宙构成元素(1)
- 2025-04-26 mysql的逻辑存储
- 2025-04-26 块存储是什么?核心原理和作用是什么?
- 06-13C++之类和对象(c++中类和对象的区别)
- 06-13C语言进阶教程:数据结构 - 哈希表的基本原理与实现
- 06-13C语言实现见缝插圆游戏!零基础代码思路+源码分享
- 06-13Windows 10下使用编译并使用openCV
- 06-13C语言进阶教程:栈和队列的实现与应用
- 06-13C语言这些常见标准文件该如何使用?很基础也很重要
- 06-13C语言 vs C++:谁才是编程界的“全能王者”?
- 06-13C语言无锁编程指南(c语言锁机代码)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)