netapp存储配置练习snapshot
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NetApp存储基础学习汇总(第七部分)
目录
一、snapshot管理 (1)
1.1、snapshot基本概念 (1)
1.2、snapshot是怎么工作的 (2)
1.3、使用snapshot相关命令 (4)
1.4、NFS客户端如何使用snapshot (7)
1.5、CIFS客户端如何使用snapshot (7)
1.6、测试从CIFS客户端利用snapshot恢复文件 (8)
1.7、使用snap restore命令 (10)
一、snapshot管理
1.1、snapshot基本概念
SnapShot是WAFL文件系统“任意位置写入”功能带来的一项突出优势。
一份SnapShot是整个文件系统的在线只读拷贝。
创建文件系统的一份SnapShot仅仅需要几秒钟的时间,并且除非原始文件被删除或者更改,数据快照并不占用额外的磁盘空间。
这种只有当数据快发生改动时才进行数据块复制的技术被称作“Copy-on-write”,只有修改活动文件系统中的数据块并写入磁盘中新的位置时,SnapShot才会占用额外的磁盘空间。
●在没有数据副本的情况下,快照保护意外的数据删除和修改。
●文件系统每个版本的copy叫做snapshot
●快照用来做备份和恢复。
用户可以采用SnapShot作为数据的在线备份,以备将来进行数据恢复时使用。
用户也可以方便的把SnapShot快照备份到磁带上。
无需将Filer系统下线,用户管理员就可以将最近的SnapShot快照备份到离线系统中。
Snapshot的优势:
●快速的备份和恢复
●在线的备份
●自动或者手工的创建计划任务
●对于磁盘空间没有显著的影响。
SnapShot技术详述
WAFL文件系统本身就可以理解成数据块树状结构,其根部的数据结构描述了inode文件信息。
这份inode文件信息则包含了对文件系统中所有inode的描述,它包含诸如空闲块图和空闲inode图等元数据信息。
WAFL通过复制根数据结构创建新的数据拷贝SnapShot。
因为根数据结构只有128B,并且不需要在硬盘上复制其他数据块,一个新的SnapShot几乎不耗额外的磁盘空间,除非用户修改或者删除文件系统中的数据。
Filer可以对一个卷组创建最多255个SnapShot快照。
SnapShot快照可以通过手动或者人为预先定制
策略的方式来自动创建。
每一个SnapShot快照可以保存的时间取决于文件系统变动的频度。
在众多应用环境中,文件系统中的大部分数据并不是每天在变化,比如一个使用10MB大小Home Directory的用户,其数据通常每天只变动100到500KB。
当文件变动缓慢的时候,SnapShot可以在线保存数天甚至数周,直到他们消耗的磁盘空间过多以至用户无法接受。
而另外一些文件系统中的数据则在经常不停的变动,比如CAD应用环境下,需要经常覆盖写入许多大尺寸的文件,甚至可能一两天内就会更新整个文件系统的存储内容。
在此类环境下,可能只有保存数小时SnapShot的空间。
Snapshot是DataONTAP软件比较独特的特点,可以在线的管理和维护每个volume的文件系统。
Snapshot 可以用于快速恢复active (AFS),AFS的snapshot还可以让用户非常方便的恢复意外的数据损坏和删除。
●快照是volume或者aggregate上某一时间点上只读的镜像。
●它仅仅是文件系统的一个图像而不包括实际的数据文件。
●快照的主要目的就是为了备份和恢复。
●最初只消耗很小的磁盘空间
●DataONTAP是可以自动创建和删除snapshot的。
●快照可以看做是原始数据的复制品,但实际的数据块并没有复制。
●我感觉快照通过指针,实现对删除和修改数据块的占用,来保留删除和修改数据所占用的数据块,
所以当删除修改动作比较少的时候,占用空间比较少,恢复时比较快,只是指针进行挪动,并没
有实际的数据拷贝出现。
针对volume的snapshot:
传统卷和灵活卷的snapshot保存在一个特殊的子目录里面,UNIX和windows客户端可以访问并且恢复它们自己的文件。
每个卷同一时刻可以保留255个快照。
针对aggregate的snapshot:
创建一个aggregate会预留5%的空间作为sanpshot,
创建snapshot可以根据自动的时间表。
你也可以手工的设置时间表,时间表的间隔是周、日、小时。
因为snapshot与AFS文件系统是独立存储的,你可以执行对最近创建的snapshot备份,而不需要将系统offline(比如将volume offline),即使用户访问很繁重。
Aggr快照不需要作为每天日常管理的内容。
相反,DataONA TP可以自动的创建aggr的snapshot,当使用一些命令,比如snapmirror做卷级别的镜像的时候,就会自动产生快照。
1.2、snapshot是怎么工作的
在做snapshot之前,就有一个文件系统树指向真实的数据块,当做了一次snapshot后(假设数据没有任何更新),就拥有了一份文件结构的拷贝。
快照的指针同样指向这些数据块。
见上图:此时snapshot与AFS的文件结构一致。
再做snapshot后,此时对磁盘空间的影响不明显。
因为此时文件结构占用的空间很小,同时在磁盘上不
需要数据块的拷贝。
几乎就是无额外的磁盘占用。
Snapshot开始使用磁盘空间是当数据被删除或者修改的时候。
新增数据进去空间占用也很小。
见上图WAFL写一个数据到到新的数据块(D’),同时AFS修改文件结构指向新的数据块。
但同时snapshot依然指向最初的数据块D,只要snapshot指向这个数据块,这个数据块就不能访问,所以说snapshot 开始消耗磁盘空间是从创建snapshot后,文件系统有变动开始。
它保留了文件系统之前某个时刻的镜像。
对于aggr划分灵活卷磁盘空间是怎么分配的?
Snapshot预留WAFL文件系统预留
Aggregate 整个aggr空间的5% 整个aggr空间的10%
Aggr里面的每个灵活卷灵活卷的20%,其它给客户数据
预留给snapshot的空间是可以调整的,你可以手工修改这个预留比例,把这块空间给数据存储用(但不推荐这么做)。
tan> aggr show_space -h aggr1 ←=看aggr上面的空间分配
Aggregate 'aggr1'
Total space WAFL reserve Snap reserve Usable space BSR NVLOG A-SIS 6000MB 600MB270MB5130MB 0KB 0KB
tan> snap reserve vol1 ←==看某个卷预留了多少
V olume vol1: current snapshot reserve is 20% or 204800 k-bytes.
tan> snap list
V olume vol1
working...
%/used %/total date name
---------- ---------- ------------ --------
26% (26%) 0% ( 0%) Dec 27 20:00 hourly.0
40% (25%) 0% ( 0%) Dec 27 16:00 hourly.1 ←=目前预留的空间占用了40%
对于传统卷磁盘空间是怎么分配的?
Aggregate:每个aggregate分配了10%的空间预留给WAFL文件系统。
对于传统卷:每个卷预留了20%的空间给snapshot.给snap预留的空间比例是可以调整的。
Snap预留WAFL文件系统预留
Aggregate 整个aggr空间的10%
Aggr里面的传统卷传统卷的20%,其它给客户数据
=============→
为snapshot预留的空间可以扩展到用户空间只要系统需要,比如在AFS文件系统中发生大量的改变,这时候预先分配的空间比例满足不了要求的时候,snap空间就会占用数据空间。
你可以重新手工的分配磁盘空间用snap reserve命令,除非你故意的调整它,用户使用的磁盘空间不超过70%。
1.3、使用snapshot相关命令
与snapshot相关的options命令:
1.4、NFS客户端如何使用snapshot
tan> vol options vol1 nosnapdir off ==在存储一端执行此命令,让客户端可以看见.snapshot目录在NFS客户端mount上共享资源
-bash-3.00# ls -la
total 146
drwxrwxrwx 19 root root 4096 Dec 29 13:10 .
drwxr-xr-x 42 root root 1024 Dec 25 12:33 ..
drwxrwxrwx 4 root root 4096 Dec 29 14:34 .snapshot
drwxrwxrwx 7 root other 4096 Dec 29 13:10 Common Files
-bash-3.00# pwd
/tan/.snapshot/hourly.0
-bash-3.00# ls -l
total 40
drwxrwxrwx 2 root root 4096 Dec 27 19:06 qtree1
drwxrwxrwx 3 root root 4096 Dec 27 15:28 qtree2
drwxrwxrwx 2 root root 4096 Dec 27 19:06 qtree3
drwxrwxrwx 2 root root 4096 Dec 27 19:28 wangjun
drwxrwxrwx 2 root root 4096 Dec 27 19:56 wangjun1
1.5、CIFS客户端如何使用snapshot
tan> options cifs.show_snapshot on
tan> vol options vol1 nosnap off
可以看见snapshot目录了。
最近的快照里面的内容。
1.6、测试从CIFS客户端利用snapshot恢复文件
测试创建快照后,AFS文件系统变化后,如何利用快照恢复到前一状态。
第一步:
tan> snap delete -a vol1 ==先删除vol1上面的所有快照
Are you sure you want to delete all snapshots for volume vol1? y
Deleted vol1 snapshot hourly.2.
Deleted vol1 snapshot hourly.1.
Deleted vol1 snapshot hourly.0.
第二步:
这个时候快照目录是空的。
第三步:手工的创建一个快照。
tan> snap create vol1 tes
这时候在客户端,发现test目录下面的结构与AFS文件系统一致。
第四步:删除AFS里面的一个目录
快照中这个目录还是存在的。
再试验向共享中拷贝新的文件,发现快照目录里面是没有这个新文件的。
将快照中的wangjun目录拷贝到以前的位置,文件和目录就恢复了。
1.7、使用snap restore命令
对于LUN一级做snapshot,netapp的建议是最好一个volume上面创建一个LUN。
因为做恢复的时候只能针对volume或者file来做恢复。
snap restore [ -f ] [ -t vol | file ] [ -s snapshot_name] [ -r restore_as_path ] vol_name | restore_from_path
从指定的snapshot恢复一个volume,或者恢复一个单独的文件。
这个命令没有license是看不见的。
如果你没有指定snapshot,则系统会提示你输入一个snapshot。
在恢复volume或文件这些操作前会让用户确认,-f选项会禁止确认这步。
如果-t选项指定了,则下面必须标明是恢复整个volume还是文件。
也就是说snaprestore不能同时执行volume的snaprestore和文件的snaprestore。
对于volume snaprestore:
V olume必须是online状态并没有镜像。
如果恢复根卷则需要重启,如果恢复非根卷则不需要重启。
当恢复的时候所有针对非根卷的访问全部终止,就象offline了一样。
但其实volume offline了是保护了,不让用户访问,但也不让数据恢复了,所以这两种状态还是有区别的。
做完恢复了之后,volume就具有了和做快照那个时刻同样的状态。
对单个文件的snaprestore:
保存文件的V olume必须是online状态并没有镜像如果restore_as_path选项指定了,则必须是文件的全路径。
如果在volume没有足够的空间,则单个文件恢复不会执行,如果在AFS里面文件已经存在则会覆盖它。
Snap 命令会花费几分钟时间返回,这段时间客户端排他锁撤销。
当snap命令返回,则恢复过程在后台开始执行,
这段时间,任何试图去修改文件的操作都会挂起直到恢复完成,但是其它的文件snaprestore是可以做的。
在恢复过程中,快照不能删除,新快照不能创建当单个文件恢复正在进行的时候,定义的计划snapshot也会暂时挂起。
对于tree、user、group的quota限制在恢复过程中也不强加,如果超过了quota的限制,则在恢复完成后,/etc/quota就需要改变,然后再执行quota resize命令。
恢复完成后文件的属性(大小、权限、属主等)与snapshot中的一致。
如果恢复过程中,系统宕机了,则重启后操作自动重新启动。
命令实践
11 / 11。