Linux存储模式:
应用程序数据<---gedit,vim等
虚拟文件系统 <---系统对下层抽象,对上层提供统一接口
文件系统驱动<---ext3,vfat,xfs
内核驱动(硬件驱动)<---scsi_mod,sd_mod
硬件<--- IDE,SATA,SCSI,SAS
存储介质:
ide (并口, ata, pata)
sata (串口的ata)
scsi
sas (串口scsi硬盘)
固态硬盘 (随机读写性能非常好)
flash card (随机读写性能非常好)
相关阅读:
软RAID的详细配置讲解
RAID 5下多种LVM的扩容情景
存储的分类
DAS(直连存储)
存储设备功能简单,性能一般
扩展有限
集中式存储
SAN (Storage Area Network)
适合IO密集型的应用,一般都是大型数据库使用。Oracle
通过光纤连接,识别为块设备
IBM
EMC
HP
DELL
NAS
可以通过以太网或者光纤连接,设备集成文件系统
适合cpu密集型:web,邮件
Netapp
IpSAN(iscsi),gnbd
分布式存储
mfs
tfs <--- code.taobao.org
gfs(google fs)
主板
|
IO总线
scsi适配器
通道1(scsi总线)----------------
通道2 (scsi总线)----------------
| | | | | | | | <--- scsi id
| disk2 ...... disk8
|
高端的磁盘柜(很多磁盘)<---通过LUN识别磁盘柜里的硬盘
==================================================================
Raid
raid 0
至少需要两个原始设备
条带化
带来性能的提升,IO性能提升了N倍
不能坏点任何一个设备
raid 1
至少需要两个原始设备
镜像,数据是冗余保存的,至少剩下一个有效设备,数据都能访问
radi 10
raid 5
字少需要3个原始设备
具有条带化,又可以提供数据冗余机制
可以坏点一个原始设备,一般都是支持热插拔
软raid命令
mdadm 必须kenerl > 2.4
例子1:实现raid0
原始设备:独立硬盘(才能提升性能),分区,文件
1、新建几个容量一样的分区,类型为fd
2、使用命令组装原设设备,构成raid0设备
[sda7 sda8] ===> md0 ===> 格式化、挂载
应用程序数据<---gedit,vim等
虚拟文件系统 <---系统对下层抽象,对上层提供统一接口
文件系统驱动<---ext3,vfat,xfs
raid软件驱动 <---
内核驱动(硬件驱动)<---scsi_mod,sd_mod
硬件<--- IDE,SATA,SCSI,SAS
# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda{7,8} ( raid0创建)
mdadm: array /dev/md0 started.
# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sda8[1] sda7[0] <--- md0是由sda7,sda8组装而成,级别raid0,是一个映射设备文件
4016000 blocks 64k chunks
# mkfs.ext3 /dev/md0
查看源设备的元数据
# mdadm -E /dev/sda8
例子2:实现raid1
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda{9,10}
例子3:实现raid10
[sda7 <--raid0--> sda8][sda9 <---raid0---> sda10]
md0md1
|raid1|
-------------------------
md2 <---raid10
# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/md{0,1}
等待初始化完毕就能使用
# watch "cat /proc/mdstat "
Every 2.0s: cat /proc/mdstat Tue Nov 15 14:41:18 2011
Personalities : [raid0] [raid1]
md2 : active raid1 md1[1] md0[0]
4015936 blocks [2/2] [UU]
[============>........] resync = 62.1% (2497280/4015936) finish=
1.0min speed=23758K/sec
.....
格式化,挂载
验证条带化和数据镜像
# iostat -dk sda{7,8,9,10} 2
如何把组装信息保存到配置文件?有何作用
# echo "DEVICES /dev/sda9 /dev/sda10" > /etc/mdadm.conf
# mdadm --detail --scan >> /etc/mdadm.conf
如何手工再次组装设备
# mdadm -Av /dev/md0 《---读取mdadm.conf进行重新组装
没有配置文件的情况下,如何手工组装:
1)查看可能的原始设备,确定需要组装的raid设备是由哪些原始设备组成
# mdadm -E /dev/sda9
...
UUID : 6db1465c:71f7b98d:ebafbef9:5e5e6795
Raid Level : raid0
...
Number Major Minor RaidDevice State
this 0 8 9 0 active sync /dev/sda9
0 0 8 9 0 active sync /dev/sda9
1 1 8 10 1 active sync /dev/sda10
2) 把sda9,sda10重新组装成raid0设备
# mdadm -Av --uuid=6db1465c:71f7b98d:ebafbef9:5e5e6795 /dev/md0
....
mdadm: /dev/sda10 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sda9 is identified as a member of /dev/md0, slot 0.
mdadm: added /dev/sda10 to /dev/md0 as 1
mdadm: added /dev/sda9 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 2 drives.
停止使用一个raid设备
# mdadm --stop /dev/md2
mdadm: stopped /dev/md2
删除原始设备上的关于raid元数据
# mdadm --zero-superblock --misc /dev/sda8