磁盘阵列技术RAID介绍及安装实例_第1页
磁盘阵列技术RAID介绍及安装实例_第2页
磁盘阵列技术RAID介绍及安装实例_第3页
磁盘阵列技术RAID介绍及安装实例_第4页
磁盘阵列技术RAID介绍及安装实例_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、磁盘阵列技术RAID介绍及安装实例RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。常见的raid种类有0,1,5,10等。RAID 0:无差错控制的带区组要实现RAID0必须要有两个以上硬盘驱动器,RAID0实现了带区组,数据

2、并不是保存在一个硬盘上,而是分成数据块保存在不同驱动器上。因为将数据分布在不同驱动器上,所以数据吞吐率大大提高,驱动器的负载也比较平衡。如果刚好所需要的数据在不同的驱动器上效率最好。它不需要计算校验码,实现容易。它的缺点是它没有数据差错控制,如果一个驱动器中的数据发生错误,即使其它盘上的数据正确也无济于事了。不应该将它用于对数据稳定性要求高的场合。如果用户进行图象(包括动画)编辑和其它要求传输比较大的场合使用RAID0比较合适。同时,RAID可以提高数据传输速率,比如所需读取的文件分布在两个硬盘上,这两个硬盘可以同时读取。那么原来读取同样文件的时间被缩短为1/2。在所有的级别中,RAID 0的

3、速度是最快的。但是RAID 0没有冗余功能的,如果一个磁盘(物理)损坏,则所有的数据都无法使用。RAID 1:镜象结构raid1对于使用这种RAID1结构的设备来说,RAID控制器必须能够同时对两个盘进行读操作和对两个镜象盘进行写操作。通过下面的结构图您也可以看到必须有两个驱动器。因为是镜象结构在一组盘出现问题时,可以使用镜象,提高系统的容错能力。它比较容易设计和实现。每读一次盘只能读出一块数据,也就是说数据块传送速率与单独的盘的读取速率相同。因为RAID1的校验十分完备,因此对系统的处理能力有很大的影响,通常的RAID功能由软件实现,而这样的实现方法在服务器负载比较重的时候会大大影响服务器效

4、率。当您的系统需要极高的可靠性时,如进行数据统计,那么使用RAID1比较合适。而且RAID1技术支持“热替换”,即不断电的情况下对故障磁盘进行更换,更换完毕只要从镜像盘上恢复数据即可。当主硬盘损坏时,镜像硬盘就可以代替主硬盘工作。镜像硬盘相当于一个备份盘,可想而知,这种硬盘模式的安全性是非常高的,RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。RAID5:分布式奇偶校验的独立磁盘结构RAID5清晰图片从它的示意图上可以看到,它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID5的读

5、出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。 但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失

6、”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。 RAID-5的话,优点是提供了冗余性(支持一块盘掉线后仍然正常运行),磁盘空间利用率较高(N-1/N),读写速度较快(N-1倍)。RAID5最大的好处是在一块盘掉线的情况下,RAID照常工作,相对于RAID0必须每一块盘都正常才可以正常工作的状况容错性能好多了。因此RAID5是RAID级别中最常见的一个类型。RAID5校验位即P位是通过其它条带数据做异或(xor)求得的。计算公式为P=D0xorD1xorD2xorDn,其中p代表校验块,Dn代表相应的数据块,xor是数学运算符号异或。(P

7、S.在raid5中,任何一块硬盘出现错误甚至是完全损坏都没有问题,而且能完全修复,这就是奇偶校验的优势)RAID10:高可靠性与高效磁盘结构这种结构无非是一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充,达到既高效又高速还可以互为镜像的目的。大家可以结合两种结构的优点和缺点来理解这种新结构。这种新结构的价格高,可扩充性不好。主要用于容量不大,但要求速度和差错控制的数据库中。(PS.raid10其实就是raid1+raid0)Linux下建立Raid (以raid1为例子)1、先用fdisk在硬盘上划分出空间。fdisk /dev/sdc (后面的根据自己实际情况修改,因为我

8、这里是虚拟机,所以就用2个500M的来做成一个raid)然后将其的功能改为 Linux raid autodetect (也就是在fdisk下面 用t选择功能然后输入 -fd)2、建立raidmdadm -C /dev/md1 -l 1 -n 2 /dev/sdc -n 2 /dev/sdc1 /dev/sdc2mdadm -C 【raid阵列所在】 -l 【raid等级】 -n 【设备数】 【设备分别是什么】建立完毕之后,可以通过cat /proc/mdstat 查看是否成功3、格式化mkfs.ext3 /dev/md14、挂载mount /dev/md1 /raid15、建立mdadm.c

9、onf文件mdadm -Ds /etc/mdadm.conf6、编辑mdadm.conf加入DEVICE /dev/sdc1 /dev/sdc25、6部在一些人写的文章中很少提到,但是我在实际工作中遇到过如果不建立mdadm.conf文件导致服务器重启之后raid无法正常运行.Linux磁盘阵列实战RAID英文全称redundant array of independent disks意思“独立磁盘冗余”,简称磁盘阵列。Raid0是用来扩展磁盘,缺点如果一块硬盘坏掉系统崩溃;raid1是一个做存储一个做镜像备份,必须是偶数的硬盘,浪费磁盘空间;raid10是结合raid0和raid1的优点组成

