超实用,物理服务器RAID扩容详解

服务器RAID卡,也称阵列卡,用于将多块物理硬盘组建成逻辑的卷,RAID卡是一个硬件,上面通常会配置Cache和电池,用于提升RAID性能和保护在断电情况下避免未落盘的数据丢失。

配置RAID卡,通常有二种方式,第一种是在服务器启动的时候进入RAID卡图形配置界面;第二种是通过服务器远程控制卡。

对RAID的一些普通操作,使用图形和web,比如新建raid,删除raid,添加热备盘,清除foreign信息,但是RAID扩容的操作,都做不了。那么这时就需要通过系统内部经常配置,本篇将进行详细的介绍。

本手册使用场景与限制:

仅适用于Dell的MegaRaid型号的RAID。

服务器操作系统为CentOS6 或以上

添加硬盘并动态扩容空间

通常的物理服务器会有多块硬盘,最常见的如8个,12个,16个盘位的服务器。最好的情况当然是我们在采购和业务上线的时候就按需求采购合适服务器,配满硬盘。但是,在实际的场景中,我们的规划没有做的那么好,这也就出现了标题所指的问题,当一台在运行的服务器硬盘容量不够了,但是还有空的硬盘槽位,那这个时候应该怎么办呢?业务不能停,数据没地方移,怎么办?

加盘,在线扩容,这是最好的办法。能做到吗?

目前来看,不行。

那有退一步的方案吗?停一下业务,实现扩容的方案?

这个可以有,继续往下看吧。

在一台有空余硬盘插槽的物理服务器上,新加两块硬盘,然后再将新添加的这部分硬盘容量添加到一个现有的RAID中,并且将系统分区空间扩容。

注意:操作过程,需要服务器重启一次。

操作方法:

在系统内部使用MegaCli工具直接操作硬盘和修改raid卡配置。

操作步骤:

1. 服务器中添加硬盘,开机Ctrl+R 进入RAID卡配置界面,如图1-1,配置了两个RAID,一个RAID1容量111.250G,一个RAID10容量4.364T

图1-1 RAID卡配置界面

2. 查看新加的硬盘是否有Foreign信息,如图1-2,在Foreign View标签下,看到有两条正常的Disk Group信息,一条Disk Group:2 Raid10(Foreign)信息,这条信表示目前接在Raid卡上的硬盘中所包含的RAID信息与RAID卡上存储的RAID信息不一致,需要做同步,同步的方式有两种,Import和Clear,如图1-3

图1-2 Foreign View

图1-3 RAID信息同步方式Import或者Clear

3. Import表示将硬盘中的RAID信息同步到RAID卡上,Clear表示将硬盘中的RAID信息清除掉。如果是更换备机的场景,需要将硬盘中的RAID信息Import到RAID卡中。此场景,是要讲新添加的硬盘,加到现有的RAID组中,所以需要Clear,硬盘中的Foreign信息。

4. 清除之后,再RAID开配置页面,Foreign View标签就会消失,如图1-4,此时出现了3块没有配置的物理磁盘,这3块就是我们新加的硬盘。

图1-4 清除Foreign信息之后的状态

5. 在RAID卡配置界面无法完成在现有RAID中添加新硬盘的功能,所以只能在系统内部通过MagaCli工具来做接下来的操作。图1-4,界面,按esc,保存退出,重启服务器进入系统。

6. 在系统内安装Megacli工具

注意:

以上1-5步执行的操作就是清除硬盘中的Foreign信息,通过Megacli也同样可以做

[root@kvmhost ~]# MegaCli64 -PDlist -aALL | grep "Foreign State"

查看硬盘的Foreign信息,不是None的表示存在Foreign信息

Foreign State: None

Foreign State: None

Foreign State: Foreign

Foreign State: Foreign

Foreign State: Foreign //三个硬盘都有foreign信息

[root@kvmhost ~]# MegaCli64 -CfgForeign -Scan -a0 // 扫描RAID上硬盘的Foreign信息

There are 3 foreign configuration(s) on controller 0.

Exit Code: 0x00

[root@kvmhost ~]# MegaCli64 -CfgForeign -Clear -a0 //清空Foreign信息

Foreign configuration 0 is cleared on controller 0.

Foreign configuration 1 is cleared on controller 0.

Foreign configuration 2 is cleared on controller 0.

Exit Code: 0x00

[root@kvmhost ~]# MegaCli64 -PDlist -aALL | grep "Foreign State"

Foreign State: None

Foreign State: None

7. 查看当前服务器上的硬盘数量

8. 查看当前服务器上的逻辑卷个数

9. 查看两个逻辑卷的信息

10. 查看每个逻辑卷,包含的具体硬盘槽位信息

11. 查看RAID卡上所有的硬盘,及其槽位信息,并与上面已经被现有逻辑卷使用的槽位,找出空的硬盘所在的槽位

12. 将第10,11槽位的硬盘添加到第二个逻辑卷中,也就是sas那个卷

13. 确认步骤一,查看第二个逻辑卷当前的信息

14. 确认步骤二,查看硬盘的状态信息

15. 待重构完毕,重启系统之后,再次查看逻辑卷的大小

16. 重启服务器,查看硬盘空间

17. 查看当前系统的分区,分为两种情况

a) 如果系统使用了LVM

需要将多出的空间使用parted创建一个新的分区,再将分区创建为pv,添加到vg,再拉伸lv

b) 如果系统直接将sdb格式化挂载使用

18. 上面两个情况,都可以实现分区拉伸,不过可以发现,非lvm的模式更加简单。

作者介绍:

杨俊俊,新钛云服运维架构师,十年运维经验,曾任盛大游戏资深云工程师,前隆科技系统运维主管。《深度实践KVM》,《Linux运维最佳实践》作者。精通KVM,VMWare,Docker等虚拟化相关技术。在基础架构、虚拟化和自动化运维方面具有丰富的实战经验,主导实施过上万台服务器上云迁移。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180912A1YZVE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券