收藏 分享(赏)

ZFS_cn.ppt

上传人:wspkg9802 文档编号:7402825 上传时间:2019-05-16 格式:PPT 页数:31 大小:1,003KB
下载 相关 举报
ZFS_cn.ppt_第1页
第1页 / 共31页
ZFS_cn.ppt_第2页
第2页 / 共31页
ZFS_cn.ppt_第3页
第3页 / 共31页
ZFS_cn.ppt_第4页
第4页 / 共31页
ZFS_cn.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、ZFS 文件系统,Ding Jie www.opensolaris.org/os/community/zfs,ZFS 介绍,ZFS文件系统介绍 创建和管理存储池 管理ZFS ZFS的性能 ZFS的快照和克隆,ZFS文件系统介绍,ZFS文件系统的概念 ZFS(Zettabyte File system),也叫动态文件系统(Dynamic File system). 它是第一个128位的文件系统。 ZFS文件系统的特点 简单管理 - -提供几近零的管理 ZFS 抛弃大量复杂的存储管理理念并自动执行大量常规管理事务,从而将管理费用降低了80%。 可验证的数据完整性 ZFS 使用了64 位的校验和来保

2、护所有数据,可探测并挽救无记载数据崩溃。 无限制的伸缩性 作为世界上首款 128 位文件系统,ZFS 提供的性能高达 32 位或 64 位系统的 160 亿平方倍。 极高的性能 其事务模式摆脱了在 I/O 发布顺序上的诸多传统限制,从而大大提高了性能。 由于 ZFS 是基于虚拟存储池的顶层构建的(不像传统的文件系统,还需单独的容量管理器),它大大降低了创建和删除文件系统的复杂程度。这不仅免除了容量管理器的许可证费用和签定单独支持合同的麻烦,还降低了管理费用并提高了存储利用率。,ZFS文件系统介绍存储池的概念,传统的物理设备 设备或卷管理,ZFS 存储池 所有存储设备放到存储池 一个文件系统不能

3、独占设备,必须和存储池中的所有设备共享存储池 不再需要预先规划好文件系统的大小,因为文件系统可以在“池”的空间内自动的增大。 当增加新的存贮介质时,所有“池”中的所有文件系统能立即使用新增的空间,而不需要而外的操作。,Storage Pool,FS,Volume,FS,ZFS,ZFS,ZFS,ZFS文件系统介绍事务处理及扩展,事务处理和扩展能力 ZFS是事务处理型文件系统。文件系统的状态总是和硬盘的状态保持一致。 传统的文件系统是先写数据到缓存,再到磁盘。 ZFS采用的是数据管理模式“copy on write“,数据永远保持一致。(不需要用fsck检测系统) ZFS为128位,提供的性能高达

4、 32 位或 64 位系统的 160 亿平方倍。,ZFS文件系统介绍数据检查和修复,数据检查和修复 传统的文件系统提供以数据块为基础的检测。 ZFS被检测的数据都在文件系统层被修复。 ZFS提供自我修复数据的能力。并支持存储池的数据冗余,如镜像和RAIDZ技术。 ZFS用64位的校验和保护所有的数据。,ZFS文件系统介绍简单的管理模式,简单的管理模式 ZFS文件系统提供分层管理。 ZFS通过系统的分层,对层的属性、mount点和NFS共享等进行管理。 ZFS对容易对系统快照和克隆。 ZFS不需要单独的卷管理,但可以创建包括逻辑卷的存储池。(最好用物理卷,用逻辑卷可能会影响性能和可靠性),ZFS

5、文件系统介绍相关术语,ZFS相关术语 checksum:使用加密算法对文件系统数据块进行校验。 dataset:诸如克隆、文件系统、快照等ZFS的通用名称 pool:具有分层属性和物理特性的逻辑设备组。数据被分配到池中 RAID-Z:类似RAID5,是个存储数据及在多个磁盘上进行校验的虚拟设备。解决了raid5的写惩罚问题,采用智能strip size。 Virtual device:池中的逻辑设备。可能是池盘、文件或外设 。,创建和管理存储池,虚拟设备每个存储池都是由一个或多个虚拟设备组成。 磁盘:可以用slice或全盘(最好用全盘)如/dev/dsk/cxtxdxsx 文件:最少128M。

