什么是 RAID

磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列。RAID 可以透过一个技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘装置; 而这个较大的磁盘功能可不止是储存而已,他还具有数据保护的功能。整个 RAID 由于选择的等级 (level) 不同,而使得整合后的磁盘具有不同的功能,基本常见的 level 有这几种


  • RAID-0(等量模式,stripe):效能最佳

这种模式如果使用相同型号与容量的磁盘来组成时,效果较佳。这种模式的 RAID 会将磁盘先切出 等量的区块 (名为 chunk,一般可设定 4K~1M 之间), 然后当一个文件要写入 RAID 时,该文件会 依据 chunk 的大小切割好,之后再依序放到各个磁盘里面去。由于每个磁盘会交错的存放数据, 因 此当你的数据要写入 RAID 时,数据会被等量的放置在各个磁盘上面。举例来说,你有两颗磁盘组 成 RAID-0 , 当你有 100MB 的数据要写入时,每个磁盘会各被分配到 50MB 的储存量。RAID-0 的示意图如下所示:

上图的意思是,在组成 RAID-0 时,每颗磁盘 (Disk A 与 Disk B) 都会先被区隔成为小区块 (chunk)。 当有数据要写入 RAID 时,资料会先被切割成符合小区块的大小,然后再依序一个一个的放置到不 同的磁盘去。 由于数据已经先被切割并且依序放置到不同的磁盘上面,因此每颗磁盘所负责的数据 量都降低了!照这样的情况来看, 越多颗磁盘组成的 RAID-0 效能会越好,因为每颗负责的资料量 就更低了! 这表示我的资料可以分散让多颗磁盘来储存,当然效能会变的更好啊!此外,磁盘总容 量也变大了! 因为每颗磁盘的容量最终会加总成为 RAID-0 的总容量。

只是使用此等级你必须要自行负担数据损毁的风险,由上图我们知道文件是被切割成为适合每颗磁盘 分区区块的大小, 然后再依序放置到各个磁盘中。想一想,如果某一颗磁盘损毁了,那么文件数据 将缺一块,此时这个文件就损毁了。 由于每个文件都是这样存放的,因此 RAID-0 只要有任何一颗 磁盘损毁,在 RAID 上面的所有数据都会遗失而无法读取。

另外,如果使用不同容量的磁盘来组成 RAID-0 时,由于数据是一直等量的依序放置到不同磁盘中, 当小容量磁盘的区块被用完了, 那么所有的数据都将被写入到最大的那颗磁盘去


  • RAID-1 (映像模式, mirror):完整备份

这种模式也是需要相同的磁盘容量的,最好是一模一样的磁盘啦!如果是不同容量的磁盘组成 RAID-1 时,那么总容量将以最小的那一颗磁盘为主!这种模式主要是『让同一份数据,完整的保存 在两颗磁盘上头』。举例来说,如果我有一个 100MB 的文件,且我仅有两颗磁盘组成 RAID-1 时, 那么这两颗磁盘将会同步写入 100MB 到他们的储存空间去。 因此,整体 RAID 的容量几乎少了

50%。由于两颗硬盘内容一模一样,好像镜子映照出来一样, 所以我们也称他为 mirror 模式。

如上图所示,一份数据传送到 RAID-1 之后会被分为两股,并分别写入到各个磁盘里头去。 由于同 一份数据会被分别写入到其他不同磁盘,因此如果要写入 100MB 时,数据传送到 I/O 总线后会被 复制多份到各个磁盘, 结果就是数据量感觉变大了!因此在大量写入 RAID-1 的情况下,写入的效 能可能会变的非常差。

如果你使用的是硬件 RAID (磁盘阵列卡) 时,磁盘阵列卡会主动的复制一份而不使用系统的 I/O 总线,效能方面则还可以。

