- 论坛徽章:
- 0
|
第 1 章 Solaris ZFS 文件系统(介绍)
本章概述了 Solaris ZFS 文件系统及其功能和优点。本章还介绍了在本书所有其余部分中使用的一些基本术语。
本章包含以下各节:
ZFS 中的新增功能
本节介绍了在最初的 Solaris Express 2005 年 12 月发行版后在 ZFS 文件系统中新增的主要功能。
ZFS 备份和恢复命令已重命名
Solaris 10 6/06 发行版:在此 Solaris 发行版中,zfs backup 和 zfs restore 命令已重命名为 zfs send 和 zfs receive,以便更准确地说明其功能。这些命令的功能是保存和恢复 ZFS 数据流表示。
有关这些命令的更多信息,请参见
保存和恢复 ZFS 数据
。
恢复已销毁的存储池
Solaris 10 6/06 发行版:此发行版包括 zpool import -D 命令,使用该命令可以恢复以前使用 zpool destroy 命令销毁的池。
有关更多信息,请参见
恢复已销毁的 ZFS 存储池
。
集成 ZFS 与 Fault Manager
Solaris 10 6/06 发行版:此发行版集成了 ZFS 诊断引擎,该诊断引擎可诊断和报告池的故障和设备故障。另外,还可报告与池或设备的故障关联的校验和、I/O、设备和池错误。
该诊断引擎不包括校验和以及 I/O 错误的预测性分析,也不包括基于故障分析的主动操作。
如果出现 ZFS 故障,则可能显示以下类似来自 fmd 的消息:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major
EVENT-TIME: Fri Mar 10 11:09:06 MST 2006
PLATFORM: SUNW,Ultra-60, CSN: -, HOSTNAME: neo
SOURCE: zfs-diagnosis, REV: 1.0
EVENT-ID: b55ee13b-cd74-4dff-8aff-ad575c372ef8
DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information.
AUTO-RESPONSE: No automated response will occur.
IMPACT: Fault tolerance of the pool may be compromised.
REC-ACTION: Run 'zpool status -x' and replace the bad device.
通过查看建议的操作(位于 zpool status 命令中的具体指令之后),可快速确定和解决故障问题。
有关从所报告的 ZFS 问题中恢复的示例,请参见
修复缺少的设备
。
新增 zpool clear 命令
Solaris 10 6/06 发行版: 此发行版包括 zpool clear 命令,该命令用于清除与设备或池关联的错误计数。以前,错误计数是在使用 zpool online 命令使池中的设备联机时清除的。有关更多信息,请参见
zpool(1M)
和
清除存储池设备
。
紧凑 NFSv4 ACL 格式
Solaris 10 6/06 发行版:在此发行版中,有三种 NFSv4 ACL 格式可用:详细格式、位置格式和紧凑格式。新增的紧凑和位置 ACL 格式可用于设置和显示 ACL。可以使用 chmod 命令设置所有 3 种 ACL 格式。可以使用 ls -V 命令显示紧凑和位置 ACL 格式,使用 ls -v 命令显示详细 ACL 格式。
有关更多信息,请参见
以缩写格式设置和显示 ZFS 文件的 ACL
、
chmod(1)
和
ls(1)
。
基于 Web 的 ZFS 管理
Solaris 10 6/06 发行版:基于 Web 的 ZFS 管理工具可用于执行许多管理操作。通过此工具,可以执行以下任务:
创建新存储池。
为现有池添加功能。
将存储池移动(导出)到另一个系统。
导入以前导出的存储池,使其可在另一个系统中使用。
查看有关存储池的信息。
创建文件系统。
创建卷。
捕获文件系统或卷的快照。
将文件系统回滚到以前的快照。
通过安全 Web 浏览器访问以下 URL,可以访问 ZFS 管理控制台:
https://system-name:6789/zfs
如果键入了适当的 URL 但无法访问 ZFS 管理控制台,则表明可能未启动服务器。要启动服务器,请运行以下命令:
# /usr/sbin/smcwebserver start
如果希望服务器在系统引导时自动启动,请运行以下命令:
# /usr/sbin/smcwebserver enable
什么是 ZFS?
Solaris ZFS 文件系统是一种革新性的新文件系统,可从根本上改变文件系统的管理方式,并具有现今可用的其他任何文件系统所没有的功能和优点。根据设计,ZFS 具有稳定、可伸缩性和便于管理等优点。
ZFS 池存储
ZFS 使用存储池的概念来管理物理存储。以前,文件系统是在单个物理设备的基础上构造的。为了利用多个设备和提供数据冗余性,引入了卷管理器的概念来提供单个设备的映像,以便无需修改文件系统即可利用多个设备。此设计增加了更多复杂性,并最终阻碍了特定文件系统的继续发展,因为这类文件系统无法控制数据在虚拟卷上的物理放置。
ZFS 可完全避免使用卷管理。ZFS 将设备聚集到存储池中,而不是强制要求创建虚拟卷。存储池说明了存储的物理特征(设备布局、数据冗余等),并充当可以从其创建文件系统的任意数据存储库。文件系统不再仅限于单个设备,从而可与池中的所有文件系统共享空间。您不再需要预先确定文件系统的大小,因为文件系统会在分配给存储池的空间内自动增长。添加新存储器后,无需执行其他操作,池中的所有文件系统即可立即使用所增加的空间。在许多方面,存储池都类似于虚拟内存系统。内存 DIMM 添加到系统后,操作系统并不强制您调用某些命令来配置该内存并将其指定给单个进程。系统中的所有进程都会自动使用所增加的内存。
事务性语义
ZFS 是事务性文件系统,这意味着文件系统状态在磁盘上始终是一致的。传统文件系统可就地覆写数据,这意味着如果计算机断电(例如,在分配数据块到将其链接到目录中的时间段内断电),则会使文件系统处于不一致状态。以前,此问题是通过使用 fsck 命令解决的。此命令负责检查和验证文件系统状态,尝试修复该过程中的任何不一致性问题。此问题使管理员非常苦恼,并且从来无法保证解决所有可能的问题。最近,文件系统引入了日志记录的概念。日志记录过程在单独的日志中记录操作,然后在出现系统崩溃时可以安全地重放该日志。由于数据需要写入两次,因此此过程会引入不必要的开销,并通常导致一组新问题,如无法正确地重放日志时。
对于事务性文件系统,数据是使用写复制语义管理的。数据永远不会被覆写,并且任何操作序列会全部被提交或全部被忽略。此机制意味着文件系统绝对不会因意外断电或系统崩溃而被损坏。因此,无需存在 fsck 等效项。尽管最近写入的数据片段可能丢失,但是文件系统本身将始终是一致的。此外,只有在写入同步数据(使用 O_DSYNC 标志写入)后才返回,因此同步数据决不会丢失。
校验和与自我修复数据
对于 ZFS,所有数据和元数据都通过使用用户可选择的算法来执行校验和操作。提供校验和操作的传统文件系统出于卷管理层和传统文件系统设计的必要,会逐块执行此操作。传统设计意味着某些故障模式(如将完整块写入不正确的位置)可能会生成校验和正确的数据,而该数据实际上并不正确。ZFS 校验和的存储方式可确保检测到这些故障模式并可以正常地从其中进行恢复。所有校验和操作与数据恢复都是在文件系统层执行的,并且对应用程序是透明的。
此外,ZFS 还会提供自我修复数据。ZFS 支持具有不同数据冗余级别的存储池,包括镜像和 RAID-5 变化形式。检测到坏的数据块时,ZFS 从另一个复制的副本中提取正确数据,并将错误数据替换为正确副本以对其进行修复。
独一无二的可伸缩性
ZFS 经过了全新设计,是目前为止可伸缩性最高的文件系统。该文件系统本身是 128 位的,所允许的存储空间是 256 quadrillion zettabyte (256x1015 ZB) 的存储。所有元数据都是动态分配的,因此在首次创建时无需预先分配 inode,否则就会限制文件系统的可伸缩性。所有算法在编写时都考虑到了可伸缩性。目录最多可以包含 248(256 万亿)项,并且对于文件系统数或文件系统中可以包含的文件数不存在限制。
ZFS 快照
快照是文件系统或卷的只读副本。可以快速而轻松地创建快照。最初,快照不会占用池中的任何附加空间。
活动数据集中的数据更改时,快照通过继续引用旧数据来占用空间。因此,快照可防止将数据释放回池中。
简化的管理
最重要的是,ZFS 提供了一种极度简化的管理模型。通过使用分层文件系统布局、属性继承以及自动管理挂载点和 NFS 共享语义,ZFS 可轻松创建和管理文件系统,而无需使用多个命令或编辑配置文件。可以轻松设置配额或预留空间,启用或禁用压缩,或者通过单个命令管理许多文件系统的挂载点。可以检查或修复设备,而不必了解一组单独的卷管理器命令。可以捕获文件系统的无数即时快照。可以备份和恢复单个文件系统。
ZFS 通过分层结构管理文件系统,该分层结构允许对属性(如配额、预留空间、压缩和挂载点)进行这一简化管理。在此模型中,文件系统会成为中央控制点。文件系统本身的开销非常小(相当于新目录),因此鼓励您为每个用户、项目、工作区等创建一个文件系统。通过此设计,可定义细分的管理点。
ZFS 术语
本节介绍了在本书中使用的基本术语:
checksum(校验和)
文件系统块中数据的 256 位散列。校验和功能的范围可以从简单快速的 fletcher2(缺省值)到强加密散列(如 SHA256)。
clone(克隆)
其初始内容与快照内容相同的文件系统。
有关克隆的信息,请参见
ZFS 克隆
。
dataset(数据集)
以下 ZFS 实体的通用名称:克隆、文件系统、快照或卷。
每个数据集由 ZFS 名称空间中的唯一名称标识。数据集使用以下格式进行标识:
pool/path[@snapshot]
pool
标识包含数据集的存储池的名称
path
数据集对象的斜杠分隔路径名
snapshot
用于标识数据集快照的可选组件
有关数据集的更多信息,请参见
第 5 章,管理 ZFS 文件系统
。
file system(文件系统)
包含标准 POSIX 文件系统的数据集。
有关文件系统的更多信息,请参见
第 5 章,管理 ZFS 文件系统
。
mirror(镜像)
在两个或更多磁盘上存储相同数据副本的虚拟设备。如果镜像中的任一磁盘出现故障,则该镜像中的其他任何磁盘都可以提供相同的数据。
pool(沲)
设备的逻辑组,用于说明可用存储的布局和物理特征。数据集的空间是从池中分配的。
有关存储池的更多信息,请参见
第 4 章,管理 ZFS 存储池
。
RAID-Z
在多个磁盘上存储数据和奇偶校验的虚拟设备,与 RAID-5 类似。 有关 RAID-Z 的更多信息,请参见
RAID-Z 存储池配置
。
resilvering(重新同步)
将数据从一个设备传输到另一个设备的过程称为重新同步。例如,如果替换了镜像组件或使其脱机,则最新镜像组件中的数据会复制到刚恢复的镜像组件。此过程在传统的卷管理产品中称为镜像重新同步。
有关 ZFS 重新同步的更多信息,请参见
查看重新同步状态
。
snapshot(快照)
文件系统或卷在指定时间点的只读映像。
有关快照的更多信息,请参见
ZFS 快照
。
virtual device(虚拟设备)
池中的逻辑设备,可以是物理设备、文件或设备集合。
有关虚拟设备的更多信息,请参见
存储池中的虚拟设备
。
volume(卷)
用于模仿物理设备以便支持传统文件系统的数据集。
有关仿真卷的更多信息,请参见
仿真卷
。
ZFS 组件命名要求
每个 ZFS 组件必须根据以下规则进行命名:
不允许空组件。
每个组件只能包含字母数字字符以及以下四个特殊字符:
下划线 (_)
连字符 (-)
冒号 (:)
句点 (.)
池名称必须以字母开头,但不允许使用起始序列 c[0-9]。此外,不允许使用以 mirror、raidz 或 spare 开头的池名称,因为这些名称是保留的。
数据集名称必须以字母数字字符开头。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26090/showart_325681.html |
|