6、文件必需有完整的路径 RAID-Z:类似RAID5,至少两块磁盘,最好在不同控制器上。 动态的条带ZFS动态条带数据可以访问所有可用设备 ZFS不需要在分配时创建固定的条带。存储池能包括多个顶级虚拟设备(最好使用相同类型和级别的虚拟设备)。,创建和管理存储池,创建存储池 创建池。 1、创建一个基本的存储池,方法很简单:# zpool create tank c1t0d0 c1t1d0这时可以在 /dev/dsk 目录下看到一个大的slice,数据动态的stripe跨过所有磁盘! 2、创建一个镜像的存储池也是很简单,只要在上边命令基础上增加“mirror”关键字就可以了,下边是创建一个两路 (t

7、wo-way)镜像的例子:# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0 3、创建RAID-Z存储池使用“raidz”关键字就可以了,例如:# zpool create tank raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 /dev/dsk/c5t0d0这里/dev/dsk/c5t0d0其实跟用c5t0d0是一样的,由此可以看出,在创建ZFS的时候,磁盘完全可以用物理设备名就可以,不需要指出全路径。 4、要查看池是否成功创建,用 zpool list 命令,例如:# zpool listNAME SIZE US

8、ED AVAIL CAP HEALTH ALTROOTtank 80G 137K 80G 0% ONLINE -,创建和管理存储池,删除存储池。 # zpool destroy tank 如果强制删除用”-f“参数 要查看池是否成功创建,用 zpool list 命令,例如: 创建存储池时默认的mount点在创建存储池时,如果mount点所在目录不存在,系统会自动创建,如果存在,根数据集(root dataset)会自动mount到这个目录上。# zpool create -m /export/zfs home c1t0d0 ZFS 文件系统的层次不管层次如何,根总是池的名字。1、为每个用户及

9、项目创建一个文件系统是个不错的办法!2、ZFS可以为文件系统分组,属于同一组的文件系统具有相似的性质,这有点像用户组的概念!相似的文件系统能够使用一个共同的名字。3、大多数文件系统的特性都被用简单的方式进行控制,这些特征控制了各种行为,包括文件系统被mount在哪里,怎么被共享,是否被压缩,是否有限额,创建和管理存储池,增加设备到存储池 用户可以通过增加一个新的顶级虚拟设备的方法动态给存储池增加空间,这个空间立即对空间中的所有数据集(dataset)有效。要增加一个虚拟设备到池中,用“zpool add”命令,例如:# zpool add zeepool mirror c2t1d0 c2t2d

10、0该命令也可以用 -n选项进行预览,例如:# zpool add -n zeepool mirror c3t1d0 c3t2d0would update zeepool to the following configuration:zeepoolmirrorc1t0d0c1t1d0mirrorC2t1d0c2t2d0,创建和管理存储池,增加和减少一路镜像 用“zpool attach”命令增加一路镜像,例如:# zpool attach zeepool c1t1d0 c2t1d0 在这个例子中,假设 zeepool 是第一点里的那个zeepool(已经是两路镜像),那么这个命令将把zeepoo

11、l升级成三路镜像。 用“zpool detach”命令来分离一路镜像# zpool detach zeepool c2t1d0 管理设备的“上线”和“下线” ZFS允许个别的设备处于offline或者online状态。当硬件不可靠或者还没有完全不能用的时候,ZFS会继续向设备读写数据,但不过是临时这么做,因为设备还能将就使用。一旦设备不能使用,就要指示ZFS忽略该设备,并让这个坏掉的设备下线。ZFS不会向offline的设备发送任何请求。用“zpool offline”命令让设备下线。例如:# zpool offline tank c1t0d0 (bringing device c1t0d0

