2NetApp存储基础学习汇总磁盘和卷管理.docx
《2NetApp存储基础学习汇总磁盘和卷管理.docx》由会员分享,可在线阅读,更多相关《2NetApp存储基础学习汇总磁盘和卷管理.docx(39页珍藏版)》请在冰豆网上搜索。
2NetApp存储基础学习汇总磁盘和卷管理
NetApp存储基础学习汇总(第二部分)
一、管理磁盘和卷
1.1、管理磁盘
1.1.1、raid组概念
SCSI磁盘阵列内部结构图(单控制器):
SCSI磁盘阵列内部结构图(双控制器):
Raid组是多个磁盘组合在一起,每个RAIDgroup(RAID4)包含一个校验盘和一个或多个数据盘,当数据盘损坏的时候,存储会确定那个盘上都有哪些数据,然后在hotspare盘上重建这些数据。
RAIDDP有两块校验盘,可以保护RAID组里面两块盘损坏,最少的盘数量至少是3块,一块数据盘,一块校验盘,一块dual校验盘。
如果是校验盘损坏了,则可以根据数据盘的内容来重建。
2.1.2、什么是PLEX
AplexisacollectionofoneormoreRAIDgroupsthattogetherprovidestorageforoneormoreWriteAnywhereFileLayout(WAFL®)filesystemvolumes.
PLEX是一个或多个RAID组的集合,它们在一起为WAFL文件系统卷提供了存储能力。
Aggregates是一个或一组Plex组成的。
Plex是由一个或者多个RAID4或者RAIDDP组成的。
2.1.3、Hotspare盘概念
当有盘损坏的时候,可以用sysconfig–r命令来看具体是那块盘损坏了。
HotSpare盘有以下特点:
不包含数据
不管是哪个RAID组的盘损坏了,都可以替换,也就是说hotspare盘是全局起作用的,而不是属于哪个raidgroup。
可以这么说hotspare属于整个存储,但是不属于某个RAIDGROUP。
自动替换损坏的盘
至少应该和损坏的盘大小一样,而不能比损坏的盘容量还小
系统会选择正确的盘来作为hotspare盘
可以非常快的替换
从上图可以看见,hotspare盘是属于存储的,而不是属于哪个raidgroup,当出现盘损坏后,存储会自动的重建数据或校验数据在hotspare盘上。
你可以在线的更换新磁盘,在坏盘换下来,新盘就作为hotspare盘来使用,如果raidgroup不是做成raidDP则如果出现两块盘同时损坏,就会发生数据丢失。
如果一个卷包含超过一个raidgroup,那么可以忍受两块盘损坏,但这两块盘必须是不属于同一raidgroup时,才可以。
如果没有hotspare盘去替换已经损坏的盘,系统将会运行在一个”降级”模式,这时候虽然数据没有丢失,但性能不是最佳的,如果超过了这个时间还没有更换新的磁盘,系统就会自动关机。
缺省的这个时间由下面的参数决定。
wangjun>optionsraid.timeout
raid.timeout24
如果过一个长假,希望延长这个时间,则可以修改这个参数来实现。
但是延长这个时间带来了很大风险,会造成其它盘损坏。
在”降级”运行期间,如果是设置的raid4,再坏块盘,就会丢失数据,而如果是raiddp还不会丢失数据,除非坏第三块盘。
2.1.4、raid组大小的选择及考虑
Raid组大小的定义要考虑到客户的需求以及性能的优化,netapp的raid组可以由2-28块硬盘组成。
Raid组支持的最小数量是与raidgroup类型有关系。
Raid组支持的最大数量是与raidgroup类型有关系。
缺省的raid组大小是在基于不同raid类型的基础上考虑性能最优和容错要求。
支持的最大raid组:
平台
RAIDDP
RAID4
SyncMirror_Local
备注
FAS6000
FC或SAS盘:
28(26个数据磁盘加2个奇偶校验磁盘)
SATA盘:
16(14个数据磁盘加2个奇偶校验磁盘
FC或SAS盘:
14块盘(13个数据磁盘加2个奇偶校验磁盘),
SATA盘:
7块(6个数据磁盘加1个奇偶校验磁盘)
RAID6+RAID1或RAID4+RAID1
Raid6是针对大于146G盘的配置推荐。
缺省raid组大小是raidDP是16
Raid4是8
FAS3100
FC或SAS盘:
28(26个数据磁盘加2个奇偶校验磁盘)
SATA盘:
16(14个数据磁盘加2个奇偶校验磁盘
FC或SAS盘:
14块盘(13个数据磁盘加2个奇偶校验磁盘),
SATA盘:
7块(6个数据磁盘加1个奇偶校验磁盘)
RAID6+RAID1或RAID4+RAID1
FAS2000
FC或SAS盘:
28(26个数据磁盘加2个奇偶校验磁盘)
SATA盘:
16(14个数据磁盘加2个奇偶校验磁盘
FC或SAS盘:
14块盘(13个数据磁盘加2个奇偶校验磁盘),
SATA盘:
7块(6个数据磁盘加1个奇偶校验磁盘)
RAID6+RAID1或RAID4+RAID1
2.1.5、不同大小和转速的硬盘混装在同一存储的处理
不同时期采购的硬盘可能会造成同一存储中,有不同大小的硬盘,不同大小的磁盘需要不同的DataONTAP版本或者磁盘柜的支持,这个具体信息需要看系统配置手册。
一个raid组里面的hotspare和校验盘必须是最大尺寸的,否则无法备份任何数据盘里面的数据。
一个volume里面支持磁盘尺寸不一样,但是netapp不推荐这么做,这样会带来性能的下降,即一个volume里面磁盘尺寸大小最好一致。
下表是FAS6000支持的磁盘类型和大小(2009年12月)
FC盘
9/18/36/72/144/300GB9/18/36/72G虽然支持但现在不出货了,其实也就是支持144G和300G的
SATA盘
250GB,500GB,750GB,1TB
SAS盘
300GB、450GB、600GB
上图表示我那一块大硬盘去重建数据,而被替换的硬盘尺寸小,那么就会出现容量的损失,上图72G的盘只能作为36G的来使用了。
DATANOTAP支持把不同转速的盘混合起来使用,需要打开raid.rpm.ata.enable和raid.rpm.fcal.enable选项。
以下是缺省情况这两个选项的设置值:
raid.rpm.ata.enableoff
raid.rpm.fcal.enableon
1.2、配置RAID组
1.2.1、Raid4和RaidDP
(1)、RAID4水平行奇偶校验
下列图表说明了在传统NetAppRAID4解决方案中使用水平行奇偶校验的方法,也是您了解RAIDDP和双奇偶校验的第一步。
图
图表代表了传统的RAID4组,使用包括4个数据磁盘(前4列,标注为“D”)和一列奇偶校验磁盘(最后一列,标注为“P”)的单向奇偶校验。
上面图表中的行显示了实施传统NetAppRAID4时使用的标准4KB块。
上面图表中的第二行在每个4KB块和行中数据的奇偶校验计算中添加了一些样例数据,随后存储在奇偶校验磁盘上相应的块中。
在这种情况下,计算奇偶校验的方式是向每个水平块中添加值,然后将这些值的和存储为奇偶校验值(3+1+2+3=9)。
实际上,奇偶校验是通过专门的OR(XOR)过程进行计算,但其它情况也与此例非常相似。
如果需要从单一故障中重建数据,则产生奇偶校验的过程将与此相反。
例如,当RAID4恢复上面第一列的数据值3时,如果第一个磁盘发生故障,就会从奇偶校验中存储的值中减去剩余磁盘上的值(9-3-2-1=3)。
这个通过单一奇偶校验RAID重建的例子,应该有助于从概念上理解为什么能够对单一磁盘故障提供数据保护。
(2)、添加RAIDDP双奇偶校验条,RaidDP是如何做的
下表将一个以蓝色阴影块表示的对角线奇偶校验条和一个在第六列中以“DP”表示的第二个奇偶校验磁盘添加到前面的RAID4组中。
这表示RAIDDP结构是RAID4水平行奇偶校验解决方案的超集。
在这个例子中对角线奇偶校验条通过相加的方法计算,并且存储在第二个奇偶校验磁盘上,而不是按实际使用的XOR校验来计算的:
(1+2+2+7=12)。
解释:
对角线校验将第一块校验盘上的内容也作为数据来处理。
下一个图表为每个块加入了余下的数据,并且建立了相应的行和对角线奇偶校验条。
从上图可以明显看出,在RAIDDP中,对角线奇偶校验条都在行奇偶校验结构的边上。
在这个例子中,对于RAIDDP对双磁盘故障进行恢复的能力,有两种重要情况需要注意。
第一种情况是,每一个对角线条会错过唯一的一个磁盘,但是每个对角线错过的磁盘都不一样。
一条对角线:
有一行的某个块上数据的校验没有被记录在对角线校验中,但从上图看错过的磁盘是不规律的。
第二种情况的结果是,在第二个对角线奇偶校验磁盘上会产生一个没有得到奇偶校验的对角线条。
上图中白色的块没有被记录到校验盘。
在这个例子中,被遗漏的对角线条是白色的块。
在之后的重建例子中会明显的看出,遗漏一个对角线条不会影响RAIDDP在双磁盘故障中恢复所有数据的能力。
值得重视的是,在本例中介绍的许多同样的RAIDDP对角线奇偶校验都是真实的存储情况;其中涉及到在RAID组中的许多磁盘上,以及通过RAID4组水平写入成数百万的数据行。
并且,通过上面较小的例子我们很容易地例证了RAIDDP,而且不管RAID组中的有多少磁盘,对于大尺寸的RAID组,其恢复情况也与此相同。
由于RAIDDP可以通过两种方式对双磁盘故障进行所有数据的恢复:
一种是使用数学原理并进行证明,另一种则是简单地通过双磁盘故障并随后进行恢复。
本文将使用后面的方法来证明RAIDDP的双奇偶校验保护的概念。
使用数学原理和证明的方法,超出了本文对RAIDDP的叙述范围,
但我们在另外一篇文章中单独进行了描述,而且即将在NetApp的外部网站上发布。
(3)、双盘数据丢失后,RAIDDP的重建
我们使用最近的图表开始介绍双磁盘故障。
假定在发生双磁盘故障时,RAID组运行正常。
在下表中,第一、二列中的所有数据都丢失了。
当发生双磁盘故障之后,RAIDDP首先会寻找一个链来开始重建。
在本例中,我们用蓝色的对角线奇偶校验条来显示其所发现的链。
不要忘记,当在RAID4下为单一磁盘故障重建数据时,只有在丢失的元素不超过一个时,这种情况才会发生。
记住这一点之后,我们可以看到上图中蓝色对角线条中只丢失了五个块中的一个。
借助五个元素中仍然存在的四个,RAIDDP能够获得所需的全部信息,(也就是说根据RAIDDP数据存储方式和校验方式,有一个链可以开始对角链恢复,那么就从这个链开始恢复计算),来重建蓝色丢失块中的数据。
接下来的图表反映了这些数据被恢复到空闲的磁盘上。
从丢失的蓝色对角线块中重建数据时,使用了前面介绍的算法(12-7-2-2=1)。
现在,
丢失的蓝色对角线信息已经被重建,恢复过程从使用对角线奇偶校验转换至使用水平行奇偶校验。
特别是,蓝色对角线之后的顶端的行重建了丢失的对角线块,而没有足够的信息从行奇偶校验中重建单个丢失的水平块(9-3-2-1=3)。
这种情况出现在下列图表中。
RAIDDP接下来继续处于同样的链中,以决定是否能够重建其他的对角线条。
上面左方的块被行奇偶校验重建,使得RAIDDP现在能够重建灰色对角线条中相对的对角线块,如下图所示。
再一次,当RAIDDP恢复了对角线条中相对的对角线块后,它就有了足够的行奇偶校验信息,来重建第一列中丢失的水平块,接下来的图表中例证了这个情况。
图32:
与我们前面所注意到的一样,白色对角线条没有被存储,现存的链中也没有额外的对角线块能够重建。
RAIDDP将开始寻找新的链以开始重建对角线并且,基于这个例子,决定了其能够重建黄色对角线条中丢失的数据,如下图所示。
在RAIDDP重建了丢失的对角线块之后,这个过程再次从行奇偶校验转换至重建丢失的水平块。
当黄色对角线中丢失的对角线块被重建后,可以得到足够的信息重建行奇偶校验中丢失的水平块,由下图可以明显看出。
水平行中丢失的块被重建之后,重建转换回对角线奇偶校验以创建丢失的对角线块。
RAIDDP能够继续处于当前的对角线链中如下图所示。
同样,在对角线块恢复之后,因为有足够的信息重建一个水平块信息,这一过程将会转换回行奇偶校验。
接下来是双磁盘故障情况的最后一个图表,通过RAIDDP所有的数据都被重建了。
RAIDDP卷的性能可以与RAID4相媲美。
每种类型的RAID的读操作几乎一样。
RAIDDP的写操作性能要比RAID4慢2%到3%。
造成性能微小差距的原因是RAIDDP卷上的第二个对角线奇偶校验磁盘会出现额外的写操作。
相对于RAID4,运行RAIDDP时CPU的利用率并无明显差别。
总结:
RAIDDP的写操作比RAID4+稍有些慢。
先恢复对象线校验盘上的数据,使水平校验有足够的数据,然后再恢复水平校验盘上的数据。
1.2.2、一些关于raid组选项的设置
RAID组是建立卷的基本结构.
wangjun>optionsraid.timeout--功能:
设置系统可以在降级模式缺省运行的时间
raid.timeout24
wangjun>optionsraid.reconstruct.perf_impact--功能:
设置重建的时候分配的系统资源的多少
raid.reconstruct.perf_impactmedium
options.raid.reconstruct_speed==这个在7.3里面已经没有了
wangjun>optionsraid.scrub.enable==设置raidscrub每星期六1点自动做
raid.scrub.enableon
wangjun>optionsraid.scrub.perf_impact==设置做raidscrub的时候系统资源的分配
raid.scrub.perf_impactlow
optionsraid.default_raidtype=定义创建volume的时候缺省的raidtype类型,raid4和raid_dp,7.3已经没有这个选项了。
wangjun>voloptionsvolume_nameraidtypevalue==修改指定卷的RAID组类型,Values:
raid4(default),raid_dp
Example:
voloptionsvol0raidtyperaid_dp
wangjun>aggroptionsaggregate_nameraidtypevalue
修改指定aggregate的RAIDGROUP类型.Values:
raid4,raid_dp(default)
Example:
aggroptionsaggr0raidtyperaid4
Netapp存储使用diskscrub技术,避免因为介质错误,坏扇区等问题造成数据丢失。
启动这个功能后,raid组里面的每块盘都扫描来发现错误,如果发现了错误,则通过校验数据重建和重写数据。
如果不这样做,如果在降级模式运行则会造成多块盘损坏。
如果optionsraid.scrub是off的,也可以手动启动此命令。
什么时候会造成降级运行,raidgroup设置为RAID4,其中一块盘损坏,设置为RAIDDP,但RAID组中同时两块盘损坏,而且没有设置hotspare磁盘,此时存储降级运行,缺省时间是24小时,在此时间内如果没有更换磁盘,则系统shutdown。
1.2.3、一些关于磁盘操作的常用命令
首先创建一些物理卷:
wangjun>aggrshow_space-haggr0===查看aggr空间的使用情况
Aggregate'aggr0'
TotalspaceWAFLreserveSnapreserveUsablespaceBSRNVLOGA-SIS
300MB30MB13MB256MB0KB0KB
Spaceallocatedtovolumesintheaggregate
VolumeAllocatedUsedGuarantee
vol0243MB71MBvolume
AggregateAllocatedUsedAvail
Totalspace243MB71MB13MB
Snapreserve13MB0KB13MB
WAFLreserve30MB872KB29MB
wangjun>aggrshow_space-haggr1
Aggregate'aggr1'
TotalspaceWAFLreserveSnapreserveUsablespaceBSRNVLOGA-SIS
6000MB600MB(保留了10%)270MB5130MB0KB0KB
Novolume'scontainedintheaggregate
AggregateAllocatedUsedAvail
Totalspace0KB0KB5129MB=可用是5.2个G
Snapreserve270MB0KB270MB
WAFLreserve600MB160KB599MB
wangjun>volstatus-r
Aggregateaggr1(online,raid_dp)(zonedchecksums)==可以看见aggr1包含两个raid组每组是5块硬盘
Plex/aggr1/plex0(online,normal,active)
RAIDgroup/aggr1/plex0/rg0(normal)
RAIDDiskDeviceHASHELFBAYCHANPoolTypeRPMUsed(MB/blks)Phys(MB/blks)
-------------------------------------------------------------------------
dparityv4.32v420FC:
B-FCALN/A1020/20899841027/2104448
parityv4.48v430FC:
B-FCALN/A1020/20899841027/2104448校验盘
datav4.19v413FC:
B-FCALN/A1020/20899841027/2104448
datav4.33v421FC:
B-FCALN/A1020/20899841027/2104448
datav4.20v414FC:
B-FCALN/A1020/20899841027/2104448
RAIDgroup/aggr1/plex0/rg1(normal)
RAIDDiskDeviceHASHELFBAYCHANPoolTypeRPMUsed(MB/blks)Phys(MB/blks)
-------------------------------------------------------------------------
dparityv4.21v415FC:
B-FCALN/A1020/20899841027/2104448
parityv4.34v422FC:
B-FCALN/A1020/20899841027/2104448
datav4.22v416FC:
B-FCALN/A1020/20899841027/2104448
datav4.35v423FC:
B-FCALN/A1020/20899841027/2104448
datav4.24v418FC:
B-FCALN/A1020/20899841027/2104448
wangjun>aggrcreateaggr2-dv4.25v4.26v4.27==指定哪些盘组成了aggr(物理卷)
wangjun>aggrcreateaggr33====这个命令指定3块盘是一个raid组的创建一个aggr
aggroptionsaggr3raidsize4====这个命令定义随后加入aggr3的盘,4块盘组成一个raid组,但不影响前面那4块盘的raid组。
wangjun>aggraddaggr34
通过标记一块磁盘fail来显示换盘的过程:
wangjun>diskfailv4.33==将v4.33这块盘标记为失败,则会有spare盘开始拷贝过来
***Youareabouttoprefailthefollowingfilesystemdisk,***
***whichwilleventuallyresultinitbeingfailed***
Disk/aggr1/plex0/rg0/v4.33
RAIDDiskDeviceHASHELFBAYCHANPoolTypeRPMUsed(MB/blks)Phys(MB/blks)
-------------------------------------------------------------------------
datav4.33v421FC:
B-FCALN/A1020/20899841027/2104448
***
Reallyprefaildiskv4.33?
y
diskfail:
Thefollowingdiskwasprefailed:
v4.33
Diskv4.33hasbeenprefailed.Itscontentswillbecopiedtoa
replacementdisk,andtheprefaileddiskwillbefailedout.
消息提示开始向ID号最小的V4.41开始拷贝数据
wangjun>MonDec1408:
45:
46GMT[raid.rg.diskcopy.start:
notice]:
/aggr1/plex0/rg0:
startingdiskcopyfromv4.33tov4.41
wangjun>aggrstatusaggr1–r==看这个物理卷信息,注意绿色加重的两行,正在向spare盘拷贝数据
Aggregateaggr1(online,raid_dp)(zonedchecksums)
Plex/aggr1/plex0(online,normal,active)
RAIDgroup/aggr1/