Chinaunix首页 | 论坛 | 博客
  • 博客访问: 217049
  • 博文数量: 47
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 482
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-06 15:35
个人简介

贫则见廉,富则见义,生则见爱,死则见哀。

文章分类

全部博文(47)

分类: LINUX

2016-01-10 02:57:02

     起因:因为有一台服务器用于数据的raid损坏了,由于服务器不能停机,所以需要使用命令方式来重建raid,为稳妥起见,先在一台相同的备机上验证了一下,记录方法如下,在博客上排版还真是一件痛苦的事情,太佩服那些排版漂亮的博主。

一、RAID主要属性如下:

—— RAID Level :从下拉列表中选择可选的RAID级别。如RAID0RAID5等。

—— Strip Size :条带化大小定义了RAID配置中每个硬盘的数据块的大小。建议选择默认大小。

—— Access Policy :选择数据访问的类型,主要包含:

1) RW 允许读写操作。这是默认值。

2) Read Only(只读), 允许只读操作。

3) Blocked(禁止):不允许访问。

—— Read Policy :指定虚拟驱动器的读取机制,主要包含:

1) Normal 此选项禁用预读机制。这是默认值。

2) Ahead 此选项启动预读机制。允许控制器提前顺序读取所需数据并且和其他数据一起存储在缓存中。这将提高顺序数据的读取速度,但是对读取随即数据的性能没有明显提升。

3) Adaptive:此选项启动可选预读机制。当两个或以上硬盘数据读取操作发生在顺序扇区中时,就启动预读机制(Ahead)。如果读取操作是随机的,控制器就会进入(Normal)默认模式。

——write Policy :指定虚拟驱动器的写操作机制,主要包含:

1) WBack Write Back(回写)模式。

2) WThru Write Through(直写)模式。这是默认设置。

3) Bad BBU:如果控制器的没有电池(BBU)或电池(BBU)故障,但仍想使用回写模式(WBack),则选用此选项。如果不选用此选项,当控制器检测到没有电池(BBU)或电池(BBU)损坏时,将自动切换至直写模式(WThru)。

—— IO Policy :此选项允许读取一个特定的虚拟驱动器(Virtual disk)。不影响预读(read ahead)缓存。

1) Direct :该模式下读取的数据不在缓存中缓冲。而且直接从缓存传输的主机。如果相同的数据被再次读取,则直接从缓存读取。这是默认值。

2) Cached 该模式下,所有读取的数据都要在缓存中缓冲。

—— Disk Cache Policy :指定驱动器缓存的机制。

1) Enable :启动硬盘驱动器的缓存。

2) Disable :关闭硬盘驱动器的缓存。这是默认值。

3) Unchanged :保持现有的驱动器缓存机制不做改变。

—— Disable BGI :指定后台初始化(Background initialization)状态:

1) No :保持后台初始化启动。这是指新的配置设定会在后台进行初始化并且此时可以使用WebBIOS进行其他的设置。这是默认值。

2) Yes :这项表示禁用后台初始化(Background initialization)。

—— Select Size :指定虚拟驱动器(Virtual disk)的大小,以MB为单位。通常,这个值是该磁盘组RAID级别的最大容量。

二、查看RAID信息

# /opt/MegaRAID/MegaCli/MegaCli64  -LdInfo -Lall -aALL 

Adapter 0 -- Virtual Drive Information:

Virtual Drive: 0 (Target Id: 0)

Name                :

RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0

Size                : 558.406 GB

Sector Size         : 512

Is VD emulated      : No

Mirror Data         : 558.406 GB

State               : Optimal

Strip Size          : 256 KB

Number Of Drives    : 2

Span Depth          : 1

Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Default Access Policy: Read/Write

Current Access Policy: Read/Write

Disk Cache Policy   : Enabled

Encryption Type     : None

Bad Blocks Exist: No

PI type: No PI

Is VD Cached: No

Virtual Drive: 1 (Target Id: 1)

Name                :

RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3

Size                : 9.815 TB

Sector Size         : 512

Is VD emulated      : No

Parity Size         : 1.089 TB

State               : Optimal

Strip Size          : 1.0 MB

Number Of Drives per span:10

Span Depth          : 2

Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Default Access Policy: Read/Write

Current Access Policy: Read/Write

Disk Cache Policy   : Enabled

Encryption Type     : None

Bad Blocks Exist: No

PI type: No PI

Is VD Cached: No