10、一个磁盘阵列;raid5是每个磁盘都有一部分作镜像,要求至少三块磁盘。环境:centos5.6我们首先增加一个10G新磁盘:我们fdisk -l,查看磁盘状态可以看到新磁盘目前不可用制作Raid0磁盘阵列Fdisk /dev/sdb /创建新分区我们接下来键入n建立新分区,尽量建立扩展分区,按e建立扩展分区,输入分区号,然后给分区分配大小,我们分配所有大小,于是从1开始按enter即可分配所有的大小。最后按p查看。扩展分区建立完毕,开始建立逻辑分区,按n开始建立新的分区。按“l”建立逻辑分区,使用“+100MB”分配一个大小为100MB的空间,按p查看即可。逻辑分区是从5开始的。我们建立了两个

11、100MB的逻辑分区来测试RID1.我们需要更改磁盘的系统id,我们按“t”修改,然后选择“5”“代表第五块磁盘,然后按l可以查看支持的分区格式,我们选择fd格式。最后按w保存。我们这时在fdisk -l查看磁盘,会看到sdb已经有了新的内容。然后通过mdadm 建立磁盘阵列,-C指md0阵列名,-ayes是激活为active状态,-l后接0代表raid0磁盘阵列,-n后接2位2块磁盘,最后接磁盘名,磁盘用n1.n2来简写。最后我们通过mdadm -D(detail)方式来查看,会看到阵列为raid0,并且两块磁盘都是active状态。Cat /proc/mdstat也可以查看状态。注:64K

12、chunks意思是磁盘是并行写入数据的,第一块磁盘写了多少开始写第二块。Raid0做好了,我们创建3个文件分别挂载用。然后格式化磁盘mkfs.ext3 /dev/md0接着mount 挂载磁盘。这时我们重启电脑磁盘会丢失,我们将磁盘信息写入配置文件Vi /etc/fstab这时我们在模拟重启,umount卸载,mount -a 检查,会自动挂载好的。制作Raid1磁盘阵列我们首先建立两块一样大小的磁盘7和8,然后分别给他们赋予100MB,格式为fd格式,然后保存,通过fdisk -l查看状态成功。然后我们创建raid1,使用mdadm 建立磁盘阵列,接着使用mdadm -D查看会看到acitv

13、e信息和raid1.然后格式化磁盘,挂载磁盘,会看到磁盘挂载成功。Vi /etc/fstab测试一下重启是否可以正常挂载。制作Raid5首先建立3块磁盘,选择fd格式。创建raid5,然后查看结果。然后格式化挂载即可。修改/etc/fstab后,测试即可。如果要删除raid磁盘阵列,要先卸载挂载,然后删除umount /raid5mdadm -S /dev/md5mdadm -zero-superblock /dev/sdb9.11这边是raid的一些实战,希望对大家有帮助。Linux系统下当原来一块硬盘容量不够用了,需要新添加一块硬盘;或者原来组建RAID磁盘阵列的,现在不需要了,在取消了R

14、AID,重装了系统的情况下,如何使用第二块磁盘此次的情况是原来是2块硬盘组建的RAID1,现在不需要组建RAID了,就取消了RAID,并重装了系统在进入系统后,使用fdisk l命令来查看磁盘状况如下linux_156:/ # fdisk -lDisk /dev/sda: 146.8 GB, 0 bytes255 heads, 63 sectors/track, 17849 cylindersUnits = cylinders of 16065 * 512 = bytesDevice Boot Start End Blocks Id System/dev/sda1 1 2611 82 Linu

15、x swap / Solaris/dev/sda2 * 2612 3917 83 Linux/dev/sda3 3918 17849 f W95 Extd (LBA)/dev/sda5 3918 11319 + 83 Linux/dev/sda6 11320 17847 + 83 LinuxDisk /dev/sdb: 146.8 GB, 0 bytes255 heads, 63 sectors/track, 17849 cylindersUnits = cylinders of 16065 * 512 = bytesDevice Boot Start End Blocks Id System

16、/dev/sdb1 1 262 + 82 Linux swap / Solaris/dev/sdb2 * 263 1568 83 Linux从以上信息,可以很明显的看出,我们有2块硬盘,分别是/dev/sda和/dev/sdb,大小都是146.8G其中磁盘/dev/sda被分为2个主分区和2个逻辑分区大小也差不多是146.8G,但是磁盘/dev/sdb只有2个主分区,其大小也只有12G,不知道为什么丢失了很多空间,我觉得可能是组建RAID1的原因,很多原来的空间未分区,只划分了部分swap分区和装操作系统的/分区,现在有2个办法来解决这个问题:1. 使用fdisk在原来两个分区的基础上,将未被

