10、Raid
RAID
独立冗余磁盘阵列
条带化技术,分散存储在多个盘上
(做切割数据的,存在盘上的对应位置,在外观看来就是条带状的)
raid的一种
raid级别,仅仅代表raid的组成方式是不一样的,没有上下级之分
raid级别:速度、可用性
利用校验码的形式来保证数据的可靠性(比较麻烦)浪费比例1/n
一:raid类型
1.raid0 条带
性能提升:读写
冗余能力:不具备
空间利用率:n
至少两块盘
2.raid1 镜像
性能提升:写性能下降,读性能提高
冗余能力:具备
空间利用率:1/2
正好两个
3.raid0+1(同组都可以坏,不能是不同组的相同标号坏)利用率都是1/2
raid1+0 (同组不能都坏掉) 用的多
性能表现:读写提升
冗余能力:具备
空间利用率:1/2
至少4块
4.raid4 校验码机制 校验码盘的压力大 性能瓶颈
5.raid5 轮换成为校验盘的机制
性能表现:读写提升
冗余能力:具备
空间利用率:(n-1)/n
至少3块
6.raid6 多了一块校验盘,校验方式有所改变
7.raid5+0
性能表现:读写提升
冗余能力:具备
空间利用率:(n-2)/n
至少6块
8.JBOD (Just a Bunch Of Disks,磁盘簇)是在一个底板上安装的带有多个磁盘驱动器的存储设备。通常又称为Span。
简单将多个盘罗列,对应用程序来说就是一块盘,可以储存单个较大文件
二.
硬件raid:
四块盘,raid0 raid1 必须使操作系统识别硬件,安装驱动程序*
主板上具有控制芯片(上面具有cpu,提供内存)
软件raid:
MD:multi disks 多磁盘,内核中的模块,可以读取配置文件,来实现
软件raid,md要模拟一个假的raid设备(逻辑raid)/dev/md#(metadevice)
mdadm
创建模式 -C
专业选项:
-l:指定基本
-n:设备个数
-a:{yes|no} 自动为其创建设备文件
-c:chunk大小,默认为64k,(数据块)
-x:指定空闲盘的个数
创建raid0: mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
创建raid1: mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sdb{5,6}
创建raid5: mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sdb{5,6,7}
增加热备磁盘: mdadm /dev/md2 -a /dev/sdb8
查看指定信息: mdadm -D /dev/md# 查看指定RAID设备的详细信息
查看raid状态: cat /proc/mdstat
管理模式 : 选项:-a(--add),-d(--del),-r(--remove),-f(--fail)
模拟损坏:mdadm /dev/md1 -f /dev/sdb5
移除损坏的磁盘:mdadm /dev/md1 -r /dev/sdb5
添加新的硬盘到已有阵列:mdadm /dev/md1 -a /dev/sdb7
注意:
1、新增加的硬盘需要与原硬盘大小一致
2、如果原有阵列缺少工作磁盘(如raid1只有一块在工作,raid5只有2块在工作),
这时新增加的磁盘直接变为工作磁盘,如果原有阵列工作正常,则新增加的磁盘为热备磁盘。
停止阵列:mdadm -S /dev/md1
监控模式 -F 不常用
增长模式 -G 用于增加磁盘,为阵列扩容
将raid5的热备磁盘增加到阵列工作磁盘中: mdadm -G /dev/md2 -n 4
装配模式 -A 软RAID是基于系统的,当原系统损坏了,需要重新装配RAID
将停止的阵列重新装配;mdadm -A /dev/md1 /dev/sdb5 /dev/sdb6
自动装配:mdadm运行时会自动检查/etc/mdadm.conf 文件并尝试自动装配,
因此第一次配置raid后可以将信息导入到/etc/mdadm.conf 中,
命令如下:
echo ’DEVICE /dev/hd[a-z] /dev/sd*[a-z]’ > /etc/mdadm.conf
mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm.conf
实验:fdisk /dev/sd# 进行分区 修改类型为fd
raid0实验:2G 2:1G
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6} 创建
cat /proc/mdstat 查看内核中启动的raid信息
mkfs -t ext4 /dev/md0 格式化
mount 挂载使用
raid1 2G 2:2G
mdadm -C /dev/md1 -a yes -n 2 -l 0 /dev/sda# /dev/sda#
cat /proc/mdstat
mkfs -t ext4 /dev/md1
mount
raid5实验:1.mdadm -C /dev/md0 -a yes -n4 -l5 /dev/{sda1,2,3,4}
-C (create)v -a yes 创建过程中如果有设备没有,会帮着创建
-n4(用了几块硬盘) -l (级别)
2.cat /proc/mdstat 查看raid详细信息(启动中的raid)
3.mkfs -t ext4 /dev/md0
4.mount /dev/md0 /tmp
5.模拟损坏和修复
1)mdadm -vDs (mdadm --detail --scan查看,数据,扫描) /dev/md0
2)配置文件的设置/etc/mdadm.conf (mdadm -vDs +DEVICE /dev/sdb1 /dev/sdc1...)
停止:mdadm -S /dev/md0 启动:mdadm -A /dev/md0
3)模拟磁盘损坏:mdadm /dev/md0 -f /dev/sda1(指定第一块盘坏掉)
4)移除磁盘:cat /proc/mdstat >> mdadm /dev/md0 -r /dev/sda1
5)添加磁盘:mdadm /dev/md0 -a /dev/sda2 cat /proc/mdstat
lsmod 列出内核模块
mdadm --detail /dev/md#
watch 'cat /proc/mdstat' -n 指定刷新时间
DM:device mapper 逻辑设备
linear 线性的 mirror snapshot (快照)访问的一种路径
多路径(使用负载均衡或者是备用)multipath
实验步骤:
1、添加硬盘
2、fdisk 分区 分区类型id要改成fd(linux raid)
3、mdadm 命令创建raid阵列
4、手动生成/etc/mdadm.conf文件
5、格式化raid设备文件
6、挂载raid设备文件
7、编写/etc/fstab文件,实现开机自动挂载设备