用mdadm构建软RAID基础篇.docx

上传人:b****8 文档编号:10863134 上传时间:2023-02-23 格式:DOCX 页数:10 大小:20.55KB
下载 相关 举报
用mdadm构建软RAID基础篇.docx_第1页
第1页 / 共10页
用mdadm构建软RAID基础篇.docx_第2页
第2页 / 共10页
用mdadm构建软RAID基础篇.docx_第3页
第3页 / 共10页
用mdadm构建软RAID基础篇.docx_第4页
第4页 / 共10页
用mdadm构建软RAID基础篇.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

用mdadm构建软RAID基础篇.docx

《用mdadm构建软RAID基础篇.docx》由会员分享,可在线阅读,更多相关《用mdadm构建软RAID基础篇.docx(10页珍藏版)》请在冰豆网上搜索。

用mdadm构建软RAID基础篇.docx

用mdadm构建软RAID基础篇

用mdadm构建软RAID(基础篇)

基于网上的一些资料,整理了一下,其中不妥之处欢迎指正,在此希望能抛砖引玉:

1.RAID简介

RAID是英文RedundantArrayofInexpensiveDisks的缩写,中文名字为磁盘冗余阵列,顾名思义它是由磁盘组成阵列而成的。

简单地说,RAID就是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来的一个硬盘组(逻辑硬盘),提供比单个硬盘更高的存储性能和数据冗余的技术,既保证了存取数据的快捷方便和管理客户端的简捷,也解决了存储海量数据的问题,同时提供了容错性(FaultTolerant)。

它可以在不须停机的情况下自动检测故障硬盘、进行硬盘替换,还可以扩充硬盘容量、重建故障硬盘上的数据。

目前最流行的是RAID0,RAID1,RAID5。

其中RAID1和RAID5过多的用于保证数据的安全,最大程度的防止磁盘意外坏掉而丢失数据情况的发生。

RAID0:

是最早的RAID。

Level0即RAID0级,通常称为带区,是利用带区数据映射技巧的特定性能。

也就是说,当数据写入磁盘组的时候,被分成带区,交错写入磁盘组的磁盘中。

这带来了高I/O性能,低开销,但不提供任何冗余。

磁盘组的存储量等于总的各磁盘容量之和。

特征:

并行读写数据,性能高,但没有数据冗余,阵列中任何一个硬盘坏掉,意味着所有数据丢失

容量:

所有硬盘容量之和

条件:

至少两块硬盘,做为RAID的分区大小必须是几乎相同的.

RAID1:

Level1即RAID1级,它就是常常提到的镜像RAID,相比其它各级别RAID来说,这个级别使用的时间较长。

RAID1通过把同样的数据写到磁盘组的每一个磁盘上,将"镜像"复制到每个磁盘上,来提供数据冗余。

镜像由于它的简单实现和数据的高可信度而一直很受欢迎。

1级在读数据操作时,并行处理2个或更多的磁盘,因此数据传输速率高,但是其它的操作时无法提供高速的I/O传输速率。

1级提供了非常好的数据的高可信度,并且改善了读数据操作的性能,但是耗费很大。

要求组成磁盘组的各磁盘规格相同,而组成后磁盘组的容量仅仅等于一块磁盘的容量。

特征:

数据冗余,可靠性强。

任何一块硬盘坏掉,不会丢失数据。

写入慢,读取快。

容量:

所有硬盘容量之和/2。

(冗余度50%)

条件:

至少两块硬盘,做为RAID的分区大小必须是几乎相同的.

RAID5:

服务器最常用的RAID级别,该级别的RAID是通过把奇偶校验分布到磁盘组中的一些或所有磁盘上,5级常使用缓冲技术来降低性能的不对称性。

如果组成磁盘组的各磁盘规格相同,磁盘组容量等于磁盘的总容量,减去一块磁盘的容量。

如果出现两个以上硬盘出现问题时,数据是不能得到有效的保护的。

也就是说RAID5只能在其中一块硬盘出问题时保证数据完好。

特征:

采用奇偶效验,可靠性强。

只有当两块硬盘坏掉时才会丢失数据。

并行读写数据,性能也很高。

容量:

所有硬盘容量-1个硬盘容量

条件:

至少三块硬盘,做为RAID的分区大小必须是几乎相同的。

  

RAID0+1:

RAID0和RAID1的组合

特征:

数据冗余,可靠性强。

任何一块硬盘坏掉,不会丢失数据。

写入慢,读取快。

容量:

所有硬盘容量之和/2。

(冗余度50%)

条件:

至少四块硬盘,做为RAID的分区大小必须是几乎相同的.

在网上找了一个fash,在附件中,做的比较直观形象,大家可以look一下:

2.首要条件:

2.1编译mdadm:

mdadm是linux下用于管理软件RAID的工具,可以到这里http:

//www.cse.unsw.edu.au/~neilb/source/mdadm/下载最新的mdadm源码包;值得一提的是,它是基于分区级的,而非是硬盘级的;也就是说如果要建RAID1,你只需两个容量相等的分区就可以了,而不一定是两个容量相等的硬盘,同样这两个分区可以存在于同一硬盘上,不过这样做的意义不大,但用于练练手,还是可以的:

