硬盘类型扫盲
IDE 133Mbps 并行
SATA 300Mbps 600Mbps 6Gbps 串行
USB 40Mbps 480Mbps 串行
SCSI small Computer System Interface功能强大的芯片
(大量解脱物理CPU任务,90%都有芯片来完成) 并行
窄带 8 7target 16 15target 其中一个被适配器占用,适配器叫做initiator
SAS2.5 串行
RAID常见结构
编号 名称 性能 冗余 空间利用率 最少单位
0 条带 读写提升 无 100% 2块
1 镜像 写下降,读提升 有 50% 2块
01 01 读写提升 有 50% 4块
10 10 读写提升 有 50% 4块
5 5 读写提升 有 (n-1)/n% 3块
50 50 读写提升 有 (n-x)/nx% 6块
注释:RAID01 一块盘坏掉,修复所有盘受到影响。
RAID10 一块盘坏掉,修复只有其镜像受到影响。
两者性能基本一致,但是当修复的时候RAID10优于RAID01。
RAID10中同组硬盘全部损坏则数据会丢失。
硬件RAID
主板上集成RAID控制器,用线连接外部的RAID阵列
按照操作系统过程中提供适配器的驱动程序
软件RAID (内核模块md:multidisks)md模拟一个逻辑RAID
mdadm
mdadm 模式化的命令, 将任何块设备做成RAID
创建模式
-C
专用选项
-l 级别
-n 设备个数
-a {yes} 自动为其创建设备文件
-c 制定CHUNK大小(每次条带数据块)32 64 128 16 默认为64K
优化软RAID性能
mke2fs -E stride=16 -b 4096 /dev/md0
CHUNK/BLOCK=?
不用每次计算自己的条带到底有多大
-x # 制定制定空闲盘(备用盘)
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{5,6}
管理模式(默认就工作在管理模式)
--add 添加成员
mdadm /dev/md# --add /dev/sdb9
--del
--fail 模拟损坏
mdadm /dev/md# --fail /dev/sdb7
--remove 移除
mdadm /dev/md# --remove /dev/sdb7
监控模式
-F
停止阵列
-S mdadm -S /dev/md0 先停止
rm /dev/md# 后删除
增加模式
-G
装配模式
-A 手动装配
mdadm -A /dev/md1 /dev/sdb7 /dev/sdb8
自动装备
mdadm -D --scan > /etc/mdadm.conf
mdadm -S /dev/md1
mdadm -A /dev/md1 (不用再这样mdadm -A /dev/md1 /dev/sdb7 /dev/sdb8)
显示RAID设备相关信息
-D
--detail
mdadm -D /dev/md#
查看当前系统所有RAID设备
cat /proc/mdstat
watch 周期性地执行制定命令,并以全屏方式显示结果
-n # 制定周期长度,单位为秒,默认为2
watch `cat /proc/mdstat'
练习 (为了演示方便,没有使用独立的硬盘,而是分区)
1、创建存储空间为2G的RAID0设备。
1
2
3
4
5
6
7
8
9
10
11
|
fdisk
/dev/sdb
{1,2} 修改分区类型fd
mke2fs -j
/dev/sdb1
格式化ext3
mke2fs -j
/dev/sdb2
cat
/proc/partitions
查看内核是否是被2个分区
partprobe
/dev/sdb
如果没有识别让内核自动识别
mdadm -C
/dev/md0
-a
yes
-l 0 -n 2
/dev/sdb
{5,6} 创建RAID0设备
/dev/md0
cat
/proc/mdstat
查看当前系统所有RAID设备
mke2fs -j
/dev/md0
格式化文件系统ext3
/dev/md0
设备
fdisk
-l 查看当前系统所有设备
mount
/dev/md0
/mnt
将RAID0设备挂载到
/mnt
目录
ls
/mnt/
查看mnt目录中是否有lost+found
|
2、创建存储空间2G 的RAID10设备
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
fdisk
/dev/sdb
{1,2,3,4} 修改分区类型fd
mke2fs -j
/dev/sdb1
格式化ext3
mke2fs -j
/dev/sdb2
mke2fs -j
/dev/sdb3
mke2fs -j
/dev/sdb4
cat
/proc/partitions
查看内核是否识别
partprobe
/dev/sdb
如果没有识别让内核自动识别
mdadm -C
/dev/md0
-a
yes
-l 1 -n 2
/dev/sdb
{1,2}
#创建RAID1设备/dev/md0
mdadm -C
/dev/md1
-a
yes
-l 1 -n 2
/dev/sdb
{3,4}
#创建RAID1设备/dev/md1
mke2fs -j
/dev/md0
格式化RAID1设备
mke2fs -j
/dev/md1
mdadm -C
/dev/md10
-a
yes
-l 0 -n 2
/dev/md
{0,1}
#创建RAID0设备基于两个RAID1设备
mke2fs -j
/dev/md10
格式化RAID0设备
mdadm -D
/dev/md10
查看RAID10设备
|
3、创建2G RAID5 带一个空闲盘 (4个1G)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
fdisk
/dev/sdb
创建分区 5 6 7 8 并调整分区类型fd
mdadm -C
/dev/md0
-a
yes
-l 5 -n 3
/dev/sdb
{5,6,7} -x 1
/dev/sdb8
创建RAID5并制定空闲盘为
/dev/sdb8
cat
/proc/mdstat
查看所有RAID设备
mdadm -D
/dev/md0
查看设备
/dev/md0
信息
mke2fs -j -E stride=16 -b 4096
/dev/md0
条带优化并格式化RAID5文件系统类型为ext3
mount
/dev/md0
/backup
cd
backup/
ls
查看是否有lost+found文件
cp
/etc/inittab
./
mdadm
/dev/md0
--fail
/dev/sdb5
模拟
/dev/sdb5
分区故障
mdadm
/dev/md0
--add
/dev/sdb8
添加空闲盘
/dev/sdb8
救急,内核自动同步数据至sdb8
mdadm
/dev/md0
--remove
/dev/sdb5
移除故障盘
/dev/sdb5
mdadm
/dev/md0
--add
/dev/sdb5
重新添加空闲盘
/dev/sdb5
mdadm
/dev/md0
--fail
/dev/sdb8
模拟
/dev/sdb8
分区故障
mdadm -D
/dev/md0
查看发现此时作为空闲盘的
/dev/sdb5
会自动填补上去,同步数据。
|