RAID学习笔记

来源:互联网 发布:手机淘宝账号申请注册 编辑:程序博客网 时间:2024/05/17 06:45

RAID

(Redundant Array of Independent Disks,独立磁盘冗余阵列)可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。

两种方式:软RAID(通过操作系统软件实现)和硬RAID(硬件阵列卡)


RAID-0:striping(条带模式),至少需要两块磁盘,做RAID的分区的大小最好是相同的;数据分散存储于不同的磁盘上,在读写的时候可以实现并发,所以相对其读写性能最好;但是没有容错功能,任何一个磁盘的损坏将损坏全部数据;磁盘利用率为100%。

优点:磁盘利用率100%,读写速度提升;

缺点:没有备份;

RAID-1:mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好一样大),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;

优点:有备份;

缺点:磁盘利用率为50%,读写速度无提升;

RAID-5:需要三块或以上硬盘,可以提供热备盘实现故障的恢复;利用简单的异或逻辑运算,比对校验位信息,达到推算坏盘系统的内容。

优点:有备份,读写速度提升,只损坏一块数据无丢失;

缺点:磁盘利用率为75%(=(n-1)/n),损坏两块则丢。


管理软raid工具mdadm

mdadm命令常用参数:

-C或--creat 建立一个新阵列

-A 激活磁盘阵列

-D或--detail 打印阵列设备的详细信息

-s或--scan 扫描配置文件或/proc/mdstat得到阵列缺失信息

-f 将设备状态定为故障

-a或--add 添加设备到阵列

-v --verbose显示详细信息

-r 移除设备

-l或--level= 设定磁盘阵列的级别

-n或--raid-devices= 指定阵列成员(分区/磁盘)的数量

-x或--spare-devices= 指定阵列中备用盘的数量

-c或--chunk= 设定阵列的块chunk大小,单位为KB

-G或--grow 改变阵型大小或形态


建立RAID-0

[root@cxg ~]# madadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2mdadm: chunk size defaults to 512Kmdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md0 started[root@cxg ~]# mdadm -Ds#查看具体信息   [root@cxg ~]# mdadm -D /dev/md0#默认没有配置文件,手动生成[root@cxg ~]# mdadm -Ds > /etc/mdadm.conf#分区 [root@cxg ~]# fdisk /dev/md0[root@cxg ~]# ll /dev/md0*brw-rw---- 1 root disk   9,0 Oct 4 10:15 /dev/md0brw-rw---- 1 root disk 259,0 Oct 4 10:15 /dev/md0p1#格式化 [root@cxg ~]# mkfs.ext4 /dev/md0p1[root@cxg ~]# mkdir /raid0[root@cxg ~]# mount /dev/md0p1 /raid0/#开机自动挂载 [root@cxg ~]# vim /etc/fstab#查看[root@cxg ~]# df -h/dev/md0p1      2.0G  68M  1.9G  4%  /raid0

建立RAID-1
本实验练习:
1)创建RAID1
2)添加1G热备盘
3)模拟磁盘故障,自动顶替故障盘
4)卸载阵列并删除整个阵列
环境:
sdc1,1G
sdc2,1G
sdc3,1G
#创建分区[root@cxg ~]# fdisk /dev/sdcCommand(m for help):pCommand(m for help):npPartition number(1-4):1Last cylinder,+cylinders or +size{K,M,G}(1-2610,default 2610):+1GCommand(m for help):npPartition number(1-4):2Last cylinder,+cylinders or +size{K,M,G}(1-2610,default 2610):+1GCommand(m for help):npPartition number(1-4):3Last cylinder,+cylinders or +size{K,M,G}(1-2610,default 2610):+1GCommand(m for help):w[root@cxg ~]# ll /dev/sdcbrw-rw---- 1 root disk 8,32 Oct 4 10:17 /dev/sdcbrw-rw---- 1 root disk 8,33 Oct 4 10:17 /dev/sdc1brw-rw---- 1 root disk 8,34 Oct 4 10:17 /dev/sdc2brw-rw---- 1 root disk 8,35 Oct 4 10:17 /dev/sdc3#创建raid1,-x 1设定sd3是备用盘 [root@cxg ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdc{1,2,3} [root@cxg ~]# ll /dev/md1#默认没有配置文件,手动生成[root@cxg ~]# mdadm -Ds > /etc/mdadm.conf#分区 [root@cxg ~]# fdisk /dev/md1[root@cxg ~]# ll /dev/md1*brw-rw---- 1 root disk   9,0 Oct 4 10:15 /dev/md1brw-rw---- 1 root disk 259,0 Oct 4 10:15 /dev/md1p1#格式化 [root@cxg ~]# mkfs.ext4 /dev/md1p1[root@cxg ~]# mkdir /raid1[root@cxg ~]# mount /dev/md1p1 /raid1/#开机自动挂载 [root@cxg ~]# vim /etc/fstab#查看[root@cxg ~]# df -h/dev/md1p1      1019M  34M  934M  4%  /raid1#模拟故障[root@cxg ~]# cat /proc/mdstat[root@cxg ~]# cat /etc/mdadm.conf#md1 spares=1 表示有一个热备盘 #设定sdc1故障 [root@cxg ~]# mdadm -f /dev/md1 /dev/sdc1 mdadm:set /dev/sdc1 faulty in /dev/md1#新开一个终端[root@cxg ~]# whatch -n 1 cat /proc/mdstat#/dev/sdc3 [s]消失,成功顶替故障盘#更新配置文件[root@cxg ~]# mdadm -Ds > /etc/mdadm.conf[root@cxg ~]# cat /etc/mdadm.conf#md1 spares=1 消失 #移除故障盘 [root@cxg ~]# mdadm -r  /dev/md1 /dev/sdc1#拔掉硬盘更换新的 

建立RAID-5
本实验练习:
1)创建RAID5
2)添加1G热备盘,模拟磁盘故障,自动顶替故障盘
3)移除故障盘
4)停止阵列,重新激活阵列
再添加新的1G热备盘,扩展阵列容量,从3磁盘扩展到4个
实验环境:sde1,sde2,sde3,sde5,sde6个主分区,每个1G
#分区 [root@cxg ~]# ls /dev/sde*/dev/sde  /dev/sde2 /dev/sde4 /dev/sde6/dev/sde1 /dev/sde3 /dev/sde5#创建raid5,-x 1设定sde5是备用盘,sde4扩展分区无法使用 [root@cxg ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 /dev/sde{1,2,3,5} #默认没有配置文件,手动生成[root@cxg ~]# mdadm -Ds > /etc/mdadm.conf#停止md5[root@cxg ~]# mdadm -S /dev/md5mdadm:stopped /dev/md5#激活 [root@cxg ~]# mdadm -As#扩展sde6实验 [root@cxg ~]# fdisk /dev/md5[root@cxg ~]# mkfs.ext4 /dev/md5p1[root@cxg ~]# mkdir /raid5[root@cxg ~]# mount /dev/md5p1 /raid5[root@cxg ~]# df -h[root@cxg ~]# umount /raid5#-a添加设备到阵列 [root@cxg ~]# mdadm -a /dev/md5 /dev/sde6#查看sde6[5](s)是热备 [root@cxg ~]# cat /proc/mdstat#扩容[root@cxg ~]# mdadm -G /dev/md5 -n 4#新开一个终端动态查看-G过程,sde6[s]变成sde6[5][root@cxg ~]# whatch -n 1 cat /proc/mdstat[root@cxg ~]# mdadm -Ds > /etc/mdadm.conf


原创粉丝点击