12、offline)不能使设备失败的情况下让设备离线。如不能在RAIDZ中离线两个设备。要临时offline一个设备,用-t选项,例如:# zpool offline -t tank c1t0d0 (bringing device c1t0d0 offline)用“zpool onine”命令使设备上线# zpool online tank c1t0d0 ( bringing device c1t0d0 online),创建和管理存储池,清扫存储池设备 如果设备因为出现错误,被offline了,可以用“zpool clear”命令清扫错误。 如果没有特别指定,zpool clear命令清扫池里所有

13、设备。例如:# zpool clear tank 如果要清扫指定设备,例如:# zpool clear tank c1t0d0 替换存储池里的设备 用“zpool replace”命令替换池中设备,例如:# zpool replace tank c1t1d0 c1t2d0 ( c1t1d0 被 c1t2d0 替换) 注意:如果是mirror或者RAID-Z,替换设备的容量必须大于或等于所有设备最小容量!,创建和管理存储池,查询ZFS存储池的状态 1、ZFS存储池的基本信息用“zpool list”命令查看存储池的基本信息,例如:# zpool listNAME SIZE USED AVAIL

14、CAP HEALTH ALTROOTtank 80.0G 22.3G 47.7G 28% ONLINE -dozer 1.2T 384G 816G 32% ONLINE - NAME: The name of the pool.-SIZE: The total size of the pool, equal to the sum of the size of all top-level virtual devices.- USED:The amount of space allocated by all datasets and internal metadata. Note that thi

15、s amount is different from the amount of space as reported at the file system level. - AVAILABLE: The amount of unallocated space in the pool.- CAPACITY (CAP): The amount of space used, expressed as a percentage of total space.- HEALTH: The current health status of the pool.- ALTROOT: The alternate

16、root of the pool, if any.,创建和管理存储池,查询ZFS存储池的状态 1.可以通过指定名字来查看某一个池的状态,例如:# zpool list tankNAME SIZE USED AVAIL CAP HEALTH ALTROOTtank 80.0G 22.3G 47.7G 28% ONLINE -如果要有选择看状态列表,可以用-o选项# zpool list -o name,sizeNAME SIZEtank 80.0Gdozer 1.2T 2.显示虚拟设备的IO统计信息 :用“zpool iostat”命令查看存储池的I/O状态,例如:# zpool iostatc

17、apacity operations bandwidthpool used avail read write read writetank 100G 20.0G 1.2M 102K 1.2M 3.45Kdozer 12.3G 67.7G 132K 15.2K 32.1K 1.20K3、ZFS存储池的健康状态 用“zpool status”查看健康状态,创建和管理存储池,存储池的移植 1.卸载存储池,例如:# zpool export tank 2.装载可用的存储池,例如: # zpool importpool: tankid: 1682187158316955435state: ONLINE

18、action: The pool can be imported using its name or numeric identifier. config:tank ONLINEc2t0d0 ONLINEc2t1d0 ONLINE 3.导入池 zpool import tank (如果池名与目前有冲突可以使用新命名来导入如:zpool import tank tanker),管理ZFS,创建ZFS文件系统 ZFS文件系统可以通过命令zfs create命令进行创建。Create子命令可以使用创建文件系统名称。文件系统名称是从池名 pool-name/filesystem-name/filesy

19、stem-name 开始的;用池名和初始化后的文件名鉴别文件系统创建后的层次位置。 文件系统的名字必须符合ZFS文件名组成的要求。任何一个ZFS文件系统名字的组成必须符合下面的规则: 不允许为空 任何一个名字只能包含文字和数字以及下面4个特殊字符(_;-;:;. ); 存储池的名字必须是用小写字母开始。除了开始序列0-9 是不允许的。同时,存储池的名字象mirror, raidz, 和 spare是不允许的,因为这些是保留的。下面的例子显示文件系统bonwick被创建到tank/home文件系统上。 # zfs create tank/home/bonwick ZFS 如果创建成功它会自动mo

