在Linux内核中有一个md模块,可以通过mdadm指令在用户空间中对raid进行管理。
RAID0 :用两块以上的磁盘组成, 读写加快,一块坏掉全坏掉。
RAID1:速度提高,有容错功能,磁盘50%利用, 就是两个1G 做出来就是 1G的容量。
RAID5: 速度提高,有容错功能, 磁盘利用率 n-1 。一个磁盘要保存校验位。
真实环境中是用几个硬盘硬盘来实现,这里采用几个分区来实现
步骤大概就是建立阵列 , 格式化, 挂载。
fdisk /dev/vdb
(n)建立三个分区,(t)贴上fd标签(磁盘阵列 fd =Linux raid autodetect)
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2099199 1048576 fd Linux raid autodetect
/dev/vdb2 2099200 4196351 1048576 fd Linux raid autodetect
/dev/vdb3 4196352 6293503 1048576 fd Linux raid autodetect
partprobe ###同步分区信息
[root@desktop1 ~]# cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 1048576 vdb1
253 18 1048576 vdb2
253 19 1048576 vdb3
253 32 20971520 vdc
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}
-C ###建立
-a yes ###如果/dev/md0不存在则自动创建
-l ###ride工作方式
-n ###使用几块硬盘 此处设置2块
-x ###备用几块硬盘 此处设置1块
[root@desktop1 ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1…3}
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store ‘/boot’ on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
–metadata=0.90
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
mkfs.xfs /dev/md0
[root@desktop1 ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=256 agcount=4, agsize=65500 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=262000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
mount /dev/md0 /mnt ###挂载到/mnt上
[root@desktop1 ~]# mount /dev/md0 /mnt
[root@desktop1 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3236312 7237588 31% /
devtmpfs 927056 0 927056 0% /dev
tmpfs 942644 84 942560 1% /dev/shm
tmpfs 942644 17064 925580 2% /run
tmpfs 942644 0 942644 0% /sys/fs/cgroup
/dev/md0 1044588 32928 1011660 4% /mnt
mdadm -f /dev/md0 /dev/vdd1 ###模拟vdb1出现错误
-D /dev/md0 ###查看信息
-r /dev/md0 /dev/vdd1 ###删除这块阵列磁盘
-a /dev/md0 /dev/vdd1 ###恢复这块阵列磁盘
-S /dev/md0 ###结束ride这个磁盘服务,结束它磁盘阵列的生命
###阵列磁盘坏了只能r删除再a恢复
watch -n 1 cat /proc/mdstat ###每隔一秒观看一次磁盘阵列的信息
使vdb1损坏,正在磁盘阵列正在备份
查看md0信息,vdb1为faulty
删除了vdb1
解挂了/mnt,结束ride这个磁盘服务,结束它磁盘阵列的生命