由于两颗磁盘内的数据一模一样,所以任何一颗硬盘损毁时,你的资料还是可以完整的保留下来的! 所以我们可以说,RAID-1 最大的优点大概就在于数据的备份吧!不过由于磁盘容量有一半用在备份, 因此总容量会是全部磁盘容量的一半而已。虽然 RAID-1 的写入效能不佳,不过读取的效能则还可 以啦!这是因为数据有两份在不同的磁盘上面,如果多个 processes 在读取同一笔数据时, RAID 会 自行取得最佳的读取平衡。


  • RAID1+0,RAID0+1

RAID-0 的效能佳但是数据不安全,RAID-1 的数据安全但是效能不佳,那么能不能将这两者整合起 来设定 RAID 呢? 可以啊!那就是 RAID 1+0 或 RAID 0+1。所谓的 RAID 1+0 就是: (1)先让两 颗磁盘组成 RAID 1,并且这样的设定共有两组; (2)将这两组 RAID 1 再组成一组 RAID 0。这就 是 RAID 1+0 啰!反过来说,RAID 0+1 就是先组成 RAID-0 再组成 RAID-1 的意思。

如上图所示,Disk A + Disk B 组成第一组 RAID 1,Disk C + Disk D 组成第二组 RAID 1, 然后这 两组再整合成为一组 RAID 0。如果我有 100MB 的数据要写入,则由于 RAID 0 的关系, 两组 RAID 1 都会写入 50MB,又由于 RAID 1 的关系,因此每颗磁盘就会写入 50MB 而已。 如此一来 不论哪一组 RAID 1 的磁盘损毁,由于是 RAID 1 的映像数据,因此就不会有任何问题发生了!这 也是目前储存设备厂商最推荐的方法!


RAID 5: 效能与数据备份的均衡考虑

RAID-5 至少需要三颗以上的磁盘才能够组成这种类型的磁盘阵列。这种磁盘阵列的数据写入有点类 似 RAID-0 ,不过每个循环的写入过程中 (striping),在每颗磁盘还加入一个同位检查数据 (Parity) , 这个数据会记录其他磁盘的备份数据, 用于当有磁盘损毁时的救援。RAID-5 读写的情况有点像底 下这样:

如上图所示,每个循环写入时,都会有部分的同位检查码 (parity) 被记录起来,并且记录的同位检查 码每次都记录在不同的磁盘, 因此,任何一个磁盘损毁时都能够藉由其他磁盘的检查码来重建原本 磁盘内的数据喔!不过需要注意的是, 由于有同位检查码,因此 RAID 5 的总容量会是整体磁盘数量减一颗。以上图为例, 原本的 3 颗磁盘只会剩下 (3-1)=2 颗磁盘的容量。而且当损毁的磁盘数量 大于等于两颗时,这整组 RAID 5 的资料就损毁了。 因为 RAID 5 预设仅能支持一颗磁盘的损毁情况。

在读写效能的比较上,读取的效能还不赖!与 RAID-0 有的比!不过写的效能就不见得能够增加很 多! 这是因为要写入 RAID 5 的数据还得要经过计算同位检查码 (parity) 的关系。由于加上这个计 算的动作, 所以写入的效能与系统的硬件关系较大!尤其当使用软件磁盘阵列时,同位检查码是透 过 CPU 去计算而非专职的磁盘阵列卡, 因此效能方面还需要评估。

另外,由于 RAID 5 仅能支持一颗磁盘的损毁,因此近来还有发展出另外一种等级,就是 RAID 6 , 这个 RAID 6 则使用两颗磁盘的容量作为 parity 的储存,因此整体的磁盘容量就会少两颗,但是允 许出错的磁盘数量就可以达到两颗了! 也就是在 RAID 6 的情况下,同时两颗磁盘损毁时,数据还

是可以救回来!


  • SpareDisk:预备磁盘的功能:

当磁盘阵列的磁盘损毁时,就得要将坏掉的磁盘拔除,然后换一颗新的磁盘。换成新磁盘并且顺利启 动磁盘阵列后, 磁盘阵列就会开始主动的重建 (rebuild) 原本坏掉的那颗磁盘数据到新的磁盘上!然 后你磁盘阵列上面的数据就复原了! 这就是磁盘阵列的优点。不过,我们还是得要动手拔插硬盘, 除非你的系统有支持热拔插,否则通常得要关机才能这么做。

为了让系统可以实时的在坏掉硬盘时主动的重建,因此就需要预备磁盘 (spare disk) 的辅助。 所谓 的 spare disk 就是一颗或多颗没有包含在原本磁盘阵列等级中的磁盘,这颗磁盘平时并不会被磁盘阵 列所使用, 当磁盘阵列有任何磁盘损毁时,则这颗 spare disk 会被主动的拉进磁盘阵列中,并将坏 掉的那颗硬盘移出磁盘阵列! 然后立即重建数据系统。如此你的系统则可以永保安康啊!若你的磁 盘阵列有支持热拔插那就更完美了! 直接将坏掉的那颗磁盘拔除换一颗新的,再将那颗新的设定成 为 spare disk ,就完成了。


  • 磁盘阵列的优点

你的系统如果需要磁盘阵列的话,其实重点在于:

  1. 数据安全与可靠性:指的并非网络信息安全,而是当硬件 (指磁盘) 损毁时,数据是否还能够安全的救援或 使用之意;
  2. 读写效能:例如 RAID 0 可以加强读写效能,让你的系统 I/O 部分得以改善;
  3. 容量:可以让多颗磁盘组合起来,故单一文件系统可以有相当大的容量。

上面几个重要的 RAID 等级各有哪些优点吧!假设有 n 颗磁盘组成的 RAID 设定喔!

项目 RAID0 RAID1 RAID10 RAID5 RAID6
最少磁盘数 2 2 4 3 4
最大容错磁盘数 n-1 n/2 1 2
数据安全性 完全没有 最佳 最佳 比RAID5好
理论写入效能 n 1 n/2 <n-1 <n-2
理论读出效能 n n n <n-1 <n-2
可用容量 n 1 n/2 n-1 n-2
一般应用 强调效能但数据不重要的环境 资料与备份 服务器、云系统常用 资料与备份 资料与备份

注:因为 RAID5, RAID6 读写都需要经过 parity 的计算器制,因此读/写效能都不会刚好满足于使用 的磁盘数量喔!

software, hardware RAID

所谓的硬件磁盘阵列 (hardware RAID) 是透过磁盘阵列卡来达 成数组的目的。磁盘阵列卡上面有一块专门的芯片在处理 RAID 的任务,因此在效能方面会比较好。在很多任务 (例如 RAID 5 的同位检查码计算) 磁盘阵列并不会重复消耗原本系统的 I/O 总线,理 论上效能会较佳。此外目前一般的中高阶磁盘阵列卡都支持热拔插, 亦即在不关机的情况下抽换损 坏的磁盘,对于系统的复原与数据的可靠性方面非常的好用。

软件来仿 真磁盘阵列的功能, 这就是所谓的软件磁盘阵列 (software RAID)。软件磁盘阵列主要是透过软件来 仿真数组的任务, 因此会损耗较多的系统资源,比如说 CPU 的运算与 I/O 总线的资源等。不过目 前我们的个人计算机实在已经非常快速了, 因此以前的速度限制现在已经不存在!所以我们可以来 玩一玩软件磁盘阵列!

CentOS 提供的软件磁盘阵列为 mdadm 这套软件,这套软件会以 partition 或 disk 为磁盘的单位,也就是说,你不需要两颗以上的磁盘,只要有两个以上的分区槽 (partition) 就能够设计你的 磁盘阵列了。此外, mdadm 支持刚刚我们前面提到的 RAID0/RAID1/RAID5/spare disk 等! 而且 提供的管理机制还可以达到类似热拔插的功能,可以在线 (文件系统正常使用) 进行分区槽的抽换! 使用上也非常的方便呢!