20、unt到新创建的文件系统上。默认的文件是mount为/dataset,为create命令提供文件系统名提供使用路径。例如:新创建的bonwick文件系统是/tank/home/bonwick更多的关于自动mount点的信息参考 Managing ZFS Mount Points.,管理ZFS,删除ZFS文件系统 删除ZFS文件系统使用zfs destroy命令。删除文件系统是自动umount和unshared。 # zfs destroy tank/home/tabriz 注意:使用destroy命令没有确认提示出现。 如果文件系统在删除的时候是忙的和不能unmount则zfs destroy

21、命令失败。删除活动的文件系统,使用-f参数。使用这个参数要注意,它能够umount unshare和删除活动的文件系统,引起一些非预见的应用活动。 # zfs destroy tank/home/ahrens cannot unmount tank/home/ahrens: Device busy # zfs destroy -f tank/home/ahrens如果文件系统是子系统在使用zfs destroy时也会失败。要递归删除文件系统和所有的相关信息。使用-r参数递归删除同时也要注意同时会删除snapshots # zfs destroy -r tank/ws 如果文件系统间接的删除了一

22、些信息。则递归删除也会出现失败。则需要强迫删除所有的信息,包括外部层次上的克隆文件系统。则需要使用-R参数。 # zfs destroy -R tank/home/schrock 注意在使用-f r R参数时没有出现确认提示消息。,管理ZFS,为ZFS文件系统更名 文件系统可以使用zfs rename命令进行更名。使用rename命令可以执行以下操作。 下面是一个使用rename命令的例子 # zfs rename tank/home/kustarz tank/home/kustarz_old 将 kustarz 文件系统更名为 kustarz_old. 下面的例子显示将文件系统重新定位 #

23、zfs rename tank/home/maybee tank/ws/maybee 这个例子中如果maybee文件系统重新定位tank/home到tank/ws。当你重新定位文件系统通过rename命令,新定位的点必须有同样的存储池并且有足够的空间来提供给新的文件系统。如果,新的定位点没有足够的空间,可能是存储池已经达到容量了。则rename失败。,管理ZFS,文件系统的属性 文件系统可以使用zfs set命令设定属性和属性值。除了限额和保留,设定的属性是可以继承的。 列出文件系统的基本信息 # zfs list NAME USED AVAIL REFER MOUNTPOINT datab

24、106K 16.5G 18K /datab 文件系统的属性查询 用-o;-f;-H查询文件系统的属性。 # zfs list -o name,sharenfs,mountpoint NAME SHARENFS MOUNTPOINT tank off /tank tank/home on /tank/home tank/home/ahrens on /tank/home/ahrens tank/home/bonwick on /tank/home/bonwick tank/home/chua on /tank/home/chua tank/home/eschrock on legacy tank

25、/home/moore on /tank/home/moore,管理ZFS,ZFS管理属性 1、设置属性 用zfs set设置、修改 # zfs set atime=off tank/home ;atime进行读操作对时间的更新 # zfs set quota=50G tank/home/marks ;数据集和派生的空间限制 # zfs set quota=50g tank/home/marks 2、继承的属性 除了限额和保留,其它的属性是可以从父级继承过来。Zfs inherit命令清除自己设置的属性,并从上一级继承过来。 # zfs set compression=on tank/home

26、/bonwick # zfs get -r compression tank NAME PROPERTY VALUE SOURCE tank compression off default tank/home compression off default tank/home/bonwick compression on local # zfs inherit compression tank/home/bonwick # zfs get -r compression tank NAME PROPERTY VALUE SOURCE tank compression off default ta

27、nk/home compression off default tank/home/bonwick compression off default,管理ZFS,查询属性 # zfs get checksum tank/ws NAME PROPERTY VALUE SOURCE tank/ws checksum on default # zfs get all tank 查询所有属性 NAME PROPERTY VALUE SOURCE tank type filesystem - tank creation Wed Jan 10 12:18 2007 - tank used 144K - ta