17、使用的空间重新分区2. 格式化/dev/sdb盘,再重新分区我选择了方法2,因为我觉得原来的那两个分区的数据并没有保留的必要使用mkfs.ext3 /dev/sdb命令格式化磁盘 注:也可以使用mkfs -t ext3 /dev/sdb命令mke2fs 1.38 (30-Jun-2005)/dev/sdb is entire device, not just one partition! 注:系统会提示你/dev/sdb是整个磁盘Proceed anyway? (y,n) y 注:这时选Y就好了,下来就开始格式化以上命令里的ext3,是指将该磁盘格式化成ext3文件系统格式化完成后,我们再使用

18、fdisk l命令来查看磁盘状况:Disk /dev/sda: 146.8 GB, 0 bytes255 heads, 63 sectors/track, 17849 cylindersUnits = cylinders of 16065 * 512 = bytesDevice Boot Start End Blocks Id System/dev/sda1 1 2611 82 Linux swap / Solaris/dev/sda2 * 2612 3917 83 Linux/dev/sda3 3918 17849 f W95 Extd (LBA)/dev/sda5 3918 11319 +

19、 83 Linux/dev/sda6 11320 17847 + 83 LinuxDisk /dev/sdb: 146.8 GB, 0 bytes255 heads, 63 sectors/track, 17849 cylindersUnits = cylinders of 16065 * 512 = bytesDisk /dev/sdb doesnt contain a valid partition table然后我们就可以使用fdisk命令来重新分区fdisk /dev/sdbCommand (m for help): 在这里按m ,就会输出帮助;Command actiona togg

20、le a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partition 注:这是删除一个分区的动作;l list known partition types 注:l是列出分区类型,以供我们设置相应分区的类型;m print this menu 注:m 是列出帮助信息;n add a new partition 注:添加一个分区;o create a new empty DOS partition table p print the partition table 注:p列出分区表

21、;q quit without saving changes 注:不保存退出;s create a new empty Sun disklabel t change a partitions system id 注:t 改变分区类型;u change display/entry units v verify the partition tablew write table to disk and exit 注:把分区表写入硬盘并退出;x extra functionality (experts only) 注:扩展应用,专家功能;从以上的帮助中可以看出,想要添加分区,应该使用n;Command

22、 (m for help): nCommand actione extendedp primary partition (1-4)此时如果选e是建扩展分区,选p建主分区,所以我们选ppPartition number (1-4): 1 注:此处选1,表示是第一主分区First cylinder (1-17849, default 1): 1 注:这个就是分区的Start 值;这里最好直接按回车,如果你输入了一个非默认的数字,会造成空间浪费;Last cylinder or +size or +sizeM or +sizeK (1-17849, default 17849): 8920注:这个是

23、定义分区大小的,+200M 就是大小为200M ;当然你也可以根据上面提示的单位cylinder的大小来算,然后来指定 End的数值,在fdisk l命令中可以看到Units = cylinders of 16065 * 512 = bytes,这个就是单位cylinder的大小,我这里选的End的数值是8920,正好是总大小的一半,71G左右然后再来建一个主分区Command (m for help): nCommand actione extendedp primary partition (1-4)pPartition number (1-4): 2First cylinder (892

24、1-17849, default 8921): 8921Last cylinder or +size or +sizeM or +sizeK (8921-17849, default 17849): 17849最后保存并退出,切记,一定要保存,不然不会生效的Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.OK,我们再使用fdisk l命令来查看磁盘状况:Disk /dev/sda: 146.8 GB, 0 by

25、tes255 heads, 63 sectors/track, 17849 cylindersUnits = cylinders of 16065 * 512 = bytesDevice Boot Start End Blocks Id System/dev/sda1 1 2611 82 Linux swap / Solaris/dev/sda2 * 2612 3917 83 Linux/dev/sda3 3918 17849 f W95 Extd (LBA)/dev/sda5 3918 11319 + 83 Linux/dev/sda6 11320 17847 + 83 LinuxDisk

26、/dev/sdb: 146.8 GB, 0 bytes255 heads, 63 sectors/track, 17849 cylindersUnits = cylinders of 16065 * 512 = bytesDevice Boot Start End Blocks Id System/dev/sdb1 1 8920 + 83 Linux/dev/sdb2 8921 17849 + 83 Linux从上面信息中可以看出,磁盘/dev/sdb已经被划分为2个分区,每个分区大小大概是71G左右,失去的磁盘空间已经被我们找回来了下面我们开始来想办法挂载文件系统,挂载文件系统,目前有两种方

27、法,一是通过 mount 来挂载,另一种方法是通过/etc/fstab文件来开机自动挂载。切记,在挂载文件系统之前,需要将/dev/sdb1和/dev/sdb2重新用mkfs -t ext3 命令格式化一下,否则在挂载时会报错:linux_156:/etc # mount -t ext3 /dev/sdb1 /mnt/data mount: wrong fs type, bad option, bad superblock on /dev/sdb1,missing codepage or other errorIn some cases useful info is found in syslog - trydmesg | tail or solinux_156:/etc # dme

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论