此命令可以看到有多少个raid组,如果后续需要删除指定的RAID时需要用到,其中

Target Idn”,n即为第nRAID ,本例中我要删除 ID 1raid

三、删除raid 50

#/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdDel -L1 -a0

删除命令中的L1,就是“Target Id1”,a0指第一个raid卡设备“Adapter 0”。

删除后,如图可见group1已经被删除。




四、命令行重建
raid

1、查看磁盘的Enclosure Device ID

# /opt/MegaRAID/MegaCli/MegaCli64  -pdlist -a0 |more


2、创建RAID 50磁盘组。

其中20:2中的20 就是Enclosure Device ID 2Slot Number

#/opt/MegaRAID/MegaCli/MegaCli64 -CfgSpanAdd -r50 -Array0[20:2,20:3,20:4,20:5,20:6,20:7,20:8,20:9,20:10,20:11] -Array1[20:12,20:13,20:14,20:15,20:16,20:17,20:18,20:19,20:20,20:21] -WB -RA -Cached -CachedBadBBU –strpsz1024  -a0

命令执行成功后提示:

3、发现问题:

Disk Cache Policy: Disk's Default 磁盘缓存策略为磁盘默认。

原来使用webraid做的raid50 的磁盘策略是:Disk Cache Policy   : Enabled

Adapter 0 -- Virtual Drive Information:

Is VD Cached: No

Virtual Drive: 1 (Target Id: 1)

Name                :

RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3

Size                : 9.815 TB

Sector Size         : 512

Is VD emulated      : No

Parity Size         : 1.089 TB

State               : Optimal

Strip Size          : 1.0 MB

Number Of Drives per span:10

Span Depth          : 2

Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Default Access Policy: Read/Write

Current Access Policy: Read/Write

Disk Cache Policy   : Disk's Default

Encryption Type     : None

Bad Blocks Exist: No

PI type: No PI

Is VD Cached: No

Exit Code: 0x00

在命令中增加参数-Cache:

#/opt/MegaRAID/MegaCli/MegaCli64 -CfgSpanAdd -r50 -Array0[20:2,20:3,20:4,20:5,20:6,20:7,20:8,20:9,20:10,20:11] -Array1[20:12,20:13,20:14,20:15,20:16,20:17,20:18,20:19,20:20,20:21] -WB -RA -Cached -Cache -CachedBadBBU –strpsz512  -a0

 提示,原来是Cache 放的位置不对,不能放在-CachedBadBBU –strpsz512这两个参数之前,所以会报以下错误。

命令修改为:

#/opt/MegaRAID/MegaCli/MegaCli64 -CfgSpanAdd -r50 -Array0[20:2,20:3,20:4,20:5,20:6,20:7,20:8,20:9,20:10,20:11] -Array1[20:12,20:13,20:14,20:15,20:16,20:17,20:18,20:19,20:20,20:21] -WB -RA -Cached -CachedBadBBU –strpsz1024  -Cache -a0

Raid50是做好了,但是报以下错误,看来cache参数还不是Disk Cache Policy


其他参数一一试过都没有用。

继续啃帮助发现此命令:设置磁盘缓存

# /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -EnDskCache -L1 -a0

再次查看,OK了。

Virtual Drive: 1 (Target Id: 1)

Name                :

RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3

Size                : 9.815 TB

Sector Size         : 512

Is VD emulated      : No

Parity Size         : 1.089 TB

State               : Optimal

Strip Size          : 1.0 MB

Number Of Drives per span:10

Span Depth          : 2

Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU

Default Access Policy: Read/Write

Current Access Policy: Read/Write

Disk Cache Policy   : Enabled

Encryption Type     : None

Bad Blocks Exist: No

PI type: No PI

Is VD Cached: No


五、命令总结:

1、查看磁盘的Enclosure Device ID

# /opt/MegaRAID/MegaCli/MegaCli64  -pdlist -a0 |more

2、删除raid 50

#/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdDel -L1 -a0

3、创建RAID 50

#/opt/MegaRAID/MegaCli/MegaCli64 -CfgSpanAdd -r50 -Array0[20:2,20:3,20:4,20:5,20:6,20:7,20:8,20:9,20:10,20:11] -Array1[20:12,20:13,20:14,20:15,20:16,20:17,20:18,20:19,20:20,20:21] -WB -RA -Cached -CachedBadBBU –strpsz1024  -a0

4、设置磁盘缓存策略为允许

# /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -EnDskCache -L1 -a0

阅读(3608) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~