服务器软RAID和LVM的实现

Linux存储模式:
应用程序数据<---gedit,vim等
虚拟文件系统 <---系统对下层抽象,对上层提供统一接口
文件系统驱动<---ext3,vfat,xfs
内核驱动(硬件驱动)<---scsi_mod,sd_mod
硬件<--- IDE,SATA,SCSI,SAS

服务器软RAID和LVM的实现


存储介质:
ide (并口, ata, pata)
sata (串口的ata)
scsi
sas (串口scsi硬盘)
固态硬盘 (随机读写性能非常好)
flash card (随机读写性能非常好)

相关阅读:

RAID技术穷途末路了吗?  

软RAID的详细配置讲解

RAID 5下多种LVM的扩容情景

介绍RAID的工作原理及一步步来实现RAID的创建

存储的分类
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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/c4d569e4fc1f98af3ef38a79c259942b.html