28、nk available 134G - tank referenced 25.5K - tank compressratio 1.00x - tank mounted yes - tank quota none default tank reservation none default tank recordsize 128K default tank mountpoint /tank default,管理ZFS,安装和共享文件系统 管理ZFS mount点 默认的所有的ZFS文件系统的mount是通过SMFsvc:/system/filesystem/local服务来启动的。文件系统是mou

29、nt在/path文件系统名路径上的。你能够通过设置mount点的属性通过使用zfs set命令来指定mount点。ZFS文件系统自动创建mount点,如果需要自动mount文件系统使用命令zfs mount a来引入,不需要你来编辑/etc/vfstab文件。 mount点的属性是继承的。比如:如果pool/home是mount点设置在/export/stuff上则pool/home/user继承/export/home/user为它mount点的属性。 Mount点的属性能够设置为none来防止文件系统重复mount. 自动安装点 # zfs create pool/filesystem #

30、 zfs get mountpoint pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mountpoint /pool/filesystem default # zfs get mounted pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mounted yes -,管理ZFS,安装和共享文件系统 直接设置mount点的属性,看下面的例子。 # zfs set mountpoint=/mnt pool/filesystem # zfs get moun

31、tpoint pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mountpoint /mnt local # zfs get mounted pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mounted yes - 当mount点的属性改变的时候,文件系统是自动从老的mount点上umount的然后重新mount到新的mount点上。Mount点目录是需要创建的。如果ZFS并不能unmount文件系统在文件系统活动期间,这个错误是被报告的并且需要手工强制

32、unmount。 遗留的(legacy)安装点 你能够管理ZFS文件系统通过legacy工具来设置mount点的属性的legacy。Legacy文件系统不许通过mount和umount命令和 /etc/vfstab文件来管理。ZFS文件系统不能启动的时候自动mount legacy文件系统同时ZFS mount和umount命令并不能操作datasetl类型。下面的例子显示如何设置和管理ZFS dataset。 # zfs set mountpoint=legacy tank/home/eschrock,管理ZFS,安装和共享文件系统 sharing ZFS 文件系统 和mount点近似。ZF

33、S能够自动共享文件系统通过使用sharefs属性。使用这种方法当你增加一个新的文件系统的时候并不需要修改 /etc/dfs/dfstab文件。共享属性是用逗号分割选项的在share命令上。为别名指定的值是on在默认共享选项上为所有的用户指定为 read/write权限。当指定值为off知识文件系统不通过ZFS文件系统管理同时通过传统的方式进行共享比如:/etc/dfs/dfstab文件。所有的这些文件系统的sharenfs在共享启动的时候是打开的。 控制Share Semantics 默认的所有文件系统是非共享的。共享新的文件系统通过zfs set设置。# zfs set sharenfs=o

34、n tank/home/eschrock 属性是继承的,当文件系统自动共享创建则他们的继承属性是打开的。 限额和保留 用quota设定限额和reservation保留空间 # zfs set quota=10G tank/home/bonwick # zfs get quota tank/home/bonwick NAME PROPERTY VALUE SOURCE tank/home/bonwick quota 10.0G local # zfs set reservation=5G tank/home/moore,ZFS的性能,ZFS的性能,zfs的快照和克隆及状态显示,创建克隆 # zf

35、s clone pool/gateyesterday pool/gatetoday 删除克隆 zfs destroy pool/gatetoday ZFS 状态显示 # zpool status mymirror pool: mymirror state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM mymirror ONLINE 0 0 0 mirror ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 errors: No known data er

36、rors,zfs的快照和克隆,备份和恢复文件系统 备份 ZFS 文件系统 # zfs backup tank/dana /dev/rmt/0 恢复 ZFS 文件系统 # zfs restore tank/dana /dev/rmt/0 快照和克隆 创建和删除快照 # zfs snapshot -r tank/homenow 创建 # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT tank/homenow 0 - 29.5K - tank/home/ahrensnow 0 - 2.15M - tank/home/annenow 0 - 1.89M - tank/home/bobnow 0 - 1.89M - tank/home/cindysnow 0 - 2.15M - zfs destroy tank/homenow -删除,ZFS file system,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报