服务器热加硬盘、热转RAID模式,配合LINUX卷操作实现不重启服务器完成扩容

作者:Sender Su  来源:原创内容  发布日期:2020-02-27  最后修改日期:2020-02-28

  现在的服务器,RAID 控制器的功能越来越灵活。热转RAID模式这个功能大约是在2015年时开始出现的。

article banner

笔者:国际认证信息系统审计师、软考系统分析师

  但从管理员角度看,整个操作过程其实还不是足够顺畅简单,因为这个过程涉及到很多方面。

  如果可以停机,通过RAID控制器的嵌入式管理界面(开机时根据提示按CTRL+S 进入的界面)进行操作是最可靠的操作方式。但这就不是热处理了,而是冷处理,需要停机。

  所以,有必要尝试一下,能否全过程热处理。答案是成功的。

  本次热处理服务器品牌型号是DELL POWEREDGE R730,带外(out-of-band)管理器IDRAC版本是8。

  一、安装和检查物理硬盘

  首先是安装新购置的物理盘PD(Physical Disk)。增购硬盘的大前提是:

(1)和原有的硬盘参数一致(转速、容量等)

(2)最好还是买厂家认证硬盘,虽然DELL比较宽容

  只有虚拟盘VD(Virtual Disk)和PD的关系比较简单时才能执行这样的扩容过程,否则不行。比如:

(1) 多个PD组成1个VD:可以

(2) 多个PD组成多个VD:不可以

  物理盘安装到位后,可以登录进入iDRAC界面检查存储信息,可见如下:

  情况是原有4个硬盘,新增4个硬盘。

  点开“物理磁盘”观察,发现新增的4个硬盘之前是某个RAID的组成部分,所以“状况”写着“外来”:

  外来配置需要清除。于是转到“控制器”这边处理这个外来RAID配置:

  点击“清除”按钮,确认清除外来配置(这个操作也可以在后面的热处理过程中进行而不是在这里处理,本文顺便描述一下iDRAC存储管理界面操作):

  清除过程属于后台作业:

  可以检查作业进度,耗时应在1~2分钟左右:

  期间可能产生子作业:

  作业完成:

  可以再回去“控制器”页面检查情况,此时报告没有外部配置:

  二、转换RAID模式

  如果是在嵌入的RAID控制固件中操作,则相关功能应在“虚拟磁盘/VD”下,但iDRAC 8尚未集成这个功能。在下图中可以看到没有转换RAID的选项:

  这里先记录一下我们这次转换的目标结果(参照另一台服务器的情况):要建立RAID 10模式、有热备(hot-spare)硬盘的虚拟磁盘(如下图)。

  注:磁条大小/strip size目前还是无法更改的,这个可惜。

  注意上图的“专用热备”和“全局热备”。

  下面请出另一个工具:MegaRAID Storage Manager,简称为MSM。这是RAID卡原厂的带内(in-band)管理工具。简单来说,可以在服务器上完整安装后登录服务器操作,也可以在服务器上安装代理端,然后在管理员终端安装控制台,远程操作。我用的是后者。操作时,登录MSM需要给出服务器操作系统的管理员账号和密码。

  登录后,转到Logical页面,在Drive Group上右键点击,选择Modify Drive Group:

  MSM会提醒你需要备份,并确认操作。说到底这个操作还是有危险性的,如果不能确认后备电源正常工作去防止意外掉电,则一定不能执行。

  即使现在的RAID控制器有专门的CACHE内存和内置电池,但都不要冒险。可以放心的是,正常关机后还是可以下次开机继续的。

  选择需要转换的目标RAID 模式,原来是RAID 6,转成RAID 1(多个盘时自动成为RAID 10)

  RAID模式转换可能需要增加硬盘,视乎具体如何转。一般地RAID6转RAID1刚好不需要加硬盘。因为RAID6至少4个硬盘,2个是冗余;转RAID 1时4个硬盘中也是2个冗余。

  不过这次我们还需要同步扩容,因此选择两个新增的硬盘。注意不要全选,因为另外两个留作热备。还有就是RAID1必须成对,所以也不可能选3个。

  最后MSM给出一个转换设置的汇总,确认无误后就可以点FINISH按钮。

  随后,转换过程也是后台任务,RAID控制器自己在处理,点MSM的刷新按钮可以刷新进度。注意进度不会自动刷新,必须手工刷新。

1578322474(1)

  本次例子计算出来要7小时,但实际上跑了12小时。因为机械硬盘越到最后读写速度越慢,这是因为硬盘是恒定角速度的原因,越内圈的读写速度越慢:

1578322501(1)

  可以尝试通过控制器菜单去调整重建的速率(控制器的处理能力的分配比例),但实际运行时没有发现效果。记得以前做的测试也是没有效果。

  下图是可调节的任务速率比例:

