1、用mdadm构建软RAID基础篇用mdadm构建软RAID(基础篇)基于网上的一些资料,整理了一下,其中不妥之处欢迎指正,在此希望能抛砖引玉:1. RAID 简介RAID是英文Redundant Array of Inexpensive Disks的缩写,中文名字为磁盘冗余阵列,顾名思义它是由磁盘组成阵列而成的。简单地说,RAID就是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来的一个硬盘组(逻辑硬盘),提供比单个硬盘更高的存储性能和数据冗余的技术,既保证了存取数据的快捷方便和管理客户端的简捷,也解决了存储海量数据的问题,同时提供了容错性(Fault Tolerant)。它可以在不须停机的
2、情况下自动检测故障硬盘、进行硬盘替换,还可以扩充硬盘容量、重建故障硬盘上的数据。目前最流行的是RAID 0,RAID 1,RAID 5。其中RAID1和RAID 5过多的用于保证数据的安全,最大程度的防止磁盘意外坏掉而丢失数据情况的发生。RAID0 : 是最早的RAID。Level 0即RAID 0级,通常称为带区,是利用带区数据映射技巧的特定性能。也就是说,当数据写入磁盘组的时候,被分成带区,交错写入磁盘组的磁盘中。这带来了高I/O性能,低开销,但不提供任何冗余。磁盘组的存储量等于总的各磁盘容量之和。特征:并行读写数据,性能高,但没有数据冗余,阵列中任何一个硬盘坏掉,意味着所有数据丢失容量:
3、所有硬盘容量之和条件:至少两块硬盘,做为RAID的分区大小必须是几乎相同的.RAID1: Level 1即RAID 1级,它就是常常提到的镜像RAID,相比其它各级别RAID来说,这个级别使用的时间较长。RAID 1通过把同样的数据写到磁盘组的每一个磁盘上,将镜像复制到每个磁盘上,来提供数据冗余。镜像由于它的简单实现和数据的高可信度而一直很受欢迎。 1级在读数据操作时,并行处理2个或更多的磁盘,因此数据传输速率高, 但是其它的操作时无法提供高速的I/O传输速率。1级提供了非常好的数据的高可信度,并且改善了读数据操作的性能,但是耗费很大。要求组成磁盘组的各磁盘规格相同,而组成后磁盘组的容量仅仅等
4、于一块磁盘的容量。特征:数据冗余,可靠性强。任何一块硬盘坏掉,不会丢失数据。写入慢,读取快。 容量:所有硬盘容量之和/2。(冗余度 50%)条件:至少两块硬盘,做为RAID的分区大小必须是几乎相同的.RAID5: 服务器最常用的RAID级别,该级别的RAID是通过把奇偶校验分布到磁盘组中的一些或所有磁盘上,5级常使用缓冲技术来降低性能的不对称性。如果组成磁盘组的各磁盘规格相同,磁盘组容量等于磁盘的总容量,减去一块磁盘的容量。如果出现两个以上硬盘出现问题时,数据是不能得到有效的保护的。也就是说RAID 5只能在其中一块硬盘出问题时保证数据完好。特征:采用奇偶效验,可靠性强。只有当两块硬盘坏掉时才
5、会丢失数据。并行读写数据,性能也很高。容量:所有硬盘容量-1个硬盘容量条件:至少三块硬盘,做为RAID的分区大小必须是几乎相同的。 RAID 0+1: RAID 0和RAID 1的组合 特征:数据冗余,可靠性强。任何一块硬盘坏掉,不会丢失数据。写入慢,读取快。 容量:所有硬盘容量之和/2。(冗余度 50%)条件:至少四块硬盘,做为RAID的分区大小必须是几乎相同的.在网上找了一个fash,在附件中,做的比较直观形象,大家可以look一下:)2.首要条件:21 编译mdadm:mdadm是linux下用于管理软件 RAID 的工具, 可以到这里http:/www.cse.unsw.edu.au/
6、neilb/source/mdadm/下载最新的mdadm源码包;值得一提的是,它是基于分区级的,而非是硬盘级的;也就是说如果要建RAID1,你只需两个容量相等的分区就可以了,而不一定是两个容量相等的硬盘,同样这两个分区可以存在于同一硬盘上,不过这样做的意义不大,但用于练练手,还是可以的:)# tar xvzf mdadm-2.4.tgz# cd mdadm-2.4# make# make install ( or cp -R mdadm /usr/sbin)22 编译kernel:在编译kernel时,选中对RAID的支持,可以编译成模块或直接编进kernel:# cd kernel-sou
7、rce-dir# make menuconfigDevice Drivers - Multi-device support (RAID and LVM)- * Multiple devices driver support (RAID and LVM) RAID support Linear (append) mode RAID-0 (striping) mode RAID-1 (mirroring) mode RAID-10 (mirrored striping) mode (EXPERIMENTAL) RAID-4/RAID-5 mode RAID-6 mode Multipath I/O
8、 support # make# make modules_install# make install3.mdadm用法基本语法 : mdadm mode options mode有7种: Assemble:将以前定义的某个阵列加入当前在用阵列。 Build:Build a legacy array ,每个device 没有 superblocksCreate:创建一个新的阵列,每个device 具有 superblocksManage: 管理阵列,比如 add 或 remove Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。Fol
9、low or Monitor:监控 raid 1,4,5,6 和 multipath 的状态Grow:改变raid 容量或 阵列中的 device 数目可用的 options:-A, -assemble:加入一个以前定义的阵列-B, -build:Build a legacy array without superblocks.-C, -create:创建一个新的阵列-Q, -query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分-D, -detail:打印一个或多个 md device 的详细信息-E, -examine:打印 device 上的
10、md superblock 的内容-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.confmdad
11、m.conf 格式:DEVICE所用到的设备分区列表(在mdadm扫描时,将扫描这些分区)ARRAY 定义实际的磁盘阵列简单实例:DEVICE /dev/sda10 /dev/sda11 /dev/sdb10 /dev/sdb11ARRAY /dev/md0 devices=/dev/sda11, /dev/sda104.实战RAID下面将通过实际操作,创建一个RAID1:41 格式化待做软RAID的分区:准备两个待做RAID1的分区/dev/sda10, /dev/sdb10:要求: 大小近乎相等,格式为Linux raid autodetect (即:fd);# fdisk /dev/sd
12、aThe number of cylinders for this disk is set to 9964.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS
13、/2 FDISK)Command (m for help): nCommand action l logical (5 or over) p primary partition (1-4)lFirst cylinder (1012-9964, default 1012): Using default value 1012Last cylinder or +size or +sizeM or +sizeK (1012-1039, default 1012): 1025Command (m for help): pDisk /dev/sda: 81.9 GB, 81964302336 bytes2
14、55 heads, 63 sectors/track, 9964 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks IdSystem/dev/sda1 1 9964 80035798+ 5Extended/dev/sda5 917 927 88326 7HPFS/NTFS/dev/sda6 928 996 554211 bWin95 FAT32/dev/sda7 997 1011 120456 7HPFS/NTFS/dev/sda8 1040 9964 71690031
15、83Linux/dev/sda9 1 916 7357707 83Linux/dev/sda10 1012 1025 112423+83LinuxPartition table entries are not in disk orderCommand (m for help): t (更改分区类型)Partition number (1-10): 10 Hex code (type L to list codes): fd(分区类型为 Linux raid autodetect)Command (m for help): w (保存退出)# fdisk -l /dev/sdaDisk /dev
16、/sda: 81.9 GB, 81964302336 bytes255 heads, 63 sectors/track, 9964 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks IdSystem/dev/sda1 1 9964 80035798+ 5Extended/dev/sda5 917 927 88326 7HPFS/NTFS/dev/sda6 928 996 554211 bWin95 FAT32/dev/sda7 997 1011 120456 7HPFS/
17、NTFS/dev/sda8 1040 9964 71690031 83Linux/dev/sda9 1 916 7357707 83Linux/dev/sda10 1012 1025 112423+fdLinux raid autodetectPartition table entries are not in disk order同样创建另一分区/dev/sdb10 fdisk -l /dev/sdbDisk /dev/sdb: 81.9 GB, 81964302336 bytes255 heads, 63 sectors/track, 9964 cylindersUnits = cylin
18、ders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks IdSystem/dev/sdb2 4501 9964 43889580 5Extended/dev/sdb3 667 4500 30796605 83Linux/dev/sdb4 658 666 72292+83Linux/dev/sdb5 5114 5362 2000061 83Linux/dev/sdb6 5751 5878 1028128+83Linux/dev/sdb7 5721 5750 240943+83Linux/dev/sdb8 5620 5720
19、 811251 83Linux/dev/sdb9 6261 9964 29752348+83Linux/dev/sdb10 4501 4514112423+fdLinux raid autodetectPartition table entries are not in disk order42 创建RAID 1:modprobe raid1.komdadm -C -verbose /dev/md0 -level=1 -raid-devices=2 /dev/sda10 /dev/sdb10或 mdadm -Cv /dev/md0 -l1 -n2 /dev/sda10 /dev/sdb10md
20、adm: chunk size defaults to 64Kmdadm: /dev/sda10 appears to contain an ext2fs file system size=112320Kmtime=Sat Jan1 06:39:59 2000mdadm: /dev/sdb10 appears to be part of a raid array: size=112320K ctime=Sat Jan1 02:45:14 2000Continue creating array? ymdadm: array /dev/md0 started. mkfs.ext3 /dev/md0
21、(格式化raid) mke2fs 1.37 (21-Mar-2005)Filesystem label=OS type: LinuxBlock size=1024 (log=0)Fragment size=1024 (log=0)28112 inodes, 112320 blocks5616 blocks (5.00%) reserved for the super userFirst data block=114 block groups8192 blocks per group, 8192 fragments per group2008 inodes per groupSuperblock
22、 backups stored on blocks: 8193, 24577, 40961, 57345, 73729Writing inode tables: done Creating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 23 mounts or180 days, whichever comes first.Use tune2fs -c or -
23、i to override.# mdadm -D /dev/md0 (查看raid信息)/dev/md0: Version : 00.90.01Creation Time : Sat Jan1 02:45:14 2000 Raid Level : raid1 Array Size : 112320 (109.71 MiB 115.02 MB) Device Size : 112320 (109.71 MiB 115.02 MB) Raid Devices : 2Total Devices : 2Preferred Minor : 0 Persistence : Superblock is pe
24、rsistent Update Time : Sat Jan1 05:08:27 2000 State : cleanActive Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0 UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b Events : 0.10 Number Major Minor RaidDevice State 0 8 10 0 active sync /dev/sda10 1 8 26 1 active sync /dev/sdb10# cat /proc/
25、mdstat Personalities : raid1 md0 : active raid1 sda100 sdb101 112320 blocks 2/2 UU raid autodetectunused devices: mount /dev/md0/share/raid(挂载raid) cp /share/partitionA2 /share/raid ls /share/raidlost+found asdf.asfnetatalk.tar# umount /share/raid# mdadm/dev/md0 -r /dev/sda10(将sda10从raid中移除)# mdadm
26、-D /dev/md0 /dev/md0: Version : 00.90.01Creation Time : Sat Jan1 02:45:14 2000 Raid Level : raid1 Array Size : 112320 (109.71 MiB 115.02 MB) Device Size : 112320 (109.71 MiB 115.02 MB) Raid Devices : 2Total Devices : 1Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Sat Jan1
27、05:30:28 2000 State : clean, degradedActive Devices : 1Working Devices : 1Failed Devices : 0Spare Devices : 0 UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b Events : 0.52 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 26 1 active sync /dev/sdb10# cat /proc/mdstat Personalities : raid1 md0 : active raid1 sdb101 112320 blocks 2/1 _U unused devices: none
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1