raid的设置

一,raid原理

RAID就是廉价冗余磁盘阵列

常用的级别是:
RAID0
RAID1
RAID5

RAID6

RAID10

RAID 0又称为Stripe或Striping,中文译为集带工作方式。它是将要存取的数据以条带状形式尽量平均分配到多个硬盘上,读写时多个硬盘同时进行读写,从而提高数据的读写速度。RAID 0另一目的是获得更大的“单个”磁盘容量从而提高数据的读写速度。这是他的优点,简而言之,就是效率高,性能好,安全性不高,一般网吧常用!

RAID 1又称为Mirror或Mirroring,中文译为镜像方式。这种工作方式的出现完全是为了数据安全考虑的,它是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上或硬盘的不同地方(镜像)。当读取数据时,系统先从RAID 1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。简言之;能提供容错,提高读的性能,也适用于AD活动目录.

RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,也是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验 (异或运算),校验数据平均分布在每块硬盘上。以n块硬盘构建的RAID 5阵列可以有2/3块硬盘的容量,存储空间利用率非常高。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID 5的任何一块硬盘上的数据丢失,均可以通过校验数据推算出来

RAID6与RAID5相似,由4个盘或以上组成,两个做效验,也就是说可以同时坏掉两块硬盘而不丢失数据.

RAID10,中文名称为RAID1零,不叫RAID10是RAID1与RAID0的组成,由两组RAID1组成一个RAID0,既保证了高效,也保证了安全

当然还有RAID5+0的,由两组RAID5合成一个RAID0.看企业实际的情况来做适当的组合!

做个实验,做一个由3个分区组成RAID5,并加一个热备盘.(热备盘简单解释为当raid中有磁盘坏掉,热备盘会立即替代其位置)

首先划分出4个512M的分区

[root@station20 ~]# fdisk /dev/sda

Command (m for help): n ##新建分区

First cylinder (1320-2610, default 1320):

Using default value 1320

Last cylinder or +size or +sizeM or +sizeK (1320-2610, default 2610): +512M #分区大小为512M

Command (m for help): n

First cylinder (1383-2610, default 1383):

Using default value 1383

Last cylinder or +size or +sizeM or +sizeK (1383-2610, default 2610): +512M

Command (m for help): n

First cylinder (1446-2610, default 1446):

Using default value 1446

Last cylinder or +size or +sizeM or +sizeK (1446-2610, default 2610): +512M

Command (m for help): n

First cylinder (1509-2610, default 1509):

Using default value 1509

Last cylinder or +size or +sizeM or +sizeK (1509-2610, default 2610): +512M

Command (m for help): p ##查看分区情况

Disk /dev/sda: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 13 104391 83 Linux

/dev/sda2 14 535 4192965 83 Linux

/dev/sda3 536 796 2096482+ 83 Linux

/dev/sda4 797 2610 14570955 5 Extended

/dev/sda5 797 1057 2096451 83 Linux

/dev/sda6 1058 1188 1052226 82 Linux swap / Solaris

/dev/sda7 1189 1319 1052226 8e Linux LVM

/dev/sda8 1320 1382 506016 83 Linux

/dev/sda9 1383 1445 506016 83 Linux

/dev/sda10 1446 1508 506016 83 Linux

/dev/sda11 1509 1571 506016 83 Linux

Command (m for help): t ##更改分区类型

Partition number (1-11): 8

Hex code (type L to list codes): l ##查看分区类型

0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris

1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-

2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-

3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-

4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx

5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data

6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .

7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility

8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt

9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access

a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O

b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor

c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs

e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT

f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/

10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b

11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor

12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor

14 Hidden FAT16 &lt;3 61 SpeedStor a9 NetBSD f2 DOS secondary

16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS

17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE

18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto

1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep

1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT

Hex code (type L to list codes): fd ##fd为RAID的分区类型

Changed system type of partition 8 to fd (Linux raid autodetect)

Command (m for help): t

Partition number (1-11): 9

Hex code (type L to list codes): fd

Changed system type of partition 9 to fd (Linux raid autodetect)

Command (m for help): t

Partition number (1-11): 10

Hex code (type L to list codes): fd

Changed system type of partition 10 to fd (Linux raid autodetect)

Command (m for help): t

Partition number (1-11): 11

Hex code (type L to list codes): fd

Changed system type of partition 11 to fd (Linux raid autodetect)

Command (m for help): w ##按w保存并退出

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table.

The new table will be used at the next reboot.

------查看分区

[root@station20 ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 13 104391 83 Linux

/dev/sda2 14 535 4192965 83 Linux

/dev/sda3 536 796 2096482+ 83 Linux

/dev/sda4 797 2610 14570955 5 Extended

/dev/sda5 797 1057 2096451 83 Linux

/dev/sda6 1058 1188 1052226 82 Linux swap / Solaris

/dev/sda7 1189 1319 1052226 8e Linux LVM

/dev/sda8 1320 1382 506016 fd Linux raid autodetect

/dev/sda9 1383 1445 506016 fd Linux raid autodetect

/dev/sda10 1446 1508 506016 fd Linux raid autodetect

/dev/sda11 1509 1571 506016 fd Linux raid autodetect

-----------------partprobe命令使所添加的分区立即生效

[root@station20 ~]# partprobe /dev/sda

----------------创建RAID5

[root@station20 ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sda{8,9,10,11}

mdadm: array /dev/md0 started.

命令详解:-C参数是创建的意思,-a yes代表如果没/dev/md0此设备名则自动创建.-l代表raid的级别,-n代表raid的磁盘或分区数,-x代表热备盘的数量.

-----------------查看raid的状态

mdadm –D /dev/md0或cat /proc/mdstat都可以

[root@station20 ~]# mdadm -D -s

ARRAY /dev/md0 level=raid5 num-devices=3 metadata=0.90 spares=1 UUID=b395b6d1:3ffa11f7:2157b501:9d2d63ea

-------------每次开机都能加载raid.

[root@station20 ~]# mdadm -D –s > /etc/mdadm.conf

--------------将/dev/md0格式化成ext3文件系统

[root@station20 ~]# mkfs.ext3 /dev/md0

-----------加入到/etc/fstab中让其挂载每次开机都生效

[root@station20 ~]# mkdir /data

[root@station20 ~]# vim /etc/fstab

/dev/md0 /data ext3 defaults 0 0

正常的配置基本完了,下面看看其他命令的作用

--------------------作废一个盘

[root@station20 ~]# mdadm /dev/md0 -f /dev/sda10

----------------移除一个盘

[root@station20 ~]#mdadm /dev/md0 –r /dev/sda10

----------------加入一个新的盘进入raid陈列

[root@station20 ~]#mdadm /dev/md0 –a /dev/sda13

-----------------拉伸raid(前提是已经是热备盘才能拉伸)

[root@station20 ~]# mdadm –G /dev/md0 –n 4

----------------停止raid

[root@station20 ~]# mdadm –S /dev/md0

---------------激活RAID

[root@station20 ~]# mdadm –A –S /dev/md0

--------------删除raid

[root@station20 ~]# mdadm /dev/md0 --zero-superblock

其他更多实用命令请参照----------man文档!

[root@station20 ~]# man mdadm