第十四章 RAID 磁盘阵列的原理与搭建

本节所讲内容

14.1  RAID  概念-企业级 RAID  0.1.5. 10  的工作原理

14.2   RAID-0-1-5-10  搭建以及使用-删除RAID及注意事项

14.3   实战:企业中硬件RAID 5  的配置



RAID  有三个关键技术

镜像  提供了数据的安全性

chunk  条带 (块大小也可以说是条带的粒度) 他的存在就是为了提供I/O  提供了数据并发性

数据的校验,提供了数据的安全

Raid   特点











答:  先做阵列才装系统,一般服务器启动时,有显示进入配置Raid  的提示,比如:按下CTRL+L/H/M进入raid 界面



 互动:raid  需要3块硬盘,那么使用4块硬盘,可以做raid5  吗?

可以的

试验环境:新添加11块盘,每块磁盘的作用如下



14。2.2  创建RAID0 

试验环境:


[centos@xueshen65 ~]$ ls /dev/sd*
 

/dev/sda  /dev/sda3  /dev/sdd  /dev/sdg  /dev/sdj  /dev/sdm  /dev/sdp

/dev/sda1  /dev/sdb  /dev/sde  /dev/sdh  /dev/sdk  /dev/sdn  /dev/sdq

/dev/sda2  /dev/sdc  /dev/sdf  /dev/sdi  /dev/sdl  /dev/sdo

2  [centos@xueshen65 ~]$ mdadm -C -v/dev/md0 -l 0 -n 2/dev/sdb /dev/sdc

[root@xueshen65 ~]# mdadm -C -v /dev/md1 -l 0 -n 2 /dev/sdb /dev/sdc

mdadm: chunk size defaults to 512K

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md1 started.

3  root@xueshen65 ~]# mdadm -Ds

ARRAY /dev/md1 metadata=1.2 name=xueshen65.cn:1 UUID=1e525462:c5e9afed:3208fb52:c246f7c3

[root@xueshen65 ~]# mdadm -Dsv

ARRAY /dev/md1 level=raid0 num-devices=2 metadata=1.2 name=xueshen65.cn:1 UUID=1e525462:c5e9afed:3208fb52:c246f7c3

  devices=/dev/sdb,/dev/sdc

4  root@xueshen65 ~]# blkid /dev/md1

5   [root@xueshen65 ~]# mdadm -D /dev/md1

/dev/md1:

          Version : 1.2

    Creation Time : Fri Apr  3 15:01:54 2020

        Raid Level : raid0

        Array Size : 41908224 (39.97 GiB 42.91 GB)


6   root@xueshen65 ~]# mdadm -Dsv > /etc/mdadm.conf     生成配置文件

对创建的raid 0  进行文件创建并挂载

对md1  进行格式化

1  [root@xueshen65 ~]# mkfs.xfs /dev/md1

meta-data=/dev/md1              isize=512    agcount=16, agsize=654720 blks

        =                      sectsz=512  attr=2, projid32bit=1

        =                      crc=1        finobt=0, sparse=0

data

2  [root@xueshen65 ~]# mkdir /raid0

 3  [root@xueshen65 ~]# mount /dev/md1 /raid0/

[root@xueshen65 ~]# df -h

有40个G

[root@xueshen65 ~]# echo aaaa /raid0/a.txt

aaaa /raid0/a.txt

4  [root@xueshen65 ~]# blkid /dev/md1

/dev/md1: UUID="71df981c-eb64-42a1-b5b2-26285e9dc179" TYPE="xfs"

[root@xueshen65 ~]# ^C

[root@xueshen65 ~]# echo "UUID=71df981c-eb64-42a1-b5b2-26285e9dc179 /raid0 xfs defaults 0 0">> /etc/fstab

5  root    umount /raid0/

6   [root@xueshen65 ~]# mount -a

[root@xueshen65 ~]# ls /raid0/

[root@xueshen65 ~]# df -h

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda2        10G  5.2G  4.9G  52% /

devtmpfs        975M    0  975M    0% /dev

tmpfs          991M    0  991M    0% /dev/shm

