现在的服务器,RAID 控制器的功能越来越灵活。热转RAID模式这个功能大约是在2015年时开始出现的。
笔者:国际认证信息系统审计师、软考系统分析师
但从管理员角度看,整个操作过程其实还不是足够顺畅简单,因为这个过程涉及到很多方面。
如果可以停机,通过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的刷新按钮可以刷新进度。注意进度不会自动刷新,必须手工刷新。
本次例子计算出来要7小时,但实际上跑了12小时。因为机械硬盘越到最后读写速度越慢,这是因为硬盘是恒定角速度的原因,越内圈的读写速度越慢:
可以尝试通过控制器菜单去调整重建的速率(控制器的处理能力的分配比例),但实际运行时没有发现效果。记得以前做的测试也是没有效果。
下图是可调节的任务速率比例:
重建完成后,在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
最后检查,一切正常。
本站微信订阅号:
本页网址二维码: