http://blogs.sun.com/bjoyes/entry/zfs
Zfs is a transaction-based filesystem, as ZFS makes copy-on-write operations when there are modifications of files from filesystems, by transactions. This means that we theorically should have on disks at a given moment a kind of versioning of data, so an image of the data before file modification, or after, but never while the modification, so that filesystem inconsistency is normally impossible.
The transactionnal mode also means that when transaction is committed on disks, it is committed on the whole pool in an atomic way meaning that all pointers to data are updated in the same time, the uberblock and checksum for blocks too.
Here is a fantastic and very clear schema and explanation I'd like to copy from http://www.sun.com/bigadmin/.
Transaction-Based Copy-on-Write Operations
ZFS is a combination of file system and volume manager; the file system-level commands require no concept of the underlying physical disks because of storage pool virtualization. All of the high-level interactions occur through the data management unit (DMU), a concept similar to a memory management unit (MMU), only for disks instead of RAM. All of the transactions committed through the DMU are atomic, so data is never left in an inconsistent state.
In addition to being a transaction-based file system, ZFS only performs copy-on-write operations. This means that the blocks containing the in-use data on disk are never modified. The changed information is written to alternate blocks, and the block pointer to the in-use data is only moved once the write transactions are complete. This happens all the way up the file system block structure to the top block, called the uberblock.
As shown in Figure 1, transactions select unused blocks to write modified data and only then change the location to which the preceding block points.
Figure 1: Copy-On-Write Transactions
Image source: Jeff Bonwick
If the machine were to suffer a power outage in the middle of a data write, no corruption occurs because the pointer to the "good" data is not moved until the entire write is complete. (Note: The pointer to the data is the only thing that is moved.) This eliminates the need for a journaling or logging file system and any need for a fsck
or mirror resync when a machine reboots unexpectedly.
- 大小: 33.9 KB
分享到:
相关推荐
ZFS(Zettabyte File System)是一款先进的、开源的文件系统,由Sun Microsystems开发,旨在提供高可用性、数据完整性以及高效的数据管理。ZFS在0.8.4版本中继续展现出其强大的功能和可靠性,尤其适合大规模存储环境...
在性能优化方面,ZFS引入了“Copy-on-Write”(写时复制)策略,避免了传统文件系统在修改数据时的额外开销。另外,ZFS还具备数据压缩功能,可以在存储数据时自动进行压缩,从而节省存储空间。 最后,ZFS的用户界面...
本文将深入探讨如何使用提供的"Pop-OS-ZFS-Install-Script-main.zip"压缩包来在ZFS文件系统上安装Pop!_OS。 首先,我们来看`README.md`文件,这是项目文档的常见组成部分,它通常包含安装步骤、注意事项和使用指南...
ZFS-on-Linux是一款在Linux系统上实现Sun Microsystems的ZFS文件系统的开源项目。这个项目使得用户能够在Linux环境中享受到ZFS的强大功能,如数据完整性、快照、克隆、池化存储以及高效率的文件系统管理。...
$ sudo cp -r cockpit-zfs-manager/zfs /usr/share/cockpit 桑巴舞 自动生成的快照名称以 YYYY.MM.DD-HH.MM.SS 格式创建。 建议将以下属性添加到 Samba 配置文件中,以允许在 Windows 资源管理器中访问以前的版本:...
ZFS(Zettabyte File System)是一种现代化的128位开源文件系统,它采用写时复制(Copy-On-Write, COW)机制来确保数据的一致性和完整性。ZFS支持多种高级功能,如快照、克隆、压缩、去重以及数据校验等,这些功能在...
标题中的"zfs-0.8.0.tar.gz"是一个软件源码包的名称,它包含了一个名为"zfs"的文件系统版本0.8.0的源代码。"tar.gz"是两种常见的文件打包和压缩格式的组合,即tarball(tar)和Gzip。在Linux和Unix-like操作系统中,...
ZFS的核心优势在于其对数据完整性和性能的重视,它引入了多项创新技术,如128位地址空间、copy-on-write事务、端到端的数据校验和RAID-Z保护。 1. 128位文件系统:ZFS是世界上第一个支持128位地址空间的文件系统,...
ZFS on Linux是将Sun Microsystems(现Oracle)开发的开源文件系统ZFS引入Linux内核的一个项目。ZFS最初是为Solaris操作系统设计的,它以其强大的数据完整性、高级的池管理和快照功能而闻名。在Linux环境下,ZFS on ...
《PyPI官网下载:zfs-replicate-1.0.0.tar.gz——探索Python在分布式存储中的应用》 PyPI(Python Package Index)是Python社区的重要资源库,它为开发者提供了一个方便的平台,用于发布和下载各种Python库。在PyPI...
zfs-prune-snapshots 1w 与上述相同,但增加了详细程度,并且没有实际删除任何快照(试运行) zfs-prune-snapshots -vn 1w 删除tank1和tank2 /备份上超过3周的快照。 注意,该脚本将通过所有罐1及以下TANK2 /备份...
zfs-remote-mirror, 关于为家庭使用设置远程ZFS镜像的详细教程 用于家庭使用的远程镜像更新:现在使用内置 ZFS 树莓派 映像 ! 跳转到附录以获得更多信息。 in: Flash 图像,更改密钥,发送快照。 注意:对于ECC内存...
`win-zfs-master` 压缩包包含了项目的源代码和其他资源。通常,一个这样的项目会包含以下部分: 1. **源代码目录**:存放所有源代码文件,包括头文件和实现文件。 2. **构建脚本**:用于编译和构建项目的批处理或...
《ZFS-Tune-Bench:探索Rust语言在ZFS文件系统优化中的应用》 ZFS-Tune-Bench是一款基于Rust编程语言开发的工具,专门用于测试和优化ZFS文件系统的读写性能。ZFS,全称Zettabyte File System,是由Sun Microsystems...
debian-buster-zfs-root 使用将Debian GNU / Linux 10 Buster安装到本地ZFS根文件系统。 最终的系统是一个完全可更新的debian系统,没有任何怪癖或解决方法。警告由于UEFI的问题,安全引导已被禁用,直到可以使用...
在Zabbix上Linux上监视ZFS 该模板是pbergdolt完成的原始工作的修改版本,并在不久前发布在zabbix论坛上: ://www.zabbix.com/forum/zabbix-cookbook/35336-zabbix-zfs-discovery-monitoring 。 该变体的原始目录也...
nagios-zfs-go Nagios检查用Go编写的ZFS池状态。 使用Go可以在不同平台上提供静态二进制文件的好处。 唯一的外部依赖项是“ zpool”,您可能在要使用它的地方。 经过测试: SmartOS v0.147 +版本:20150612T...
zfs-recompress.sh名称zfs - recompress.sh-在一组文件上触发ZFS压缩概要 zfs-recompress.sh [OPTION1], [OPTION2], ...描述调用zfs-recompress.sh脚本以复制,验证和覆盖当前工作目录及其所有后代目录中的所有文件...
此脚本已在 ZFS-on-Linux (Ubuntu 14.04) 和 FreeBSD(10.0 和 10.1)上进行了测试。 我们发布了这个,因为我们找不到这个问题的任何解决方案,其他人似乎在同一条船上。 关于如何使用它的文档在脚本本身中。 我们...