tmpfs          991M  11M  980M    2% /run

tmpfs          991M    0  991M    0% /sys/fs/cgroup

/dev/sr0        4.3G  4.3G    0  100% /mnt

/dev/sda1      197M  142M  56M  72% /boot

tmpfs          199M  4.0K  199M    1% /run/user/42

tmpfs          199M  36K  199M    1% /run/user/1000

tmpfs          199M    0  199M    0% /run/user/0

/dev/md1        40G  33M  40G    1% /raid0

[root@xueshen65 ~]# umount /raid0/

[root@xueshen65 ~]# df -h

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda2        10G  5.2G  4.9G  52% /

devtmpfs        975M    0  975M    0% /dev

tmpfs          991M    0  991M    0% /dev/shm

tmpfs          991M  11M  980M    2% /run

tmpfs          991M    0  991M    0% /sys/fs/cgroup

/dev/sr0        4.3G  4.3G    0  100% /mnt

/dev/sda1      197M  142M  56M  72% /boot

tmpfs          199M  4.0K  199M    1% /run/user/42

tmpfs          199M  36K  199M    1% /run/user/1000

tmpfs          199M    0  199M    0% /run/user/0

[root@xueshen65 ~]# mount -a

[root@xueshen65 ~]# df -h

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda2        10G  5.2G  4.9G  52% /

devtmpfs        975M    0  975M    0% /dev

tmpfs          991M    0  991M    0% /dev/shm

tmpfs          991M  11M  980M    2% /run

tmpfs          991M    0  991M    0% /sys/fs/cgroup

/dev/sr0        4.3G  4.3G    0  100% /mnt

/dev/sda1      197M  142M  56M  72% /boot

tmpfs          199M  4.0K  199M    1% /run/user/42

tmpfs          199M  36K  199M    1% /run/user/1000

tmpfs          199M    0  199M    0% /run/user/0

/dev/md1        40G  33M  40G    1% /raid0

[root@xueshen65 ~]# cp /etc/passwd /raid0/a.txt

[root@xueshen65 ~]# umount /raid0/

[root@xueshen65 ~]# df -h

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda2        10G  5.2G  4.9G  52% /

devtmpfs        975M    0  975M    0% /dev

tmpfs          991M    0  991M    0% /dev/shm

tmpfs          991M  11M  980M    2% /run

tmpfs          991M    0  991M    0% /sys/fs/cgroup

/dev/sr0        4.3G  4.3G    0  100% /mnt

/dev/sda1      197M  142M  56M  72% /boot

tmpfs          199M  4.0K  199M    1% /run/user/42

tmpfs          199M  36K  199M    1% /run/user/1000

tmpfs          199M    0  199M    0% /run/user/0

[root@xueshen65 ~]# mount -a

[root@xueshen65 ~]# df -h

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda2        10G  5.2G  4.9G  52% /

devtmpfs        975M    0  975M    0% /dev

tmpfs          991M    0  991M    0% /dev/shm

tmpfs          991M  11M  980M    2% /run

tmpfs          991M    0  991M    0% /sys/fs/cgroup

/dev/sr0        4.3G  4.3G    0  100% /mnt

/dev/sda1      197M  142M  56M  72% /boot

tmpfs          199M  4.0K  199M    1% /run/user/42

tmpfs          199M  36K  199M    1% /run/user/1000

tmpfs          199M    0  199M    0% /run/user/0

/dev/md1        40G  33M  40G    1% /raid0

[root@xueshen65 ~]# ls /raid0/

a.txt


1) 创建RAID1

2) 添加1个热备盘

3)  模拟磁盘故障,自动顶替故障盘

4) 从raid1 中移除故障盘

1  mdadm  -C -v   /dev/md1 -l 1 -n 2 -x 1 /dev/sd[d,e,f]  

  -C  创建 

-v   显示详细信息

-n  几块磁盘

-x  热备份

2    [root@xueshen65 ~]# mdadm -Dsv > /etc/mdadm.conf

[root@xueshen65 ~]# mdadm -D /dev/md11

