您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Linux 写时复制文件系统

前小节介绍了 Linux 日志系统,本小节介绍 Linux 写时复制系统。

1. ZFS 系统介绍

ZFS 系统的为 Zettabyte File Sy,也叫动态系统(Dynamic File Sy),是第 128 位系统。最初是由 Sun 公司为 Solaris 10 操作系统开发的系统。作为 OpenSolaris 开源计划的一部分,ZFS 于 2005 年 11 月发布,被 Sun 称为是终极系统,经历了 10 年的活跃开发。而最新的开发将全面开放,并重新命名为 OpenZFS

ZFS 是一款 128bit 系统,总容量是现有 64bit 系统的 1.84x10^19 倍,其的单个存储卷容量达到 16EiB2^64byte,即 16x1024x1024TB); zpool 存储池可以拥有 2^64 个卷,总容量最大 256ZiB2^78 byte);整个系统又可以拥有 2^64 个存储 池。可以说在相当长的未来时间内,ZFS 几乎不太可能出现存储空间不足的问题。另外,它还拥有自优化,校验数据完整性,存储池/卷系统易管理等诸多优点。较 ext3 系统有较大运行速率,提高大约 30%-40%

ZFS 系统是革命性的全新的系统,它从根本上改变了系统的管理方式,这个系统的特色和其带来的好处至今没有其他系统可以与之媲美,ZFS 被设计成强大的、可并易于管理的。ZFS 用 “存储池” 的概念来管理物理存储空间。过去,系统都是构建在物理设备之上的。为了管理这些物理设备,并为数据提供冗余,“卷管理” 的概念提供了单设备的映像。但是这种设计了复杂性,同时根本没法使系统向更高层次发展,因为系统不能跨越数据的物理位置。

ZFS 完全抛弃了 “卷管理”,不再创建虚拟的卷,而是把所有设备集中到存储池中来进行管理,“存储池” 描述了存储的物理特征(设备的布局,数据的冗余等等),并扮演能够系统的专门存储空间。从此,系统不再局限于单独的物理设备,而且系统还允许物理设备把他们的那些系统共享到这个 “池” 中。你也不再需要预先规划好系统的大小,因为系统可以在 “池” 的空间内的增大。当新的存贮介质时,所有 “池” 中的所有系统能立即使用新增的空间,而不需要额外的操作。在很多情况下,存储池扮演了虚拟内存。

ZFS 使用一种写时拷贝事务模型技术。所有系统中的块指针都 256 位的能在读时被重新校验的关于目标块的校验和。含有活动数据的块从来不被覆盖;而是分配新块,并把过的数据写在新块上。所有与该块相关的元数据块都被重新读、分配和重写。为了减少该过程的开销,多次读写更新被归纳为事件组,并且在必要的时候使用日志来同步写操作。

利用写时拷贝使 ZFS 的快照和事物的实现变得更简单和自然,快照更灵活。缺点是,COW 使碎片化问题更加严重,对于顺序写的大,如果以后的对其中的一部分进行了更改,那么这个在硬盘上的物理地址就变得不再连续,未来的顺序读会变得比较差。

2. BTRFS 系统介绍

BTRFS(通常念成 Butter FS),由 Oracle 于 2007 年宣布并进行中的 COW(copy-on-write 式)系统。目标是取代 Linux ext3 系统,改善 ext3 的限制,特别是单一大小的限制,总系统大小限制以及加入校验和特性。加入 ext3/4 未的一些,例如可写的磁盘快照(snapshots),以及递归的快照(snapshots of snapshots),内建磁盘阵列(RAID),子卷(Subvolumes)的概念,允许在线调整系统大小。

首先是扩展性 (scalability) 相关的特性,btrfs 最重要的设计目标是应对大型机器对系统的扩展性要求。 ExtentB-Tree 和动态 inode 创建等特性保证了 btrfs 在大型机器上仍有卓越的表现,其整体而不会随着系统容量的而降低。其次是数据一致性 (data integrity) 相关的特性。系统面临不可预料的硬件故障,Btrfs 采用 COW 事务技术来保证系统的一致性。 btrfschecksum,避免了 silent corrupt 的出现。而传统系统则无法做到这一点。第三是和多设备管理相关的特性。 Btrfs 创建快照 (snapshot),和克隆 (clone) 。 btrfs 还能够方便的管理多个物理设备,使得传统的卷管理软件变得多余。最后是其他难以归类的特性。这些特性都是比较先进的技术,能够显著提高系统的时间/空间,延迟分配,小的存储优化,目录索引等。

3. BTRFS 系统特性

可由底层多个物理卷进行。

数据存储形式 RAID,同时在联机的情况下进行“硬盘”、“移除硬盘”、“系统的大小”。

写时复制更新机制,即当我们时,btrfs先复制一份原,对新进行,结束时,原名指向新。

卷的快照和快照的快照。

透明压缩,即当系统存储时,系统会将进行压缩再存储,当时,系统进行解压缩,但是看不到此过程。

扩展性 (scalability),btrfs 最重要的设计目标是应对大型机器对系统的扩展性要求。ExtentB-Treeinode 创建等特性保证了 btrfs 在大型机器上仍有卓越的表现,其整体而不会随着系统容量的而降低。

数据一致性 (data integrity)。系统面临不可预料的硬件故障,Btrfs 采用 COW 事务技术来保证系统的一致性。 btrfschecksum,避免了 silent corrupt 的出现。而传统系统则无法做到这一点。

多设备管理相关的特性。 Btrfs 创建快照 (snapshot)、克隆 (clone) 。 btrfs 还能够方便的管理多个物理设备,使得传统的卷管理软件变得多余。

4. 小结

本小节介绍了 ZFSBTRFS 两种写时复制系统,写时复制系统采用了日志式技术,你就必须在安全性和之间选择,尽管数据模式日志提供了最高的安全性,但是会对带来影响,因为索引节点和数据都需要被日志化,就系统而言,日志式的另一种选择是一种叫 写时复制 的技术。


联系我
置顶