免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1143 | 回复: 0
打印 上一主题 下一主题

第 2 章 ZFS 入门 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-21 11:16 |只看该作者 |倒序浏览

本章提供了有关设置简单 ZFS 配置的逐步说明。学完本章之后,您应基本了解 ZFS 命令的工作原理,并可以创建简单的池和文件系统。本章是综合概述,有关更多详细信息,请参阅后续章节。
本章包含以下各节:

ZFS 硬件和软件要求及建议
尝试使用 ZFS 软件之前,请确保查看了以下硬件和软件要求及建议:


  • SPARCTM 或 x86 系统运行的是 Solaris 10 6/06 发行版。

  • 最小磁盘空间为 128 MB。用于存储池所需的最小磁盘空间量约为 64 MB。

  • 目前,建议用于安装 Solaris 系统的最小内存量为 512 MB。但为了获得更好的 ZFS 性能,建议至少使用 1 GB 或更多内存。

  • 如果创建镜像磁盘配置,建议使用多个控制器。

创建基本 ZFS 文件系统
ZFS 管理在设计过程中考虑了简单性。ZFS 设计的目标之一是减少创建可用文件系统所需的命令数。创建新池的同时会创建一个新 ZFS 文件系统,并自动将其挂载。
以下示例说明如何通过一个命令同时创建名为 tank 的存储池和名为 tank 的 ZFS 文件系统。假定整个磁盘 /dev/dsk/c1t0d0 可供使用。
# zpool create tank c1t0d0
新 ZFS 文件系统 tank 可根据需要使用 c1t0d0 中任意大小的磁盘空间,并会自动挂载在 /tank 中。
# mkfile 100m /tank/foo
# df -h /tank
Filesystem             size   used  avail capacity  Mounted on
tank                   80G   100M    80G     1%    /tank
在池内,可能需要创建其他文件系统。文件系统可提供管理点,用于管理同一池中不同的数据集。
以下示例说明如何在存储池 tank 中创建名为 fs 的文件系统。假定整个磁盘 /dev/dsk/c1t0d0 可供使用。
# zpool create tank c1t0d0
# zfs create tank/fs
新 ZFS 文件系统 tank/fs 可根据需要使用 c1t0d0 中任意大小的磁盘空间,并会自动挂载在 /tank/fs 中。
# mkfile 100m /tank/fs/foo
# df -h /tank/fs
Filesystem             size   used  avail capacity  Mounted on
tank/fs                 80G   100M    80G     1%    /tank/fs
在大多数情况下,您可能要创建并组织与您公司的需要相符的文件系统分层结构。有关创建 ZFS 文件系统的分层结构的更多信息,请参见
创建 ZFS 文件系统分层结构

创建 ZFS 存储池
上一示例说明了 ZFS 的简单性。本章的其余部分将说明一个更复杂的示例,与您的环境中所遇到的情况相似。第一个任务是确定存储要求并创建存储池。该池描述了存储的物理特征,并且必须在创建任何文件系统之前创建。

