一种Linux下硬件RAID管理方法

文档序号:9489108阅读:2091来源:国知局
一种Linux下硬件RAID管理方法
【技术领域】
[0001]本发明涉及RAID/Linux技术领域,尤其涉及一种Linux下硬件RAID管理方法。
【背景技术】
[0002]磁盘阵列(RedundantArrays of Independent Disks,RAID)是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。同时磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
[0003]传统RAID配置需要如下步骤:
开机按〈CtrlXH〉进入到LSI阵列卡的图形界面 > 进入到阵列卡的WEBB10S界面>进行 RAID 的设置 > 选择New configurat1n > Manual configurat1n>Redundancy whenpossible〉选择磁盘并Add To Array>Accept DG>Next>建立的RAID级别(包括条带及写策略)>Accept> Yes>rebeoot
上述步骤不仅繁琐,而且容易出错,耗时耗力不能保证机器完整正确设置。

【发明内容】

[0004]为了解决以上问题,本文提出了一种Linux下硬件RAID管理方法,采用Megacli管理软件策略可以在Linux系统下便捷的管理维护RAID,效率大大的提升,适合大规模的机器部署,减少人工操作出错的概率。
[0005]本发明提出了一种Linux下硬件RAID管理方法.主要从三个方面进行RAID组建管理及维护:首先通过查看物理磁盘信息及客户需求提出RAID组建策略,可以根据用户资源如硬盘形态数量及缓冲等设置选项调优RAID,综合出最优RAID组建方案。其次,通过创建/删除RAID,可以创建包括RAID0/1/5/6/10等几种不同形态,其中RAID0为非冗余高性能存储方式,RAID1模式为数据同步备份容量减半存方式,同时可以指定热备盘等备用盘符便于后期重建,阵列创建完后,会有一个初始化同步块的过程,可直观观察并完成RAID组建;最后是磁盘信息查看及维护策略,包括磁盘使用占比及当发生掉盘后的重建及维护。
[0006]RAID组建策略通过查看所有物理磁盘信息 MegaCl1-PDList -aALL
Adapter #0 Enclosure Number: 1 Slot Number: 5 Device Id: 5 SequenceNumber: 2 Media Error Count: 0 Other Error Count: 0 Predictive FailureCount: 0 Last Predictive Failure Event Seq Number: 0 Raw Size: 140014MB[0x11177328 Sectors] Non Coerced Size: 139502MB [0x11077328 Sectors] CoercedSize: 139392MB [0x11040000 Sectors] Firmware state: Hotspare SAS Address (0):0x5000c50008e5cca9 SAS Address (1): 0x0 Inquiry Data: SEAGATE ST3146855SSS5273LN4Y1X0.....查看磁盘缓存策略
MegaCl1-LDGetProp -Cache -L0 -aO Adapter 0-VD 0: Cache Policy:WriteBack,ReadAheadNone, Direct or
MegaCl1-LDGetProp -Cache -L1-aO Adapter 0-VD 1: Cache Policy:WriteBack,ReadAheadNone, Direct or
MegaCl1-LDGetProp -Cache -LALL -aO Adapter 0-VD 0: Cache Policy:WriteBack,ReadAheadNone, Direct Adapter 0-VD 1: Cache Policy:WriteBack, ReadAheadNone,Direct or
MegaCl1-LDGetProp -Cache -LALL -aALL Adapter 0-VD 0: CachePol icy:WriteBack, ReadAheadNone, Direct Adapter 0-VD 1: CachePolicy:WriteBack, ReadAheadNone, Direct or
MegaCl1-LDGetProp -DskCache -LALL -aALL Adapter 0-VD 0: Disk Write Cache:Disk’s Default Adapter 0-VD 1: Disk Write Cache: Disk’s Default设置磁盘缓存策略
磁盘缓存设置包括 WT (Write through) /WB (Write back) /NORA (No read ahead) /RA(Read ahead) /ADRA (Adaptive read ahead)/Cached/Direct 等。具体设置见下:
MegaCl1-LDSetProp WT|WB|NORA|RA|ADRA -L0 -aO orMegaCl1-LDSetProp -Cached|-Direct -L0 -aO orenable / disable disk cache
MegaCl1-LDSetProp -EnDskCache|-DisDskCache -L0 -aO创建RAID
在Redhat和CentOS等系统下执行rpm -1vh xxxx.rpm来安装在 Ubuntu 下应该执行 sudo apt-get install packagename 来安装
1)安装库文件:
#alien Lib—Utils_L 00-09.noarch, rpm#dpkg -1 lib-utils—l.00-10—all.deb
使用alien命令把Lib—Utils-....noarch, rpm转换为deb包,使用dpkg命令安装。
[0007]2)解压 MegaCL1:
#rpm2cp1 MegaCl1-8.02.16-1.1386.rpm | cp1 -1dmv
安装完成后会出现opt/目录,可以根据不同系统使用如下命令查看配置信息../opt/MegaRAID/MegaCli/MegaCl1-AdpAllInfo -aALL./opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo - aALL
3)创建阵列,以RAID5为例:由物理盘2,3,4构成,该阵列的热备盘是物理盘5 MegaCl1-CfgLdAdd _r5 [1:2,1:3,1:4] WB Direct -Hsp[1:5] _a0 创建阵列,不指定热备
MegaCl1-CfgLdAdd _r5 [1:2,1:3,1:4] WB Direct _a0删除阵列MegaCl1-CfgLdDel -L1-aO
4)在线添加磁盘
MegaCl1-LDRecon -Start -r5 -Add -PhysDrv[1:4] -L1-aO
5)查看阵列初始化信息
阵列创建完后,会有一个初始化同步块的过程,可以看看其进度。
[0008]MegaCl1-LDInit -ShowProg -LALL -aALL或者以动态可视化文字界面显示
MegaCl1-LDInit -ProgDsply -LALL -aALL查看阵列后台初始化进度MegaCl1-LDB1-ShowProg -LALL -aALL或者以动态可视化文字界面显示MegaCl1-LDB1-ProgDsply -LALL -aALL
6)创建全局热备,指定第5块盘作为全局热备:
MegaCl1-PDHSP -Set [-EnclAffinity] [-nonRevertible] -PhysDrv[1:5] -aO也可以指定为某个阵列的专用热备:
MegaCl1-PDHSP -Set [-Dedicated [-Array 1 ]] [-EnclAffinity][-nonRevertible] -PhysDrv[1:5] _a0
7)删除全局热备:
MegaCl1-PDHSP -Rmv -PhysDrv[1:5] -aO
8)将某块物理盘下线/上线:
MegaCl1-PDOffline -PhysDrv [1:4] -aOMegaCl1-PDOnline -PhysDrv [1:4] -aO
9)查看物理磁盘重建进度:
MegaCl1-PDRbld -ShowProg -PhysDrv [1:5] _a0或者以动态可视化文字界面显示:
MegaCl1-PDRbld -ProgDsply -PhysDrv [1:5] _a0RAID维护策略
当发生掉盘后,应该更换新的硬盘,更换硬盘后,在SAS卡2008下会默认为JB0D模式,或者硬盘本身带有foreign信息,此时应该执行命令把它转换为Unconfigure good模式并清除foreign信息再做Raid。
[0009]1)首先查找到该卡子的Divce ID,记录
#./MegaCli64 -PDlist -aALL | grep "Divce ID〃
Enclosure Device ID: 64,
记录该En Device ID,如果由两个卡子可以分别执行参数_a0和_al来取代-aALL ,查找看有没有 foreign 信息 #./MegaCli64 -PDlist -aALL | grep "Foreign State"得到如下信息:
Foreign State: None
2)在执行该命令前应该看下slot号是否按顺序排列
#./MegaCli64 -PDlist -aALL | grep 〃Slot〃,如果不按顺序则应找到该硬盘对应的Slot号,经查看如上的信息按0-7顺序排列该信息显示slotO-7的foreign信息,可以看到slotl的硬盘状态存在foreign
3)修改硬盘状态信息为unconfigruegood
把改 Divce ID 64 卡子的 slot 1 状态改为 unconfigrue good #./MegaCli64 -PDMakeGood -PhysDrv[64:1] -aO
Adapter: 0: EnclId—64 Slotld—l state changed to Unconfigured-Good.ExitCode: 0x00
4)清除foreign信息扫描该卡子上的硬盘看是否存在foreign信息./MegaCli64 -CfgForeign -Scan - aO
不存在就不用再执行下面的命令了。如果在aO上存在则执行,清除 #./MegaCli64 -CfgForeign -Clear [aO]
Foreign configurat1n 0 is cleared on controller 0.Exit Code: 0x00
5)重新做Raid
En DeviceID64 的 slotl 的单盘做 RaidO,则
#./MegaCli64 -CfgLdAdd-rO [64:1] WT Direct -aO
Adapter 0: Created VD 1
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
在该卡子上slot4和slot5制作Raidl
?/MegaCli64 -CfgLdAdd-rl [64:4,64:5] WT Direct _a0
Adapter 0: Created VD 4
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
当Raidl掉线后更换新硬盘,使用参数-PDMakeGood -PhysDrv [64:4]把硬盘配置为unconfigrue good后,拔出该盘,重新插入,则Raid卡会自动处于Rebuild状态^或者得到掉线的PD信息
#./MegaCli64 -Pdgetmissing _a0
Adapter 0 - Missing Physical drives Exit Code: 0x00替代该掉线硬盘
#MegaCli64 -PdReplaceMissing -physdrv[64:4] - array4, -rowO - aO 重启后将自动重建。
[0010]本发明的有益效果是。
[0011]在RACK生产实践中可大大降低因硬盘故障需而重建RAID人力及时间,不必耗时耗力在WEBB10S下通过手动一步一步操作建立,仅需Linux下几条命令可自动重建,大大提高了生产效率。
【具体实施方式】
[0012]下面对本发明的内容
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1