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 zfs0.8.4 zfs安装
sbo-zfsonlinux:适用于SlackBuilds.org的ZFS-on-Linux SlackBuild脚本
Understand the gains ZFS gives system and storage administrators and utilize its features Install and configure ZFS software Create and maintain ZFS pool Administer ZFS storage, including sharing
ZFS on Linux - 用于Linux的官方OpenZFS实现
在ZFS文件系统上安装Pop!_OS的脚本代码
zfs文件系统源码,自学使用,开源代码不得用于其他目的。
zfs-prune-snapshots 1w 与上述相同,但增加了详细程度,并且没有实际删除任何快照(试运行) zfs-prune-snapshots -vn 1w 删除tank1和tank2 /备份上超过3周的快照。 注意,该脚本将通过所有罐1及以下TANK2 /备份...
zfs-remote-mirror, 关于为家庭使用设置远程ZFS镜像的详细教程 用于家庭使用的远程镜像更新:现在使用内置 ZFS 树莓派 映像 ! 跳转到附录以获得更多信息。 in: Flash 图像,更改密钥,发送快照。 注意:对于ECC内存...
$ sudo cp -r cockpit-zfs-manager/zfs /usr/share/cockpit 桑巴舞 自动生成的快照名称以 YYYY.MM.DD-HH.MM.SS 格式创建。 建议将以下属性添加到 Samba 配置文件中,以允许在 Windows 资源管理器中访问以前的版本:...
官网可下载,为不方便访问外网的小伙伴提供一个途径
在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性能调优.
资源来自pypi官网。 资源全名:zfs-replicate-1.0.0.tar.gz
win-zfs 从 gabest11 创建的 code.google.com/p/zfs-win 自动导出
zfs-recompress.sh名称zfs - recompress.sh-在一组文件上触发ZFS压缩概要 zfs-recompress.sh [OPTION1], [OPTION2], ...描述调用zfs-recompress.sh脚本以复制,验证和覆盖当前工作目录及其所有后代目录中的所有文件...
zfs-linux-lts-git:为软件包zfs-linux-lts-git生成的PKGBUILD
JUC编程笔记-zfs.pdf
ZFS_Handson-Presentation
zfs-stats FreeBSD的ZFS统计工具。 zfs-stats脚本显示以下子系统的常规ZFS信息和人类可读的ZFS统计信息: 弧 L2弧 DMU(zfetch) vdev快取 该脚本是Jason J. Hellenthals的 FreeBSD端口树中的可用性: 主页:...