RAID Redundant Arrays of Inexpensive Disks
Independent
独立融于磁盘阵列
提高IO能力
磁盘并行读写
提高耐用性
磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现方式
外接式磁盘阵列:通过扩展卡提供通配能力
内接式RAID:主板集成RAID控制器
Software RAID:
级别level
RAID0-6常用
RAID-0;0 条带卷,strip
RAID-1;1 镜像卷,mirror
RAID-2-4不常用
RAID-5
RAID-6
组合
RAID10
RAID01
RAID-0:
读写性能提升;
可用空间:N*min(S1,S2,...)
没有容错能力
最小磁盘数:2,2+
RAID-1:
读性能提升;数据存多份
写性能下降
可用空间:1*min(S1,S2,...)
有冗余能力
最小磁盘数:2,2+ 一般两个
RAID-4
1101,0110,1011
RAID-5
循环轮流校验
数据、校验码轮流存放
数据会出现左、右对称的布局
提升读写性能
可用空间:(N-1)*Min(S1、S2...)
有容错能力:1块磁盘
最少磁盘数3,3+
RAID-6
读写能力提升
可用空间:(N-2)*min(S1。。。)
有容错能力:2块
最少磁盘数4 4+
RAID10
先做1 再做0,
两两一组 ,每组一个镜像卷
再将这些组组合成RAID0
读写性能提升
可用空间:N*min(。。)/2
有容错能力:每组镜像最多只能坏一块
最小磁盘数4 4+
RAID01
每一组坏一个是不行的
因此10最合理
JBOD just a bunch of disks
功能:将多块磁盘的空间合并成一个大的连续空间使用
可用空间:sum(s1....)
常用级别 RAID 0 1 5 10 50 JBOD
实现方式:
硬件实现
软件实现
centos 6 上的软件RAID的实现
结合内核中的md(multi devices)
mdadm模式化工具
mdadm [mode] <raiddevice> [options] <component-device>
支持RAID级别 LINEAR RAID0;1;4;5;6;10
模式:
创建 -C
装配 -A
监控 -F
管理 -f,-r,-a
-C -n 几块设备
-l 指明RAID级别
-a {yes|no}
-c 指明块大小chunk
-x 指明空闲盘的个数
例如 创建10G可用空间的RAID5
fdisk /dev/sda
创建为 fd型号的raid auto
4个5G的fd类型
mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda{7,8,9,10}
cat /proc/mdstat
mke2fs -t ext4 /dev/md0
mkdir /mymd
mount /dev/md0 /mymd
mdadm -D /dev/md0
设置为损坏 mdadm /dev/md0 -f /dev/sda9
停止md
mdadm -S /dev/md#
watch -n 数字刷新几秒间隔 ‘’
RAID 用内核的md模块
LVM 用内核的dm模块 内核映射 device mapper 将几个底层块设备组成单一设备管理
数据损坏不容易修复
pe
lv中叫le
只拓展
lvextend -L /dev/myvg/lv 修改物理
resize2fs /dev/myvg/lv +大小 修改文件
df -lh
缩减
umount /lv
e2fsck -f /lv
resize2fs /dev +大小
lvreduce -L 大小 /lv
mount
快照 snapshot
lvcreate -L size -p r -s -n napshot_lv_name original_lv_name
创建只读快照
dd if=/path复制的文件 of=/path目标文件 bs=复制单元大小 count=复制多少bs数量
磁盘拷贝 dd if=/dev/sda of=/dev/sdb
备份 dd if=sda of=/tmp/mbr.bak bs=512(默认字节) count=1
bs =block size
清磁盘分区 dd if=/dev/zero of=/dev/sda bs=512 count=1
256清除bootloader