动态文件系统ZFS On Linux 0.8.0发布下载了,该版本增加了一些新功能和新的特性,下面将进行介绍,可先看解说Linux文件系统之ZFS高级文件系统一文了解。
ZFS On Linux 0.8.0新功能和新特性介绍 1、新功能 本机加密-加密属性可以创建加密的文件系统和卷,默认情况下使用aes-256-ccm算法,使用zfs load-key和关联的子命令管理每个数据集密钥。 原始加密的'zfs发送/接收'-zfs send -w选项允许将加密数据集发送和接收到另一个池而无需解密,接收的数据集受发送方的原始用户密钥保护,这样可以有效地将数据集备份到不受信任的系统,而不必担心数据受到损害。 设备删除-允许使用zpool remove从存储池中删除单个和镜像的顶级设备,所有数据都在后台复制到其余的顶级设备,并相应地减少了池容量。 池检查点-zpool checkpoint子命令允许你保留池的整个状态,并可选择恢复到该确切状态,它可以被认为是池宽快照,这在执行其他不可逆转的复杂管理操作时非常有用(例如,启用新功能标记,销毁数据集等)。 池TRIM-zpool trim子命令提供了一种通知底层设备不再分配哪些扇区的方法,这使SSD可以更有效地管理自身,并有助于防止性能下降,可以通过新的autotrim池属性启用连续背景修剪。 池初始化-zpool initialize子命令将模式写入所有未分配的空间,这消除了可能存在于某些虚拟化存储(例如,VMware VMDK)上的第一次访问性能损失。 项目会计和配额-此功能将基于项目的使用记帐和配额强制添加到现有空间记帐和配额功能,项目配额为传统用户/组配额添加了额外的维度,添加了zfs项目和zfs项目空间子命令以管理项目,设置配额限制和报告使用情况。 通道程序-zpool program子命令可用于在沙盒环境中通过Lua脚本执行复合ZFS管理操作(具有时间和内存限制)。 Pyzfs-新的pyzfs库旨在为ZFS的程序化管理提供稳定的接口,这个包装器为libzfs_core API函数提供了一对一的映射,但签名和类型对于Python来说更自然。 Python 3兼容性-已更新arcstat,arcsummary和dbufstat实用程序以与Python 3兼容。 Direct IO-增加了对Linux直接IO接口的支持。 2、性能 顺序擦除和重新同步-在清洗或重新安装池时,该过程已分为两个阶段,第一阶段扫描池元数据,以确定数据块在磁盘上的存储位置,这允许第二阶段尽可能顺序地发出擦除I/O,从而大大提高性能。 分配类-允许池包括少量高性能SSD设备,这些设备专用于存储特定类型的频繁访问的块(例如,元数据,DDT数据或小文件块),通过添加特殊或重复数据删除顶级设备,池可以选择加入此功能。 管理命令-由于对zfs list和zfs get等管理命令所需的元数据进行了有针对性的缓存,因此性能得到了提高。 并行分配-通过为每个metaslab组创建多个“分配器”来并行化分配过程,这样可以提高高端系统的分配性能。 延迟重新同步-如果现有的重新调整器已在进行中,则此功能允许新的重新调整程序被推迟,通过等待运行的弹性程序完成冗余,可以尽快恢复。 ZFS意图日志(ZIL)-创建并发布新的日志块,同时存储仍有未完成的块,有效地减少了应用程序观察到的整体延迟。 卷-当池包含大量卷时,它们会更快地向系统注册,并在zpool导入后可用。 QAT-支持加速SHA256校验和,AES-GCM加密和新的QAT英特尔(R)C62x芯片组/Atom(R)C3000处理器产品系列SoC。 3、变化 对卷的宽松(ref)预留约束,现在可以将它们设置为大于卷大小。 arcstat.py,arc_summary.py和dbufstat.py命令分别重命名为arcstat,arc_summary和dbufstat。 SPL源现在包含在ZFS存储库中,无需单独的包。 deprecpditto pool属性和zfs send -D选项已弃用,将在以后的版本中删除。 4、新的特性 支持的内核:兼容2.6.32-5.1的Linux内核(可了解一下新闻:ZFS On Linux在Linux 5.0内核上出现兼容问题)。 Linux 5.0和更新的内核目前不支持SIMD加速。 模块选项-选择模块选项的默认值,以便为大多数工作负载和配置提供良好的性能,它们不需要针对大多数系统进行调整,但可用于性能分析和调整。 5、更新的模块选项 更新了一些模块选项,比如: 1]、添加: dbuf_metadata_cache_max_bytes * - dbuf元数据高速缓存的最大大小(以字节为单位)。 dbuf_cache_shift - 将dbuf缓存的大小设置为弧大小的log2分数。 spl_hostid - 系统hostid。 spl_hostid_path - 系统hostid文件(/etc/hostid)。 vdev_removal_max_span - 重映射段可以跨越的最大空闲块。 vdev_validate_skip - 绕过vdev_validate()。 zio_slow_io_ms - 将标记为慢速之前的最大I/O完成时间(毫秒)。 zio_deadman_log_all - 记录所有慢速ZIO,而不仅仅是那些带有vdev的ZIO。 zil_nocacheflush - 禁用ZIL缓存刷新。 zfs_unlink_suspend_progress - 设置为防止异步取消链接。 zfs_lua_max_instrlimit - 可以为通道程序指定的最大指令限制。 zfs_lua_max_memlimit - 可以为通道程序指定的最大内存限制。 zfs_trim_extent_bytes_max - 将分割较大的TRIM命令的最大大小。 zfs_trim_extent_bytes_min - 将跳过较小的TRIM命令的最小尺寸。 zfs_trim_metaslab_skip - 跳过从未初始化过的metaslabs。 zfs_removal_ignore_errors - 删除设备时忽略硬IO错误。 zfs_remove_max_segment - 删除设备时要分配的最大连续段。 zfs_vdev_initializing_max_active - 每个vdev的最大活动初始化I/O。 zfs_vdev_initializing_min_active - 每个vdev的最小活动初始化I/O。 zfs_vdev_removal_max_active - 每个vdev的最大活动删除I/O。 zfs_vdev_removal_min_active - 每个vdev最小活动删除I/O。 zfs_initialize_value - 在zpool初始化期间写入的值。 zfs_condense_min_mapping_bytes - 要压缩的vdev映射的最小大小。 zfs_condense_max_obsolete_bytes - 用于尝试压缩的最小大小过时空间映射。 zfs_condense_indirect_commit_entry_delay_ms - 缩减vdev映射时的延迟。 zfs_reconstruct_indirect_combinations_max - 重建拆分段时的最大组合数。 zfs_vdev_default_ms_count - 每个顶级vdev的目标metaslabs数。 zfs_vdev_min_ms_count - 每个顶级vdev的最小metaslabs数。 zfs_vdev_ms_count_limit - 每个顶级vdev的总metaslabs的实际上限。 zfs_nocacheflush - 禁用缓存刷新。 zfs_deadman_ziotime_ms - IO到期时间(以毫秒为单位)。 zfs_deadman_failmode - deadman timer的失败模式。 zfs_ddt_data_is_special - 将DDT数据放入特殊类中。 zfs_user_indirect_is_special - 将用户数据间接块放入特殊类中。 zfs_scan_suspend_progres - 设置为阻止扫描进度。 zfs_async_block_max_blocks - 在一个txg中释放的最大块数。 zfs_scan_mem_lim_fact - 扫描硬限制的RAM分数。 zfs_scan_checkpoint_intval - 可以进行磁盘检查点间隔。 2]、删除: dbuf_cache_max_shift - 将dbuf缓存的大小限制为弧大小的log2分数。 metaslabs_per_vdev - 将增加的vdev除以大约(但不超过)这个数量的metaslabs。 zio_delay_max - 发布事件前的最大zio毫秒延迟。 zfs_nocacheflush - 禁用缓存刷新。 zfs_delays_per_second - 将速率限制延迟事件限制为每秒这么多IO延迟。 zfs_checksums_per_second - 将校验和事件限制为每秒这么多校验和错误。 zfs_top_maxinflight - 每个顶级的最大I/O。 zfs_scan_min_time_ms - 每txg擦除最小毫秒数。 zfs_free_max_blocks - 在一个txg中释放的最大块数。 zfs_mdcomp_disable - 禁用元数据压缩。 zfs_arc_min_prefetch_lifespan - 预取块的最小生命周期。
下载链接
相关主题 |