1578322695(1)

  重建完成后,在Logical页面,对剩下的两个硬盘设置全局热备和指定热备。其实如果整个服务器就只会创建1个VD的话可以只设1个热备。但如果是偏执狂,那么设两个也没啥问题。

  设指定热备时要选择对哪个VD进行设置。VD重建期间是不可选的:

  神奇地,指定全局热备没有给出提示说什么data protection的事情:

  Whatever,这本来就是个新硬盘,提示来干嘛呢。

  最后的结果:

  如前所述,strip size不可修改,这是个遗憾了。

  三、接下来,就是在操作系统上的扩容了。

  登录到LINUX服务器,检查XFS挂载点情况:

[root@db242 ~]# mount -l -t xfs
/dev/mapper/centos-root
on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/sda3
on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/centos-var
on /var type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

  用fdisk命令检查磁盘和分区

[root@db242 ~]# fdisk -l
磁盘 /dev/sda:1199.1 GB, 1199101181952 字节,2341994496 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5c07603d
设备 Boot Start End Blocks Id System
/dev/sda1 63 208844 104391 de Dell Utility
/dev/sda2 * 208896 4403199 2097152 c W95 FAT32 (LBA)
/dev/sda3 4403200 6500351 1048576 83 Linux
/dev/sda4 6500352 2341994495 1167747072 5 Extended
/dev/sda5 6502400 2341994495 1167746048 8e Linux LVM
磁盘 /dev/mapper/centos-root:88.0 GB, 88046829568 字节,171966464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:33.8 GB, 33755758592 字节,65929216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-var:1074.0 GB, 1073964122112 字节,2097586176 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节


  需要让操作系统重新加载已经完成扩容后的RAID VD容量信息:

[root@db242 ~]# ls /sys/class/scsi_device/
0:2:0:0 10:0:0:0
[root@db242~]# echo 1 > /sys/class/scsi_device/0\:2\:0\:0/device/rescan
[root@db242~]# echo 1 > /sys/class/scsi_device/10\:0\:0\:0/device/rescan
[root@db242~]# fdisk -l
磁盘 /dev/sda:1798.7 GB, 1798651772928 字节,3512991744 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5c07603d
设备 Boot  Start End Blocks Id System
/dev/sda1 63 208844 104391 de Dell Utility
/dev/sda2 * 208896 4403199 2097152 c W95 FAT32 (LBA)
/dev/sda3 4403200 6500351 1048576 83 Linux
/dev/sda4 6500352 2341994495 1167747072 5 Extended
/dev/sda5 6502400 2341994495 1167746048 8e Linux LVM
磁盘 /dev/mapper/centos-root:88.0 GB, 88046829568 字节,171966464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:33.8 GB, 33755758592 字节,65929216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-var:1074.0 GB, 1073964122112 字节,2097586176 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节

设备的容量出来了。但由于有扩展分区和逻辑盘。这下就不能简单地直接创建分区了,要先reize扩展分区。要通过parted命令进行:

[root@db242 ~]# parted
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: DELL PERC H730 Mini (scsi)
Disk /dev/sda: 1799GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
 1 32.3kB 107MB 107MB primary fat16 diag
 2 107MB 2254MB 2147MB primary fat32 启动, lba
 3 2254MB 3328MB 1074MB primary xfs
 4 3328MB 1199GB 1196GB extended
 5 3329MB 1199GB 1196GB logical lvm
(parted) resizepart 4 -1s
(parted) print
Model: DELL PERC H730 Mini (scsi)
Disk /dev/sda: 1799GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
 1 32.3kB 107MB 107MB primary fat16 diag
 2 107MB 2254MB 2147MB primary fat32 启动, lba
 3 2254MB 3328MB 1074MB primary xfs
 4 3328MB 1799GB 1795GB extended
 5 3329MB 1199GB 1196GB logical lvm
(parted) resizepart 5 100%
(parted) print
Model: DELL PERC H730 Mini (scsi)
Disk /dev/sda: 1799GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
 1 32.3kB 107MB 107MB primary fat16 diag
 2 107MB 2254MB 2147MB primary fat32 启动, lba
 3 2254MB 3328MB 1074MB primary xfs
 4 3328MB 1799GB 1795GB extended
 5 3329MB 1799GB 1795GB logical lvm
(parted) quit
[root@db242~]# partprobe -s
/dev/sda: msdos partitions 1 2 3 4 <5>
[root@db242~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 131M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/centos-root 82G 4.0G 79G 5% /
/dev/sda3 1014M 324M 691M 32% /boot
/dev/mapper/centos-var 1000G 160G 841G 16% /var
tmpfs 6.3G 0 6.3G 0% /run/user/1000
tmpfs 6.3G 0 6.3G 0% /run/user/0

  接下来转到LVM配置,首先检查PV情况:

[root@db242~]# pvs -a
PV VG Fmt Attr PSize PFree
/dev/sda1 --- 0 0
/dev/sda2 --- 0 0
/dev/sda3 --- 0 0
/dev/sda5 centos lvm2 a-- <1.09t 4.00m

  修改PV大小:

[root@db242~]# pvresize /dev/sda5
Physical volume "/dev/sda5" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@db242~]# pvs -a
PV VG Fmt Attr PSize PFree
/dev/sda1 --- 0 0
/dev/sda2 --- 0 0
/dev/sda3 --- 0 0
/dev/sda5 centos lvm2 a-- 1.63t <558.38g

  检查确认无误后,对LV进行RESIZE操作,注意参数比较特别:

[root@db242 ~]# lvresize -l +100%FREE
/dev/centos/var
Size of logical volume centos/var changed from <1000.21 GiB (256053
extents) to 1.52 TiB (398998 extents).
Logical volume centos/var successfully resized.

[root@db242~]# lvs -a
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 82.00g
swap centos -wi-ao---- <31.44g
var centos -wi-ao---- 1.52t

[root@db242~]# lvscan
ACTIVE '/dev/centos/root' [82.00 GiB] inherit
ACTIVE '/dev/centos/var' [1.52 TiB] inherit
ACTIVE '/dev/centos/swap' [<31.44 GiB] inherit

检查确认无误后,扩展XFS文件系统:

[root@db242~]# xfs_growfs /dev/centos/var
meta-data=/dev/mapper/centos-var isize=512 agcount=4, agsize=65549568 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data= bsize=4096 blocks=262198272, imaxpct=25
= sunit=0 swidth=0 blks
naming=version 2 bsize=4096 ascii-ci=0 ftype=1
log=internal bsize=4096 blocks=128026, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime=none extsz=4096 blocks=0, rtextents=0
data blocks changed from 262198272 to 408573952

[root@db242~]# xfs_info /dev/centos/var
meta-data=/dev/mapper/centos-var isize=512 agcount=7, agsize=65549568 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data= bsize=4096 blocks=408573952, imaxpct=25
= sunit=0 swidth=0 blks
naming=version 2 bsize=4096 ascii-ci=0 ftype=1
log=internal bsize=4096 blocks=128026, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime=none extsz=4096 blocks=0, rtextents=0

[root@db242~]# df -hP /var
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-var 1.6T 160G 1.4T 11% /var

最后检查,一切正常。

本栏目相关
  •  2013-11-01 又一次RAID 5阵列故障记录
  •  2015-09-20 本站服务器RAID 5阵列双硬盘失效挽救记录
  •  2020-02-27 服务器热加硬盘、热转RAID模式,配合LINUX卷操作实现不重启服务器完成扩容
  •  2023-01-26 Windows服务器折腾安装MegaRAID存储管理器17.05版
  •  2022-02-24 如何安装使用 Broadcom RAID卡命令行管理工具 StorCLI(或称PercCLI)?
  •  2023-02-26 能否用Windows服务器作为路由器?(基本配置篇)
  •  2022-10-17 安装 MegaRAID 存储管理器集中监控 DAS 存储状态
  •  2022-05-20 内网DNS服务实现公网域名在内网转换解析
  •  2022-05-13 2022年甲方系统管理运维人员必备远程访问工具
  • 本站微信订阅号:

    微信订阅号二维码

    本页网址二维码:

    本栏目热门内容
  • Acrobat虚拟PDF打印机执行打印时挂起,解决办法竟然...
  • LINKSYS交换机登录WEB界面显示不正确的解决方法
  • 又一次RAID 5阵列故障记录
  • 解决VMware vSphere ESXi 5.0 Update 1 中虚机不能...
  • 修改CentOS发行信息以绕过Dell服务器BIOS更新和DSET...
  • 解决虚拟化运行的 Windows Server 2003 标准版出现...
  • Windows Server 2008 重命名域和域控制器
  • Intel Nehalem CPU Errata 导致 VMWare ESXi(vSpher...
  • 一次很精神的电脑组装过程记录(但不是自己的电脑)...
  • 解决MySQL Cluster 备份总是失败,提示文件已存在的...
  • MegaCli安装及使用杂记
  • 解决WSUS显示客户端不全的问题
  • 解决 VMWare vSphere 6 客户端无法修改用户密码
  • 解决Windows Server 2008 R2域控制器显示无法连接到...
  • 本站服务器RAID 5阵列双硬盘失效挽救记录
  • 网站数据库从MySQL 5.0升级到5.6的记录
  • 解决MariaDB使用Percona XtraBackup增量备份出错
  • Linux 下的分区调整工具GParted实战
  • DELL PowerEdge 820 报CPU3 INTERNAL ERROR 的解决...
  • 修改arpwatch使通知邮件主题显示IP地址
  • 程序员漫画:如何用8种不同的编程语言去解救公主
  • 解决Samba WINS服务的错误解释问题
  • 解决很好用的多合一即时通信软件pidgin的崩溃问题
  • 使用 GParted 进行虚拟机硬盘分区调整操作
  • 解决Squid代理HTTP时在浏览器出现Content Encoding ...
  • 用Delphi编写使用到ADO的DLL的一些问题
  • 网站简单改版
  • 索尼系列手提电脑备份失败,出现700错误的解决办法
  • Dell R900服务器 BMC firmware incompatible with C...
  • 更多...