服务器RAID 硬盘容量扩展 Extend - Dell

分类: 雕虫小技3199人阅读评论(5)收藏举报

dell服务器扩展raid5磁盘server

近来遇到了服务器磁盘空间不够的问题,短期内无法更换服务器硬件,只能采购更大容量的硬盘,所以研究了一下如何扩展服务器RAID 硬盘容量,而又不需要重新安装OS和应用,这样就不必影响对业务和用户。手头的都是Dell 的服务器,还有一些HP的老机器,分别作了一些研究和测试,最后在生产环境中成功完成,记录在此。

 

首先,有两个名词 Extend,Expand,中文翻译过来都差不多,但是用在RAID 容量扩展上,分别特指不同的的功能,Dell,HP的文档中都相同 (应该是RAID adapter 供应商的通用标准名词吧), 所以我特意将blog的标题中的名词用英文表示,以做区别。

1. Extend ----- 这是指已经做好的RAID中,不增加或删除硬盘,而是更换为更大容量的硬盘,然后将RAID扩展到所有可用磁盘空间,例如 下面例子中的 RAID1 的 两个 73G硬盘,先热插拔更换一个为更大的300G硬盘,等RAID 恢复完成 (只使用300G上的73G),再热插拔另一块。待这块RAID 恢复也完成的时候(两个300G 硬盘上各只使用了73G 做RAID1),扩展RAID1 到整个2*300G。

 

2. Expand ----- 这是向现有的RAID 中加入或者删除容量完全相同的硬盘,来调节RAID 磁盘空间的方法。 例如,向现有 RAID1 的 2*73 G中再加入两块73G硬盘。 当然最好是品牌,规格于RAID中原来的硬盘完全相同的,如果稍有差异也可以。 expand 有个特殊之处就是可以在expand的过程中改变RAID,例如 从原来的 RAID 1 2*73G 变成 RAID5 4*73G,或者 RAID10 4*73G。 如果原来是 RAID5 4*73G 也可以通过expand 拿两块硬盘出来变成 RAID1 2*73G.

 

----- 相比而言,因为硬盘的每个批次总是不同,不同厂商的硬盘同规格的也有不少差异,而且技术总是在不断进步,容量,速度一直在提升,而服务器不太可能频繁变更容量和RAID类型,所以相对而言,当你需要扩展RAID容量的时候,通常Extend 要比 Expand更加实用些。

----- Dell 的 PERC 系列RAID卡,原本就是 PowerEdge Expandable RAID controller, 看了Dell 的硬件说明书和论坛,都强调了 expand 功能,都没有提 Extend,个别文章干脆说不支持 extend。 在网上搜了一些资料,后来找到了Dell PERC 卡实现 extend的变通的方法

----- HP 的 SA 系列卡,看具体型号,有些支持expand,有些不支持expand (个人总结下来,貌似主板集成的RAID卡都不支持 expand,独立的RAID卡都支持 expand),而对 extend,无论SA那个型号都是支持的。

----- 对比 Dell PERC的 extend 实现 和 HP SA 的extend 实现,HP SA上不需要down机,全部可以在线完成。 Dell PERC 需要重启机器一次进入 RAID BIOS 设置。对服务器应用环境,这个重启可能有一些影响,尤其对生产服务器。

 

 

下面是 Dell 2950 (PERC 5i) 上实现 Extend 的方法,已经说过了,以 2 * 73G RAID 1 扩展到 2*300G RAID 1 为例,其它RAID 形式也是一样的。对于其它的 PERC 5e,6i,6e, H700,H800 操作流程都相同,因为它们只是硬件规格更加强大,增加了一些功能特性,原本的基本功能特性并未变化。

 

这是 Dell OpenManage server administrator 中的初始状态, 2 *73G 形成 一个 RAID1

 

 

1. 热插拔更换第一块硬盘,这个硬盘状态变成 rebuilding,在恢复RAID

 

2. 点击“full view“可以看见rebuilding的进度

 

3. Rebuild 完成,这个更换的硬盘变成online,但是实际使用的还是73G,而可用的RAID 磁盘空间是0

 

 

4. 下图是event log中的rebuild完成的相关记录

 

 

 

5. 同样方法更换第二块硬盘。注意这时,可用RAID磁盘空间变成了 211G。

 

 

6. 这时就可以开始Extend了。重启机器, Control-R 进入 PERC 配置界面

 

7. 删除原来的 VD

 

 

看见下面这个警告框,别理它,数据不会丢的,当然你的操作要严格按照下面的流程进行。点击ok,删除VD0

 

8. 然后新建一个VD,不要使用reset config

 

9. 在这新替换上去的两块300G硬盘上同样建立RAID1(这个不能改),选中两块硬盘,VD名称也要相同,ok。 如果是RAID5,RAID10之类,注意:选择几块硬盘,哪些硬盘来加入RAID 必须和之前被删除的VD0完全一样。

 

 

10. 这时会提示需要 initialize。这里要特别注意: initialize 就意味着磁盘上的数据全部被擦除 --- 这是真的擦除,不是警告。点击ok 后,initialize 会自动开始,没有取消的地方。但因为不是 fast initialize,而是标准的initialize 所以速度很慢。立即按ESC键取消initialize ,重启server(RAID 卡会rollback 已经做的那部分initialize,所以不会有任何数据丢失), 这个警告信息本身也说明了这一点: unless you are ...........

 

 

11. 进入OS,这时那多出来的211G磁盘空间就可以看见了

 

 

12. 使用diskpart来extend, 然后立即就可以使用了。 图例中是在一个 Win 2008 R2 server 进行的,实际上diskpart 的 Extend 在 Win 2000 SP3 和以上的 windows 上都可以工作。

 

需要注意的是,只有和可用空间相邻的那个volume 可以被extend,而且不能是系统分区,不能有引导文件,page file,dump file 等等,必须是纯数据卷。 当然,只要规划管理到位,一般OS分区是不会有磁盘空间问题的,通常都是数据增长过快导致的数据分区(卷)磁盘空间不够,所以这个extend其实还是很实用的