linux系统4块硬盘做raid,一种Linux下硬件RAID管理方法

一种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]下面对本发明的内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值