#tarxvzfmdadm-2.4.tgz

#cdmdadm-2.4

#make

#makeinstall(orcp-Rmdadm/usr/sbin)

2.2编译kernel:

在编译kernel时,选中对RAID的支持,可以编译成模块或直接编进kernel:

#cdkernel-source-dir

#makemenuconfig

DeviceDrivers--->

  Multi-devicesupport(RAIDandLVM)  --->

    [*]Multipledevicesdriversupport(RAIDandLVM)  

      <*>  RAIDsupport                                

        Linear(append)mode                          

        RAID-0(striping)mode                        

        RAID-1(mirroring)mode    

        RAID-10(mirroredstriping)mode(EXPERIMENTAL)  

        RAID-4/RAID-5mode    

        RAID-6mode      

        MultipathI/Osupport  

#make  

#makemodules_install

#makeinstall

3.mdadm用法

基本语法:

mdadm[mode][options]

mode  有7种:

  Assemble:

将以前定义的某个阵列加入当前在用阵列。

  Build:

Buildalegacyarray,每个device没有superblocks

  Create:

创建一个新的阵列,每个device具有superblocks

  Manage:

管理阵列,比如add或remove

  Misc:

允许单独对阵列中的某个device做操作,比如抹去superblocks或终止在用的阵列。

  FolloworMonitor:

监控raid1,4,5,6和multipath的状态

  Grow:

改变raid容量或阵列中的device数目

可用的[options]:

-A,--assemble:

加入一个以前定义的阵列

-B,--build:

Buildalegacyarraywithoutsuperblocks.

-C,--create:

创建一个新的阵列

-Q,--query:

查看一个device,判断它为一个mddevice或是一个md阵列的一部分

-D,--detail:

打印一个或多个mddevice的详细信息

-E,--examine:

打印device上的mdsuperblock的内容

-F,--follow,--monitor:

选择Monitor模式

-G,--grow:

改变在用阵列的大小或形态

-h,--help:

帮助信息,用在以上选项后,则显示该选项信息

--help-options

-V,--version

-v,--verbose:

显示细节

-b,--brief:

较少的细节。

用于--detail和--examine选项

-f,--force

-c,--config=:

指定配置文件,缺省为/etc/mdadm.conf

-s,--scan:

扫描配置文件或/proc/mdstat以搜寻丢失的信息。

配置文件/etc/mdadm.conf

mdadm.conf格式:

DEVICE  所用到的设备分区列表(在mdadm扫描时,将扫描这些分区)

ARRAY  定义实际的磁盘阵列

简单实例:

DEVICE/dev/sda10/dev/sda11/dev/sdb10/dev/sdb11

ARRAY/dev/md0devices=/dev/sda11,/dev/sda10

4.实战RAID

下面将通过实际操作,创建一个RAID1:

4.1格式化待做软RAID的分区:

准备两个待做RAID1的分区/dev/sda10,/dev/sdb10:

要求:

大小近乎相等,格式为Linuxraidautodetect(即:

fd);

#fdisk/dev/sda

Thenumberofcylindersforthisdiskissetto9964.

Thereisnothingwrongwiththat,butthisislargerthan1024,

andcouldincertainsetupscauseproblemswith:

1)softwarethatrunsatboottime(e.g.,oldversionsofLILO)

2)bootingandpartitioningsoftwarefromotherOSs

  (e.g.,DOSFDISK,OS/2FDISK)

Command(mforhelp):

n

Commandaction

  l  logical(5orover)

  p  primarypartition(1-4)

l

Firstcylinder(1012-9964,default1012):

Usingdefaultvalue1012

Lastcylinderor+sizeor+sizeMor+sizeK(1012-1039,default1012):

1025

Command(mforhelp):

p

Disk/dev/sda:

81.9GB,81964302336bytes

255heads,63sectors/track,9964cylinders

Units=cylindersof16065*512=8225280bytes

  DeviceBoot  Start    End  Blocks  Id  System

/dev/sda1      1      9964  80035798+  5  Extended

/dev/sda5    917      927    88326  7  HPFS/NTFS

/dev/sda6    928      996    554211  b  Win95FAT32

/dev/sda7    997      1011    120456  7  HPFS/NTFS

/dev/sda8    1040      9964  71690031  83  Linux

/dev/sda9      1      916    7357707  83  Linux

/dev/sda10    1012      1025    112423+  83  Linux

Partitiontableentriesarenotindiskorder

Command(mforhelp):

t  (更改分区类型)

Partitionnumber(1-10):

10  

Hexcode(typeLtolistcodes):

fd  (分区类型为Linuxraidautodetect)

Command(mforhelp):

w  (保存退出)

#fdisk-l/dev/sda

Disk/dev/sda:

81.9GB,81964302336bytes

255heads,63sectors/track,9964cylinders

Units=cylindersof16065*512=8225280bytes

  DeviceBoot  Start    End  Blocks  Id  System

/dev/sda1      1      9964  80035798+  5  Extended

/dev/sda5      917      927    88326  7  HPFS/NTFS