/dev/md11:

          Version : 1.2

    Creation Time : Fri Apr  3 15:58:19 2020

        Raid Level : raid1

        Array Size : 20954112 (19.98 GiB 21.46 GB)

    Used Dev Size : 20954112 (19.98 GiB 21.46 GB)

   格式化   : mkfs.xfs /dev/md11

[root@xueshen65 ~]# mkdir /raid11

5 ~]# mount /dev/md11 /raid11

[root@xueshen65 ~]# cp /etc/passwd /raid11/

[root@xueshen65 ~]# cp -r /boot/grub /raid11/

下面,模拟TAID1 中数据盘/dev/sde  出现故障,观察/dev/sdf 备用盘能否自动顶替故障盘

1[root@xueshen65 ~]# mdadm /dev/md2 -f /dev/sde

2    mdadm -D /dev/md11

3  查看数据有没有丢

ls   /raid1/    数据正常,没有丢失

重要的数据如: 数据库;   系统盘(把系统安装到raid的md1 设备上,可以做md1做分区)

移除损害的设备:   

   mdadm  -r /dev/md11 /dev/sde


[root@xueshen65 ~]# mdadm -D /dev/md11   检查一下有几块盘

也可以移回来

xueshen65 ~]# mdadm -a /dev/md11 /dev/sde     重新加载  

mdadm: added /dev/sde

14.2.4    创建RAID5  

试验环境



14.2.4.1  创建RAID-5  

  1    [root@xueshen65 ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 -c32 /dev/sd{g,h,i,j}

mdadm: layout defaults to left-symmetric

mdadm: layout defaults to left-symmetric

mdadm: size set to 20954112K

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md5 started.

2    oot@xueshen65 ~]# mdadm -D /dev/md5

14.2.4.2  停止MD5  阵列

3  保存配置文件  [root@xueshen65 ~]# mdadm -Dsv > /etc/mdadm.conf # 一定要先保存配置文件

2    oot@xueshen65 ~]# mdadm -D /dev/md5    

mdadm  -S  /dev/md5    #

4    [root@xueshen65 ~]# mdadm -S /dev/md5

mdadm: stopped /dev/md5

root@xueshen65 ~]# cat /proc/mdstat

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]

md5 : active raid5 sdi[4] sdj[3](S) sdh[1] sdg[0]

      41908224 blocks super 1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU]

md11 : active raid1 sde[3](S) sdf[2] sdd[0]

      20954112 blocks super 1.2 [2/2] [UU

md1 : active raid0 sdc[1] sdb[0]

      41908224 blocks super 1.2 512k chunk

unused devices: <none>

然后再次查看就没有md5  的信息了

cat  /proc/mdstat    

激活md5 

[root@xueshen65 ~]# mdadm -As

mdadm: /dev/md5 has been started with 3 drives and 1 spare.

14.2.4.4  扩展raid5  磁盘阵列

将热备盘增加到md5  , 使用md5  中可以使用的磁盘数量为4块

root@xueshen65 ~]# mdadm -G /dev/md5 -n 4 -c 32    

然后查看 发现多处一块盘来     

mdadm   -Dsv > /etc/mdadm.conf   保存配置文件

[root@xueshen65 ~]# mdadm -D /dev/md5     查看状态

Number Major Minor RaidDevice State

      0      8      96        0      active sync  /dev/sdg

      1      8      112        1      active sync  /dev/sdh

      4      8      128        2      active sync  /dev/sdi

      3      8      144        3      active sync  /dev/sdj

等一会儿,等所有数据同步完成后,查看md5 空间大小

Array Size : 62862336 (59.95 GiB 64.37 GB)    #  空间以及变大 

    Used Dev Size : 20954112 (19.98 GiB 21.46 GB)

14.2.5  创建RAID10 

试验环境

先做4个分区

fdisk   /dev/sdk  

[root@xueshen65 ~]# fdisk /dev/sdk

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0x336fbde6 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m

