磁盘阵列操作,删除单盘 raid0 创建 raid1.
目的
以前的服务器为了获得更好的磁盘 io ,都是按单盘 raid0 做的阵列,不过后期维护经常发现,这种情况下,数据出了问题还是挺麻烦的,所以为提高数据可用性,我们要把原先的部分机器的单盘 raid0 删掉,做成 raid1 来提供数据的可用性。
删除
删除不麻烦,一条命令搞定,但是删除前得先确认好要删除的 vd 组,防止误删。
我们可以通过之前的那篇文,使用 lsscsi
命令来查看 vd 的 Target id 。
1
2
3
4
5
6
|
lsscsi
[0:2:0:0] disk DELL PERC H710P 3.13 /dev/sda
[0:2:1:0] disk DELL PERC H710P 3.13 /dev/sdf
[0:2:2:0] disk DELL PERC H710P 3.13 /dev/sdc
[0:2:3:0] disk DELL PERC H710P 3.13 /dev/sdb
[0:2:4:0] disk DELL PERC H710P 3.13 /dev/sde
|
比如我现在要删掉的是 sdc 和 sde ,那现在可以确定到他们的 Target id 分别为 2 和 4 。
删之前,我们先确认它的 slot id 是啥,为做 raid1 做准备,不然等下又要回头来查一遍。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# /opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL|grep -E "DISK GROUP|Slot Number|Virtual Drive:"
# 为了好看,我手动按组加了回车,实际输出是挤在一起的。
Number of DISK GROUPS: 5
DISK GROUP: 0
Virtual Drive: 0 (Target Id: 0)
Slot Number: 0
Slot Number: 1
DISK GROUP: 1
Virtual Drive: 2 (Target Id: 2)
Slot Number: 3
DISK GROUP: 2
Virtual Drive: 4 (Target Id: 4)
Slot Number: 5
DISK GROUP: 3
Virtual Drive: 1 (Target Id: 1)
Slot Number: 2
Slot Number: 6
DISK GROUP: 4
Virtual Drive: 3 (Target Id: 3)
Slot Number: 4
Slot Number: 7
# 用这个也可以查看磁盘属于哪个 disk group
# /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL
|
根据 2 和 4 的磁盘组 Target id ,我们可以看到 DISK GROUP: 1 和 2 下面的 raid0 单盘就是他们对应的盘, slot 数字,记下来,分别是 3, 5 。
那么删除的语句是:
1
2
3
4
5
6
7
|
# 先卸载磁盘的挂载
umount /sdc
umount /sde
# 执行删除
/opt/MegaRAID/MegaCli/MegaCli64 -cfglddel -L2 -force -a0
/opt/MegaRAID/MegaCli/MegaCli64 -cfglddel -L4 -force -a0
|
创建
创建就简单了,我们使用上面拿到的插槽 id 即可。
1
2
3
4
5
|
/opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -a0
# Enclosure Device ID: 32 我们可以看到 32 这个数字,后面要用到
# 32 是上面命令可以拿到的,3 和 5 是磁盘插槽 id
/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r1 [32:3,32:5] -a0
|
然后接下来就是 fdisk 和 mkfs 的操作了
总结
目前就用到这些基础命令,MegaCli64 还有很多很多命令,根本记不完,只有在用到的时候才会去查阅相关资料,不然大脑完全不够用。