/dev/sda6      928      996    554211  b  Win95FAT32

/dev/sda7      997      1011    120456  7  HPFS/NTFS

/dev/sda8      1040      9964  71690031  83  Linux

/dev/sda9      1      916    7357707  83  Linux

/dev/sda10    1012  1025    112423+  fd  Linuxraidautodetect

Partitiontableentriesarenotindiskorder

同样创建另一分区/dev/sdb10

#fdisk-l/dev/sdb

Disk/dev/sdb:

81.9GB,81964302336bytes

255heads,63sectors/track,9964cylinders

Units=cylindersof16065*512=8225280bytes

  DeviceBoot  Start    End  Blocks  Id  System

/dev/sdb2    4501      9964  43889580  5  Extended

/dev/sdb3    667      4500  30796605  83  Linux

/dev/sdb4    658      666    72292+  83  Linux

/dev/sdb5    5114      5362    2000061  83  Linux

/dev/sdb6    5751      5878    1028128+  83  Linux

/dev/sdb7    5721      5750    240943+  83  Linux

/dev/sdb8    5620      5720    811251  83  Linux

/dev/sdb9    6261      9964  29752348+  83  Linux

/dev/sdb10    4501      4514  112423+  fd  Linuxraidautodetect

Partitiontableentriesarenotindiskorder

4.2创建RAID1:

#modproberaid1.ko

#mdadm-C--verbose/dev/md0--level=1--raid-devices=2/dev/sda10/dev/sdb10

#或mdadm-Cv/dev/md0-l1-n2/dev/sda10/dev/sdb10

mdadm:

chunksizedefaultsto64K

mdadm:

/dev/sda10appearstocontainanext2fsfilesystem

  size=112320K  mtime=SatJan  106:

39:

592000

mdadm:

/dev/sdb10appearstobepartofaraidarray:

  size=112320Kctime=SatJan  102:

45:

142000

Continuecreatingarray?

y

mdadm:

array/dev/md0started.

#mkfs.ext3/dev/md0  (格式化raid)

  mke2fs1.37(21-Mar-2005)

Filesystemlabel=

OStype:

Linux

Blocksize=1024(log=0)

Fragmentsize=1024(log=0)

28112inodes,112320blocks

5616blocks(5.00%)reservedforthesuperuser

Firstdatablock=1

14blockgroups

8192blockspergroup,8192fragmentspergroup

2008inodespergroup

Superblockbackupsstoredonblocks:

      8193,24577,40961,57345,73729

Writinginodetables:

done                  

Creatingjournal(4096blocks):

done

Writingsuperblocksandfilesystemaccountinginformation:

done

Thisfilesystemwillbeautomaticallycheckedevery23mountsor

180days,whichevercomesfirst.  Usetune2fs-cor-itooverride.

#mdadm-D/dev/md0(查看raid信息)

/dev/md0:

      Version:

00.90.01

  CreationTime:

SatJan  102:

45:

142000

    RaidLevel:

raid1

    ArraySize:

112320(109.71MiB115.02MB)

  DeviceSize:

112320(109.71MiB115.02MB)

  RaidDevices:

2

  TotalDevices:

2

PreferredMinor:

0

  Persistence:

Superblockispersistent

  UpdateTime:

SatJan  105:

08:

272000

      State:

clean

ActiveDevices:

2

WorkingDevices:

2

FailedDevices:

0

  SpareDevices:

0

        UUID:

797b80d8:

4b70e2d1:

7e427c7e:

c9546d1b

      Events:

0.10

  Number  Major  Minor  RaidDeviceState

    0    8    10      0    activesync  /dev/sda10

    1    8    26      1    activesync  /dev/sdb10

#cat/proc/mdstat

Personalities:

[raid1]

md0:

activeraid1sda10[0]sdb10[1]

    112320blocks[2/2][UU]raidautodetect

unuseddevices:

#mount/dev/md0  /share/raid  (挂载raid)

#cp/share/partitionA2/share/raid

#ls/share/raid

lost+found              asdf.asf

netatalk.tar

#umount/share/raid

#mdadm  /dev/md0-r/dev/sda10  (将sda10从raid中移除)

#mdadm-D/dev/md0

/dev/md0:

      Version:

00.90.01

  CreationTime:

SatJan  102:

45:

142000

    RaidLevel:

raid1

    ArraySize:

112320(109.71MiB115.02MB)

  DeviceSize:

112320(109.71MiB115.02MB)

  RaidDevices:

2

  TotalDevices:

1

PreferredMinor:

0

  Persistence:

Superblockispersistent

  UpdateTime:

SatJan  105:

30:

282000

      State:

clean,degraded

ActiveDevices:

1

WorkingDevices:

1

FailedDevices:

0

  SpareDevices:

0

        UUID:

797b80d8:

4b70e2d1:

7e427c7e:

c9546d1b

      Events:

0.52

  Number  Major  Minor  RaidDeviceState

    0    0      0      0    removed

    1    8    26      1    activesync  /dev/sdb10

#cat/proc/mdstat

Personalities:

[raid1]

md0:

activeraid1sdb10[1]

    112320blocks[2/1][_U]

    

unuseddevices:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1