跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 管理:ZFS 文件系统 Oracle Solaris 11 Information Library (简体中文) |
1. Oracle Solaris ZFS 文件系统(介绍)
3. Oracle Solaris ZFS 与传统文件系统之间的差别
7. 使用 Oracle Solaris ZFS 快照和克隆
8. 使用 ACL 和属性保护 Oracle Solaris ZFS 文件
ZFS 在镜像配置和 RAID-Z 配置中提供数据冗余和自我修复属性。
镜像存储池配置至少需要两个磁盘,而且磁盘最好位于不同的控制器上。可以在一个镜像配置中使用许多磁盘。此外,还可以在每个池中创建多个镜像。从概念上讲,简单的镜像配置与以下内容类似:
mirror c1t0d0 c2t0d0
从概念上讲,更复杂的镜像配置与以下内容类似:
mirror c1t0d0 c2t0d0 c3t0d0 mirror c4t0d0 c5t0d0 c6t0d0
有关创建镜像存储池的信息,请参见创建镜像存储池。
除镜像存储池配置外,ZFS 还提供具有单/双/三奇偶校验容错性的 RAID-Z 配置。单奇偶校验 RAID-Z (raidz 或 raidz1) 与 RAID-5 类似。双奇偶校验 RAID-Z (raidz2) 与 RAID-6 类似。
有关 RAIDZ-3 (raidz3) 的更多信息,请参见以下博客:
http://blogs.oracle.com/ahl/entry/triple_parity_raid_z
所有与 RAID-5 类似的传统算法(例如 RAID-4、RAID-6、RDP 和 EVEN-ODD)都可能存在称为“RAID-5 写入漏洞”的问题。如果仅写入了 RAID-5 条带的一部分,并且在所有块成功写入磁盘之前断电,则奇偶校验将与数据不同步,因此永远无用,除非后续的完全条带化写操作将其覆盖。在 RAID-Z 中,ZFS 使用可变宽度的 RAID 条带,以便所有写操作都是完全条带化写操作。这是唯一可行的设计,因为 ZFS 通过以下方式将文件系统和设备管理集成在一起:文件系统的元数据包含有关底层数据冗余模型的足够信息以处理可变宽度的 RAID 条带。RAID-Z 是世界上针对 RAID-5 写入漏洞的第一个仅使用软件的解决方案。
一个 RAID-Z 配置包含 N 个大小为 X 的磁盘,其中有 P 个奇偶校验磁盘,该配置可以存放大约 (N-P)*X 字节的数据,并且只有在 P 个设备出现故障时才会危及数据完整性。单奇偶校验 RAID-Z 配置至少需要两个磁盘,双奇偶校验 RAID-Z 配置至少需要三个磁盘,以此类推。例如,如果一个单奇偶校验 RAID-Z 配置中有三个磁盘,则奇偶校验数据占用的磁盘空间与其中一个磁盘的空间相等。除此之外,创建 RAID-Z 配置无需任何其他特殊硬件。
从概念上讲,包含三个磁盘的 RAID-Z 配置与以下内容类似:
raidz c1t0d0 c2t0d0 c3t0d0
从概念上讲,更复杂的 RAID-Z 配置与以下内容类似:
raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 raidz c8t0d0 c9t0d0 c10t0d0 c11t0d0c12t0d0 c13t0d0 c14t0d0
如果创建具有许多磁盘的 RAID-Z 配置,请考虑将这些磁盘分为多个组。例如,具有 14 个磁盘的 RAID-Z 配置最好分割为两个 7 磁盘组。若 RAID-Z 配置包含的分组中的磁盘数目为一位数 (1-9),则该配置的性能应该更好。
有关创建 RAID-Z 存储池的信息,请参见创建 RAID-Z 存储池。
有关基于性能和磁盘空间考虑在镜像配置或 RAID-Z 配置之间进行选择的更多信息,请参见以下博客:
http://blogs.oracle.com/roch/entry/when_to_and_not_to
有关 RAID-Z 存储池建议的其他信息,请参见第 13 章。
Oracle Sun Storage 7000 产品系列所提供的 ZFS 混合存储池是一种组合了 DRAM、SSD 和 HDD 的特殊存储池,可以提高性能、增加容量并降低能耗。通过此产品的管理界面,您可以选择存储池的 ZFS 冗余配置,并轻松管理其他配置选项。
有关此产品的更多信息,请参见《Sun Storage Unified Storage System 管理指南》。
ZFS 在镜像配置或 RAID-Z 配置中提供了自我修复数据。
检测到坏的数据块时,ZFS 不仅会从另一个冗余副本中提取正确的数据,还会通过将错误数据替换为正确的副本对其进行修复。
ZFS 以条带形式将数据动态分布在所有顶层虚拟设备上。由于是在写入时确定放置数据的位置,因此在分配时不会创建固定宽度的条带。
向池中添加新虚拟设备时,ZFS 会将数据逐渐分配给新设备,以便维护性能和磁盘空间分配策略。每个虚拟设备也可以是包含其他磁盘设备或文件的镜像或 RAID-Z 设备。使用此配置,可以灵活地控制池的故障特征。例如,可以通过 4 个磁盘创建以下配置:
使用动态条带化的四个磁盘
一个四向 RAID-Z 配置
使用动态条带化的两个双向镜像
虽然 ZFS 支持一个池包含不同类型的虚拟设备,但应避免这种做法。例如,可以创建一个包含一个双向镜像和一个三向 RAID-Z 配置的池。但是,容错能力几乎与最差的虚拟设备(在本示例中为 RAID-Z)相同。最佳做法是使用相同类型的顶层虚拟设备,并且每个设备的冗余级别相同。