另外,硬件磁盘阵列在 Linux 底下看起来就是一颗实际的大磁盘,因此硬件磁盘 阵列的装置文件名为 /dev/sd[a-p] ,因为使用到 SCSI 的模块之故。至于软件磁盘阵列则是系统仿真 的,因此使用的装置文件名是系统的装置文件, 文件名为 /dev/md0, /dev/md1...,

软件磁盘阵列的设定

建立 RAID 的语法像这样:

[root@study ~]# mdadm --detail /dev/md0
[root@study ~]# mdadm --create /dev/md[0-9] --auto=yes --level=[015] --chunk=NK \
> --raid-devices=N --spare-devices=N /dev/sdx /dev/hdx...
选项与参数:
--create :为建立 RAID 的选项;
--auto=yes :决定建立后面接的软件磁盘阵列装置,亦即 /dev/md0, /dev/md1...
--chunk=Nk :决定这个装置的 chunk 大小,也可以当成 stripe 大小,一般是 64K 或 512K。
--raid-devices=N :使用几个磁盘 (partition) 作为磁盘阵列的装置
--spare-devices=N :使用几个磁盘作为备用 (spare) 装置
--level=[015] :设定这组磁盘阵列的等级。支持很多,不过建议只要用 0, 1, 5 即可
--detail :后面所接的那个磁盘阵列装置的详细信息

上面的语法中,最后面会接许多的装置文件名,这些装置文件名可以是整颗磁盘,例如 /dev/sdb ,也 可以是分区槽,例如 /dev/sdb1 之类。不过,这些装置文件名的总数必须要等于 --raid-devices 与 --spare-devices 的个数总和才行!利用测试机来建置一个 RAID 5 的软件磁盘阵列给您瞧瞧! 底下是希望做成的 RAID 5 环境:

  • 利用 4 个 partition 组成 RAID 5;
  • 每个 partition 约为 1GB 大小,需确定每个 partition 一样大较佳;
  • 利用 1 个 partition 设定为 spare disk
  • chunk 设定为 256K 这么大即可!
  • 这个 spare disk 的大小与其他 RAID 所需 partition 一样大!
  • 将此 RAID 5 装置挂载到 /srv/raid 目录下

利用这部测试机的 /dev/vda 切出 5 个 1G 的 分区槽。实际的流程就不一一展示了,自己透过 gdisk /dev/vda 实作一下! 最终这部测试机的 结果应该如下所示:

[root@study ~]# gdisk -l /dev/vda
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
4 65026048 67123199 1024.0 MiB 8300 Linux filesystem
5 67123200 69220351 1024.0 MiB FD00 Linux RAID
6 69220352 71317503 1024.0 MiB FD00 Linux RAID
7 71317504 73414655 1024.0 MiB FD00 Linux RAID
8 73414656 75511807 1024.0 MiB FD00 Linux RAID
9 75511808 77608959 1024.0 MiB FD00 Linux RAID
# 上面特殊字体的部份就是我们需要的那 5 个 partition 啰!注意注意! [root@study ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 40G 0 disk
|-vda1 252:1 0 2M 0 part
|-vda2 252:2 0 1G 0 part /boot
|-vda3 252:3 0 30G 0 part
| |-centos-root 253:0 0 10G 0 lvm /
| |-centos-swap 253:1 0 1G 0 lvm [SWAP]
| `-centos-home 253:2 0 5G 0 lvm /home
|-vda4 252:4 0 1G 0 part /srv/myproject
|-vda5 252:5 0 1G 0 part
|-vda6 252:6 0 1G 0 part
|-vda7 252:7 0 1G 0 part
|-vda8 252:8 0 1G 0 part
`-vda9 252:9 0 1G 0 part

  • 以 mdadm 建置 RAID

透过 mdadm 来建立磁盘阵列先!

[root@study ~]# mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K \
> --raid-devices=4 --spare-devices=1 /dev/vda{5,6,7,8,9}
mdadm: /dev/vda5 appears to contain an ext2fs file system
size=1048576K mtime=Thu Jun 25 00:35:01 2015 # 某些时刻会出现这个东西!没关系的!
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
# 详细的参数说明请回去前面看看啰!这里我透过 {} 将重复的项目简化!
# 此外,因为鸟哥这个系统经常在建置测试的环境,因此系统可能会抓到之前的 filesystem
# 所以就会出现如上前两行的讯息!那没关系的!直接按下 y 即可删除旧系统 [root@study ~]# mdadm --detail /dev/md0
/dev/md0: # RAID 的装置文件名
Version : 1.2
Creation Time : Mon Jul 27 15:17:20 2015 # 建置 RAID 的时间
Raid Level : raid5 # 这就是 RAID5 等级!
Array Size : 3142656 (3.00 GiB 3.22 GB) # 整组 RAID 的可用容量
Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB) # 每颗磁盘(装置)的容量
Raid Devices : 4 # 组成 RAID 的磁盘数量
Total Devices : 5 # 包括 spare 的总磁盘数
Persistence : Superblock is persistent Update Time : Mon Jul 27 15:17:31 2015
State : clean # 目前这个磁盘阵列的使用状态
Active Devices : 4 # 启动(active)的装置数量
Working Devices : 5 # 目前使用于此数组的装置数
Failed Devices : 0 # 损坏的装置数
Spare Devices : 1 # 预备磁盘的数量 Layout : left-symmetric
Chunk Size : 256K # 就是 chunk 的小区块容量 Name : study.centos.vbird:0 (local to host study.centos.vbird)
UUID : 2256da5f:4870775e:cf2fe320:4dfabbc6
Events : 18 Number Major Minor RaidDevice State
0 252 5 0 active sync /dev/vda5
1 252 6 1 active sync /dev/vda6
2 252 7 2 active sync /dev/vda7
5 252 8 3 active sync /dev/vda8 4 252 9 - spare /dev/vda9
# 最后五行就是这五个装置目前的情况,包括四个 active sync 一个 spare !
# 至于 RaidDevice 指的则是此 RAID 内的磁盘顺序

除 了指令之外,你也可以查阅如下的文件来看看系统软件磁盘阵列的情况:

[root@study ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 vda8[5] vda9[4](S) vda7[2] vda6[1] vda5[0] <==第一行
3142656 blocks super 1.2 level 5, 256k chunk, algorithm 2 [4/4] [UUUU]
<==第二行 unused devices: <none>

上述的资料比较重要的在特别指出的第一行与第二行部分

  • 第一行部分:指出 md0 为 raid5 ,且使用了 vda8, vda7, vda6, vda5 等四颗磁盘装置。每个装置后面的中 括号 [] 内的数字为此磁盘在 RAID 中的顺序 (RaidDevice);至于 vda9 后面的 [S] 则代表 vda9 为 spare 之意。

  • 第二行:此磁盘阵列拥有 3142656 个 block(每个 block 单位为 1K),所以总容量约为 3GB, 使用 RAID 5 等级,写入磁盘的小区块 (chunk) 大小为 256K,使用 algorithm 2 磁盘阵列算法。 [m/n] 代表此数组需 要 m 个装置,且 n 个装置正常运作。因此本 md0 需要 4 个装置且这 4 个装置均正常运作。 后面的

    [UUUU] 代表的是四个所需的装置 (就是 [m/n] 里面的 m) 的启动情况,U 代表正常运作,若为 _ 则代 表不正常。


  • 格式化与挂载使用 RAID

接下来就是开始使用格式化工具啦!这部分就需要注意喔!因为涉及到 xfs 文件系统的优化!我们这里的参数为:

  • srtipe (chunk) 容量为 256K,所以 su=256k
  • 共有 4 颗组成 RAID5 ,因此容量少一颗,所以 sw=3 喔!
  • 由上面两项计算出数据宽度为: 256K*3=768k

所以整体来说,要优化这个 XFS 文件系统就变成这样:

[root@study ~]# mkfs.xfs -f -d su=256k,sw=3 -r extsize=768k /dev/md0
# 有趣吧!是 /dev/md0 做为装置被格式化呢 [root@study ~]# mkdir /srv/raid
[root@study ~]# mount /dev/md0 /srv/raid
[root@study ~]# df -Th /srv/raid
Filesystem Type Size Used Avail Use% Mounted on
/dev/md0 xfs 3.0G 33M 3.0G 2% /srv/raid
# 看吧!多了一个 /dev/md0 的装置,而且真的可以让你使用呢!还不赖!

仿真 RAID 错误的救援模式

首先来了解一下 mdadm 这方面的语法:

[root@study ~]# mdadm --manage /dev/md[0-9] [--add 装置] [--remove 装置] [--fail 装置]
选项与参数:
--add :会将后面的装置加入到这个 md 中!
--remove :会将后面的装置由这个 md 中移除
--fail :会将后面的装置设定成为出错的状态

  • 设定磁盘为错误 (fault)

首先,我们来处理一下,该如何让一个磁盘变成错误,然后让 spare disk 自动的开始重建系统呢?

# 0. 先复制一些东西到 /srv/raid 去,假设这个 RAID 已经在使用了
[root@study ~]# cp -a /etc /var/log /srv/raid
[root@study ~]# df -Th /srv/raid ; du -sm /srv/raid/*
Filesystem Type Size Used Avail Use% Mounted on
/dev/md0 xfs 3.0G 144M 2.9G 5% /srv/raid
28 /srv/raid/etc <==看吧!确实有资料在里面喔!
51 /srv/raid/log # 1. 假设 /dev/vda7 这个装置出错了!实际模拟的方式:
[root@study ~]# mdadm --manage /dev/md0 --fail /dev/vda7
mdadm: set /dev/vda7 faulty in /dev/md0 # 设定成为错误的装置啰!
/dev/md0:
.....(中间省略).....
Update Time : Mon Jul 27 15:32:50 2015
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 1 <==出错的磁盘有一个!
Spare Devices : 1
.....(中间省略)..... Number Major Minor RaidDevice State
0 252 5 0 active sync /dev/vda5
1 252 6 1 active sync /dev/vda6
4 252 9 2 spare rebuilding /dev/vda9
5 252 8 3 active sync /dev/vda8 2 252 7 - faulty /dev/vda7
# 看到没!这的动作要快做才会看到! /dev/vda9 启动了而 /dev/vda7 死掉了

因为你的 RAID 5 正在重建系统! 若你等待一段时间再输入后面的观察指令,则会看到如下的画面了

# 2. 已经藉由 spare disk 重建完毕的 RAID 5 情况
[root@study ~]# mdadm --detail /dev/md0
....(前面省略)....
Number Major Minor RaidDevice State
0 252 5 0 active sync /dev/vda5
1 252 6 1 active sync /dev/vda6
4 252 9 2 active sync /dev/vda9
5 252 8 3 active sync /dev/vda8 2 252 7 - faulty /dev/vda7

  • 将出错的磁盘移除并加入新磁盘

因为我们的系统那个 /dev/vda7 实际上没有坏掉啊!只是用来模拟而已啊!因此,如果有新的磁盘要 替换,其实替换的名称会一样啊! 也就是我们需要:

  1. 先从 /dev/md0 数组中移除 /dev/vda7 这颗『磁盘』
  2. 整个 Linux 系统关机,拔出 /dev/vda7 这颗『磁盘』,并安装上新的 /dev/vda7 『磁盘』,之后开机
  3. 将新的 /dev/vda7 放入 /dev/md0 数组当中!
# 3. 拔除『旧的』/dev/vda7 磁盘
[root@study ~]# mdadm --manage /dev/md0 --remove /dev/vda7
# 假设接下来你就进行了上面谈到的第 2, 3 个步骤,然后重新启动成功了! # 4. 安装『新的』/dev/vda7 磁盘
[root@study ~]# mdadm --manage /dev/md0 --add /dev/vda7
[root@study ~]# mdadm --detail /dev/md0
....(前面省略)....
Number Major Minor RaidDevice State
0 252 5 0 active sync /dev/vda5
1 252 6 1 active sync /dev/vda6
4 252 9 2 active sync /dev/vda9
5 252 8 3 active sync /dev/vda8 6 252 7 - spare /dev/vda7

开机自动启动 RAID 并自动挂载

新的 distribution 大多会自己搜寻 /dev/md[0-9] 然后在开机的时候给予设定好所需要的功能。不过还是建议你, 修改一下配置文件吧! software RAID 也是有配置文件的,这个配置文件在 /etc/mdadm.conf !这个配置文件内容很简单, 你只要知道 /dev/md0 的 UUID 就能够设定这个文件啦!这里仅介绍他最简单的语法:

[root@study ~]# mdadm --detail /dev/md0 | grep -i uuid
UUID : 2256da5f:4870775e:cf2fe320:4dfabbc6
# 后面那一串数据,就是这个装置向系统注册的 UUID 标识符! # 开始设定 mdadm.conf
[root@study ~]# vim /etc/mdadm.conf
ARRAY /dev/md0 UUID=2256da5f:4870775e:cf2fe320:4dfabbc6
# RAID 装置 标识符内容 # 开始设定开机自动挂载并测试
[root@study ~]# blkid /dev/md0
/dev/md0: UUID="494cb3e1-5659-4efc-873d-d0758baec523" TYPE="xfs" [root@study ~]# vim /etc/fstab
UUID=494cb3e1-5659-4efc-873d-d0758baec523 /srv/raid xfs defaults 0 0 [root@study ~]# umount /dev/md0; mount -a
[root@study ~]# df -Th /srv/raid
Filesystem Type Size Used Avail Use% Mounted on
/dev/md0 xfs 3.0G 111M 2.9G 4% /srv/raid
# 你得确定可以顺利挂载,并且没有发生任何错误!

关闭软件 RAID(重要!)

除非你未来就是要使用这颗 software RAID (/dev/md0),否则你势必要跟鸟哥一样,将这个 /dev/md0 关闭! 因为他毕竟是我们在这个测试机上面的练习装置啊!为什么要关掉他呢?因为这个 /dev/md0 其实还是使用到我们系统的磁盘分区槽, 在鸟哥的例子里面就是 /dev/vda{5,6,7,8,9},如果你只是将 /dev/md0 卸除,然后忘记将 RAID 关闭,结果就是....未来你在重新分区 /dev/vdaX 时可能会出现一些莫名的错误状况啦!所以才需要关闭 software RAID 的步骤!! 那如何关闭呢?也是简单到爆炸! (请注意,确认你的 /dev/md0 确实不要用且要关闭了才进行底下的玩意儿)

# 1. 先卸除且删除配置文件内与这个 /dev/md0 有关的设定:
[root@study ~]# umount /srv/raid
[root@study ~]# vim /etc/fstab
UUID=494cb3e1-5659-4efc-873d-d0758baec523 /srv/raid xfs defaults 0 0
# 将这一行删除掉!或者是批注掉也可以!

你可能会问,为啥上面会有数个 dd 的指令啊?干麻?这是因为 RAID 的相关数据其实也 会存一份在磁盘当中,因此,如果你只是将配置文件移除, 同时关闭了 RAID,但是分区槽并没有 重新规划过,那么重新启动过后,系统还是会将这颗磁盘阵列建立起来,只是名称可能会变成 /dev/md127 就是了! 因此,移除掉 Software RAID 时,上述的 dd 指令不要忘记!但是...千千万万 不要 dd 到错误的磁盘~

Linux学习-软件磁盘阵列 (Software RAID)的更多相关文章

  1. 软件磁盘阵列 (Software RAID)

    什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,容错式廉价磁盘阵列. RAID 可以通过一些技术(软件或硬件),将多个较 ...

  2. Linux学习-软件管理员简介

    Linux 界的两大主流: RPM 与 DPKG 目前在 Linux 界软件安装方式最常见的有两种,分别是: dpkg: 这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg ...

  3. linux 学习-软件的安装

    Linux软件的安装rpm -ivh安装软件全名 -i install 安装 -v verbose 显示详细信息 -h hash 显示进度 --nodeps 不检测依赖性(不推荐使用) rpm -U ...

  4. Linux学习之CentOS(十二)----磁盘管理之 认识ext文件系统(转)

    认识ext文件系统 硬盘组成与分割 文件系统特性 Linux 的 EXT2 文件系统(inode) 与目录树的关系 EXT2/EXT3 文件的存取与日志式文件系统的功能 Linux 文件系统的运行 挂 ...

  5. linux 学习15 16 启动管理,备份和恢复

    第十五讲 启动管理 . CentOS .x 启动管理 //此处指6.3 系统运行级别 .运行级别 运行级别 含 义 关机 单用户模式,可以想象为windows的安全模式,主要用于系统修复 //linu ...

  6. Linux学习之CentOS(二十八)--RAID原理基础及Linux下软件RAID配置

    一.RAID的原理基础 在 讲解RAID的原理基础之前,我们首先来了解一下传统磁盘的劣势.我们知道一台PC机种都会包含CPU.内存.主板.硬盘.网卡等硬件,影响计算机性能的 组建包括:CPU.主板总线 ...

  7. linux学习:【第3篇】远程连接及软件安装

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! linux学习:[第3篇]远程连接及软件安装 远程连接 xshell , xftp软件官网 : ...

  8. 软件磁盘阵列(RAID)

    RAID软件磁盘阵列 RAID 即廉价磁盘冗余阵列,其高可用性和可靠性适用于大规模环境中,相比正常使用,数据更需要被保护.RAID 是将多个磁盘整合的大磁盘,不仅具有存储功能,同时还有数据保护功能. ...

  9. Linux学习笔记之RAID笔记

    RAID: Redundant Arrays of Inexpensive Disks Independent Berkeley: A case for Redundent Arrays of Ine ...

随机推荐

  1. PHP函数生成随机数

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度,代码如下: <?p ...

  2. Spring Cloud 熔断器

    目录 Spring Cloud 熔断器 Hystrix ribbon中使用hystrix feign中使用hystrix Spring Cloud 熔断器 在微服务架构中,根据业务来拆分成一个个的服务 ...

  3. ORACLE行转列通用过程(转)

    1.使用视图 SQL code? 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 create or r ...

  4. vue使用uglifyjs-webpack-plugin后打包报错

    楼主最新对已做项目进行打包优化,配置了打包环境下去除console.log语句插件---使用uglifyjs-webpack-plugin具体代码如下 npm install uglifyjs-web ...

  5. ArcGIS Server 10.1发布GP服务

    ArcGIS Server 10.1发布GP服务 ArcGIS Server 10.1发布GP服务确实更简单了,只是刚使用不怎么习惯.ArcGIS Server 10.1发布GP服务需要先在ArcCa ...

  6. iOS Programming Autorotation, Popover Controllers, and Modal View Controllers

    iOS Programming Autorotation, Popover Controllers, and Modal View Controllers  自动旋转,Popover 控制器,Moda ...

  7. pc端常见布局---垂直居中布局 单元素定高

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. gzip, gunzip, zcat - 压缩或展开文件

    总揽 gzip [ -acdfhlLnNrtvV19 ] [-S 后缀] [ 文件名 ... ] gunzip [ -acfhlLnNrtvV ] [-S 后缀] [ 文件名 ... ] zcat [ ...

  9. 查询linux文件的MD5值

    Linux下查询文件的MD5值:md5sum xxx.iso.md5 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algor ...

  10. CPP-STL:vector的内存释放

    1. vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小.先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式 ...