`

ZFS 的简单使用

阅读更多

ZFS 的简单使用

ZFS 被 Sun 称为史上最后一个文件系统 , 说得一点都不夸张, 看来 ZFS 至少要比现有的其他文件系统领先五年。开发一个全新的文件系统非常耗时,ext4 从2006开始到现在都三年了而且还是在前人的基础上(ext3)开发的,最近 RedHat 发布的 RHEL 5.4 还只是把 ext4 列入 technical preview 的状态,默认的安装文件系统还是 ext3,可见要开发一个可靠的文件系统多么困难,ext4 仍然不够稳定,在系统崩溃时某些条件下可能会造成数据丢失现象。虽然 ZFS 是开放源代码的,由于版权是 CDDL 与 Linux kernel 的 GPL2 冲突,导致 ZFS 不能移植到 Linux 上,FreeBSD 上的 ZFS 移植不完整而且不是很稳定,如果想用 ZFS 的话,建议安装和使用 OpenSolaris .

准备工作

先创建6个普通文件充当6个硬盘,来看看 ZFS 是如何方便的添加、删除、镜像硬盘的:

# cd /var/tmp
# mkfile 100m c0d0 c0d1 c0d2 c1d0 c1d1 c1d2

创建 pool

使用第1块硬盘(c0d0)创建一个 pool:

# zpool create mypool /var/tmp/c0d0
# zpool status
  pool: mypool
 state: ONLINE
 scrub: none requested
config:

        NAME             STATE     READ WRITE CKSUM
        mypool           ONLINE       0     0     0
          /var/tmp/c0d0  ONLINE       0     0     0

errors: No known data errors

创建镜像

在 pool 里添加第2块硬盘(c0d1),并且做成第1块硬盘(c0d0)的镜像:

# zpool attach mypool /var/tmp/c0d0 /var/tmp/c0d1
# zpool status
  pool: mypool
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov  1 15:08:42 2009
config:

        NAME               STATE     READ WRITE CKSUM
        mypool             ONLINE       0     0     0
          mirror           ONLINE       0     0     0
            /var/tmp/c0d0  ONLINE       0     0     0
            /var/tmp/c0d1  ONLINE       0     0     0  73K resilvered

errors: No known data errors

替换硬盘

假设上面第2块硬盘(c0d1)坏了,想用另一块硬盘(c1d0)替换:

# zpool replace mypool /var/tmp/c0d1 /var/tmp/c1d0
# zpool status
  pool: mypool
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov  1 15:11:33 2009
config:

        NAME               STATE     READ WRITE CKSUM
        mypool             ONLINE       0     0     0
          mirror           ONLINE       0     0     0
            /var/tmp/c0d0  ONLINE       0     0     0
            /var/tmp/c1d0  ONLINE       0     0     0  83.5K resilvered

errors: No known data errors

增加硬盘

如果发现上面两块硬盘不够用了,想在 pool 里增加第3块硬盘(c0d1)只需要简单的 zpool add,这时候需要用到 -f 强制选项,因为 pool 里硬盘类型是 mirror 的,而想要增加的硬盘是 file 的,类型不同所以报错,需要强制执行:

# zpool add mypool /var/tmp/c0d1
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses mirror and new vdev is file

# zpool add -f mypool /var/tmp/c0d1
# zpool status
  pool: mypool
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov  1 15:11:33 2009
config:

        NAME               STATE     READ WRITE CKSUM
        mypool             ONLINE       0     0     0
          mirror           ONLINE       0     0     0
            /var/tmp/c0d0  ONLINE       0     0     0
            /var/tmp/c1d0  ONLINE       0     0     0  83.5K resilvered
          /var/tmp/c0d1    ONLINE       0     0     0

errors: No known data errors

现在用第4块硬盘(c1d1)对第3块硬盘(c0d1)做一个镜像;然后加上第5块硬盘(c0d2)和第6块硬盘(c1d0),其中第6块是第5块的镜像:

# zpool attach mypool /var/tmp/c0d1 /var/tmp/c1d1
# zpool add mypool mirror /var/tmp/c0d2 /var/tmp/c1d2

完成上面的操作以后就会得到类似下面这样的结构,很清晰易懂,c0d0 和 c1d0 是镜像,c0d1 和 c1d1 是镜像,c0d2 和 c1d2 是镜像:

# zpool status
  pool: mypool
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov  1 15:24:51 2009
config:

        NAME               STATE     READ WRITE CKSUM
        mypool             ONLINE       0     0     0
          mirror           ONLINE       0     0     0
            /var/tmp/c0d0  ONLINE       0     0     0
            /var/tmp/c1d0  ONLINE       0     0     0
          mirror           ONLINE       0     0     0
            /var/tmp/c0d1  ONLINE       0     0     0
            /var/tmp/c1d1  ONLINE       0     0     0  14.5K resilvered
          mirror           ONLINE       0     0     0
            /var/tmp/c0d2  ONLINE       0     0     0
            /var/tmp/c1d2  ONLINE       0     0     0

errors: No known data errors

是不是要比 RAID + LVM + EXT3 简单多了?

校验 pool

最好经常时不时的用 zpool scrub 检查一下 pool 和 checksums:

# zpool scrub mypool

删除 pool

# zpool destroy mypool
# rm /var/tmp/c[01]d[012]
分享到:
评论

相关推荐

    SUN的ZFS文件系统介绍和使用

    ZFS提供了一系列简洁的命令行工具,如`zfs create`、`zfs snapshot`等,使得管理和维护变得简单易懂。 9. **Performance Optimization**: ZFS通过缓存策略和数据布局优化,提高了读写性能。例如,它可以使用ARC...

    Solaris-ZFS快照使用指南,英文版

    ### Solaris-ZFS快照使用指南 #### ZFS Snapshots:概述 ZFS(Zettabyte File System)是Sun Microsystems开发的一种先进的文件系统技术,在Solaris操作系统中得到了广泛应用。ZFS快照是一种只读副本,它能即时...

    ZFS相关资料

    2. **快照和克隆**:ZFS提供简单且高效的数据快照功能,可以在任意时间点创建数据的静态副本,而无需复制所有数据。克隆则允许从一个快照快速创建一个新的文件系统,这在测试、备份和恢复场景中非常实用。 3. **...

    zfs 深入部分

    2. 数据备份:ZFS的快照和克隆功能使得备份和恢复变得简单快捷,减少了备份窗口。 3. 高可用性环境:通过复制和故障切换,ZFS可以构建高可用的存储解决方案。 4. NAS和SAN环境:ZFS的高效能和数据保护特性使其成为...

    zfs-0.8.0.tar.gz

    7. **易于管理**:ZFS提供了丰富的命令行工具和管理系统接口,使得管理和维护文件系统变得简单。 在描述中提到的“官网可下载”,意味着ZFS源代码可以从其官方网站获取,通常这意味着遵循开源许可证,用户可以自由...

    solaris-11_zfs文件系统划分

    创建 zpool 是使用 ZFS 的第一步,它可以是单盘池、镜像池或 RAIDZ 池: 1.1.1 创建单边 zpool:最简单的 zpool 类型,由一个物理磁盘组成,无冗余,适合临时或测试环境。创建命令如 `zpool create pool_name /dev/...

    ZFS最佳实践指南2007-11-12

    - **使用64位内核**:强烈建议使用64位内核运行ZFS,以确保能够充分利用现代硬件资源。 **1.1.1.1 内存与交换空间** - **推荐内存容量**:至少1GB以上,以确保ZFS正常运行。 - **内存消耗**:每加载一个ZFS文件...

    zfs_linux.pdf.tar.gz_ZFS_linux file system

    3. **Snapshot和Clone**: ZFS提供简单而强大的快照功能,可以快速创建和恢复文件系统在特定时间点的状态。快照可以被用来备份或回滚到先前的状态。基于快照,可以创建克隆,这在测试环境和版本控制中非常有用。 4. ...

    Solaris Zfs 学习笔记

    ZFS集成了数据保护、空间效率和高性能等功能,使得管理和维护存储变得更加简单。 **一、zpool的管理** **1.1 创建zpool** 创建zpool是ZFS使用的第一步,它由一个或多个物理磁盘组成。有三种主要类型的zpool: - ...

    chyves, 使用ZFS的bhyve资源管理器.zip

    chyves, 使用ZFS的bhyve资源管理器 chyves-v0.2.0: chyves是一个 bhyve 命令行 前端管理器,它使得管理客户机资源和属性变得简单。项目的目标是提供一个易于使用。开发和调试的bhyve 前端工具。 chyves 是为最新的...

    backup_external_ZFS_

    标题“backup_external_ZFS_”暗示了我们正在讨论如何使用ZFS(Zettabyte File System)作为外部备份驱动器的方案。ZFS是一款先进的文件系统和存储管理工具,以其数据完整性、灵活的池管理和强大的快照功能而闻名。...

    ZFS_Handson-Presentation

    根据预测,在未来10到15年内,第65个比特位将会被使用到,而ZFS目前支持的最大容量为256 quadrillion ZB,远远超出了地球上的物理存储极限。 3. **简化的管理**:ZFS的管理非常简单直观,大大降低了管理员的工作负担...

    zfs disk layout

    ZFS的磁盘布局是它的一大特色,它不仅仅简单地存储数据,还包含了复杂的元数据信息,以确保文件系统结构的健壮性和高效的数据管理。 首先,ZFS采用了一个层级化的存储模型,其中包含了多个层级,包括存储池(pool)...

    zfs for linux

    7. **易于管理**:ZFS提供了命令行工具和图形界面,使得管理和监控存储变得简单。 文件名“zfs-0.6.0-rc2”可能表示这是一个预发布版本的ZFS软件包,版本号0.6.0的第二个候选发布版。这个版本可能包含了一些新的...

    zyggy:ZFS管理GUI

    Zyggy是用于基本ZFS管理的非常简单的GUI。 系统为最常用的ZFS和ZPOOL命令提供图形访问,如下所示: 迄今为止可用的命令: zfs create(数据集) zfs create -v(卷) zfs重命名 zfs快照 zfs克隆 zfs推广 zfs...

    Oracle Solaris10 Oracle Solaris ZFS管理指南-302

    8. **易于管理**:Oracle Solaris ZFS 提供了一套命令行工具和图形用户界面,使得管理和监控存储池变得简单直观。 在使用 Oracle Solaris ZFS 进行管理时,管理员需要注意以下几点: - **配置存储池**:创建和配置...

Global site tag (gtag.js) - Google Analytics