命令操作

  a  toggle a bootable flag

  b  edit bsd disklabel

  c  toggle the dos compatibility flag

  d  delete a partition

  g  create a new empty GPT partition table

  G  create an IRIX (SGI) partition table

  l  list known partition types

  m  print this menu

  n  add a new partition

  o  create a new empty DOS partition table

  p  print the partition table

  q  quit without saving changes

  s  create a new empty Sun disklabel

  t  change a partition's system id

  u  change display/entry units

  v  verify the partition table

  w  write table to disk and exit

  x  extra functionality (experts only)

命令(输入 m 获取帮助):p

磁盘 /dev/sdk:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x336fbde6

  设备 Boot      Start        End      Blocks  Id  System

命令(输入 m 获取帮助):n

Partition type:

  p  primary (0 primary, 0 extended, 4 free)

  e  extended

Select (default p):

Using default response p

分区号 (1-4,默认 1):

起始 扇区 (2048-41943039,默认为 2048):+1G

Last 扇区, +扇区 or +size{K,M,G} (2097152-41943039,默认为 41943039):^C

[root@xueshen65 ~]# fdisk  /dev/sdk 

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0xe0cded1b 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m

命令操作

  a  toggle a bootable flag

  b  edit bsd disklabel

  c  toggle the dos compatibility flag

  d  delete a partition

  g  create a new empty GPT partition table

  G  create an IRIX (SGI) partition table

  l  list known partition types

  m  print this menu

  n  add a new partition

  o  create a new empty DOS partition table

  p  print the partition table

  q  quit without saving changes

  s  create a new empty Sun disklabel

  t  change a partition's system id

  u  change display/entry units

  v  verify the partition table

  w  write table to disk and exit

  x  extra functionality (experts only)

命令(输入 m 获取帮助):p

磁盘 /dev/sdk:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xe0cded1b

  设备 Boot      Start        End      Blocks  Id  System

命令(输入 m 获取帮助):n

Partition type:

  p  primary (0 primary, 0 extended, 4 free)

  e  extended

Select (default p):

Using default response p

分区号 (1-4,默认 1):

起始 扇区 (2048-41943039,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G

分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n

Partition type:

  p  primary (1 primary, 0 extended, 3 free)

  e  extended

Select (default p): p

分区号 (2-4,默认 2):

起始 扇区 (2099200-41943039,默认为 2099200):

将使用默认值 2099200

Last 扇区, +扇区 or +size{K,M,G} (2099200-41943039,默认为 41943039):+1G

分区 2 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n

Partition type:

  p  primary (2 primary, 0 extended, 2 free)

  e  extended

Select (default p): p

分区号 (3,4,默认 3):

起始 扇区 (4196352-41943039,默认为 4196352):

将使用默认值 4196352

Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G

分区 3 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n

Partition type:

  p  primary (3 primary, 0 extended, 1 free)

  e  extended

Select (default e): p   

已选择分区 4

起始 扇区 (6293504-41943039,默认为 6293504):

将使用默认值 6293504

Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+1G

分区 4 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):w

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

2   [root@xueshen65 ~]# ls /dev/sdk*

/dev/sdk  /dev/sdk1  /dev/sdk2  /dev/sdk3  /dev/sdk4

[root@xueshen65 ~]# mdadm -C -v /dev/md10 -l 10 -n 4 /dev/sdk[1-4]

mdadm: layout defaults to n2

mdadm: layout defaults to n2

mdadm: chunk size defaults to 512K

mdadm: size set to 1046528K

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md10 started

[root@xueshen65 ~]# mdadm -D /dev/md10     查看状态



14.2.6  删除RAID所有信息以及注意事项

      用卸载   umount   /raid11  

首先卸载mdadm  -Ss 


root@xueshen65 ~]# mdadm -Ss

[root@xueshen65 ~]# rm -rf /etc/mdadm.conf

[root@xueshen65 ~]# mdadm --zero-superblock /dev/sdb

[root@xueshen65 ~]# mdadm --zero-superblock /dev/sdc    删除文件中的超级块

[root@xueshen65 ~]#


 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,245评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,749评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,960评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,575评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,668评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,670评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,664评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,422评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,864评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,178评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,340评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,015评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,646评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,265评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,494评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,261评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,206评论 2 352

推荐阅读更多精彩内容