确定存储要求

  • 确定可用设备。
    创建存储池之前,必须先确定用于存储数据的设备。这些设备必须是大小至少为 128 MB 的磁盘,并且不能由操作系统的其他部分使用。设备可以是预先格式化的磁盘上的单个片,也可以是 ZFS 格式化为单个大片的整个磁盘。
    对于
    创建 ZFS 存储池
    中使用的存储示例,假定磁盘 /dev/dsk/c1t0d0 和 /dev/dsk/c1t1d0 全部都可供使用。
    有关磁盘及其使用和标记方法的更多信息,请参见
    使用 ZFS 存储池中的磁盘


  • 选择数据复制。
    ZFS 支持多种类型的数据复制,这确定了池可以经受的硬件故障的类型。ZFS 支持非冗余(条带化)配置以及镜像和 RAID-Z(RAID-5 的变化形式)。
    创建 ZFS 存储池
    中使用的存储示例使用了两个可用磁盘的基本镜像。
    有关 ZFS 复制功能的更多信息,请参见
    ZFS 存储池的复制功能


    创建 ZFS 存储池

  • 成为超级用户或承担具有适当 ZFS 权限配置文件的等效角色。
    有关 ZFS 权限配置文件的更多信息,请参见
    ZFS 权限配置文件


  • 选择池名称。
    池名称用于在使用 zpool 或 zfs 命令时标识存储池。大多数系统都只需一个池,因此只要满足
    ZFS 组件命名要求
    中所述的命名要求,即可选择您喜欢的任何名称。

  • 创建池。
    例如,创建名为 tank 的镜像池。
    # zpool create tank mirror c1t0d0 c1t1d0
    如果一个或多个设备包含其他文件系统或正在使用中,则该命令不能创建池。
    有关创建存储池的更多信息,请参见
    创建 ZFS 存储池

    有关如何确定设备使用情况的更多信息,请参见
    检测使用中的设备


  • 查看结果。
    使用 zpool list 命令可以确定是否已成功创建池。
    # zpool list
    NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
    tank                     80G    137K     80G     0%  ONLINE     -
    有关查看池状态的更多信息,请参见
    查询 ZFS 存储池的状态

    创建 ZFS 文件系统分层结构
    创建用于存储数据的存储池之后,即可创建文件系统分层结构。分层结构是用于组织信息的简单但功能强大的机制。使用过文件系统的任何用户对分层结构也都很熟悉。
    使用 ZFS 可将文件系统组织为任意分层结构,其中每个文件系统仅有一个父级。分层结构的根始终是池名称。ZFS 通过支持属性继承来利用此分层结构,以便可在整个文件系统树中快速轻松地设置公用属性。

    确定 ZFS 文件系统分层结构

  • 选择文件系统粒度。
    ZFS 文件系统是管理的中心点。它们是轻量型的,很容易创建。适用的模型是每个用户或项目对应一个文件系统,因为此模型允许按用户或按项目控制属性、快照和备份。
    创建 ZFS 文件系统
    中创建了两个 ZFS 文件系统 bonwick 和 billm。
    有关管理文件系统的更多信息,请参见
    第 5 章,管理 ZFS 文件系统


  • 对相似的文件系统进行分组。
    使用 ZFS 可将文件系统组织为分层结构,以便可对相似的文件系统进行分组。此模型提供了一个用于控制属性和管理文件系统的管理中心点。应使用一个公用名称来创建相似的文件系统。
    对于
    创建 ZFS 文件系统
    中的示例,两个文件系统都放置在名为 home 的文件系统下。

  • 选择文件系统属性。
    大多数文件系统特征都是通过使用简单属性来控制的。这些属性可以控制多种行为,包括文件系统的挂载位置、共享方式、是否使用压缩以及是否有任何生效的配额。
    对于
    创建 ZFS 文件系统
    中的示例,所有起始目录都挂载在 /export/zfs/user 中,都通过使用 NFS 来共享并且都已启用压缩。此外,还对 bonwick 强制实施了 10 GB 的配额。
    有关属性的更多信息,请参见
    ZFS 属性


    创建 ZFS 文件系统

  • 成为超级用户或承担具有适当 ZFS 权限配置文件的等效角色。
    有关 ZFS 权限配置文件的更多信息,请参见
    ZFS 权限配置文件


  • 创建所需的分层结构。
    在本示例中,创建了一个可充当各文件系统的容器的文件系统。
    # zfs create tank/home
    然后,在池 tank 中的 home 文件系统下对各文件系统进行分组。

  • 设置继承的属性。
    建立文件系统分层结构之后,设置应在所有用户之间共享的任何属性:
    # zfs set mountpoint=/export/zfs tank/home
    # zfs set sharenfs=on tank/home
    # zfs set compression=on tank/home
    # zfs get compression tank/home
    NAME             PROPERTY       VALUE                      SOURCE
    tank/home        compression    on                         local
    有关属性和属性继承的更多信息,请参见
    ZFS 属性


  • 创建各文件系统。
    请注意,文件系统可能已创建,并可能已在 home 级别更改了属性。所有属性均可在使用文件系统的过程中动态进行更改。
    # zfs create tank/home/bonwick
    # zfs create tank/home/billm
    这些文件系统从其父级继承属性设置,因此会自动挂载在 /export/zfs/user 中并且通过 NFS 共享。您无需编辑 /etc/vfstab 或 /etc/dfs/dfstab 文件。
    有关创建文件系统的更多信息,请参见
    创建 ZFS 文件系统

    有关挂载和共享文件系统的更多信息,请参见
    挂载和共享 ZFS 文件系统


  • 设置文件系统特定的属性。
    在本示例中,为用户 bonwick 指定了 10 GB 的配额。此属性可对该用户可以使用的空间量施加限制,而无需考虑池中的可用空间大小。
    # zfs set quota=10G tank/home/bonwick

  • 查看结果。
    使用 zfs list 命令查看可用的文件系统信息:
    # zfs list
    NAME                   USED  AVAIL  REFER  MOUNTPOINT
    tank                  92.0K  67.0G   9.5K  /tank
    tank/home             24.0K  67.0G     8K  /export/zfs
    tank/home/billm          8K  67.0G     8K  /export/zfs/billm
    tank/home/bonwick        8K  10.0G     8K  /export/zfs/bonwick
    请注意,用户 bonwick 仅有 10 GB 的可用空间,而用户 billm 则可使用整个池 (67 GB)。
    有关查看文件系统状态的更多信息,请参见
    查询 ZFS 文件系统信息

    有关空间的使用和计算方法的更多信息,请参见
    ZFS 空间记帐



    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26090/showart_325682.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP