扫一扫,访问微社区

新浪微博登陆

只需一步, 快速开始

登录 | 加入雨荷 | 找回密码

数据恢复,winhex视频,数据恢复培训,硬盘数据恢复,raid0,raid1,raid5数据恢复,雨荷数据

 找回密码
 加入雨荷

扫一扫,访问微社区

新浪微博登陆

只需一步, 快速开始

总共6090条微博

动态微博

查看: 4944|回复: 11

Linux下软件RAID的实现-raidtools

  [复制链接]
  • TA的每日心情
    慵懒
    2013-10-17 22:20
  • 签到天数: 7 天

    [LV.3]偶尔蹭饭

    新浪微博达人勋

    发表于 2009-7-13 02:45:28 | 显示全部楼层 |阅读模式
    Linux下软件RAID的实现-raidtools 作为网络操作系统,冗余磁盘阵列(Redundant Array of Inexpensive Disks,简称RAID)功能是必备的功能之一。从Linux 2.4内核开始,Linux就提供软件RAID,不必购买昂贵的硬件RAID控制器和附件(一般中、高挡服务器都提供这样的设备和热插拔硬盘),就能极大 地增强Linux磁盘的I/O性能和可靠性。同时,它还具有将多个较小的磁盘空间组合成一个较大磁盘空间的功能。这里的软件RAID不是指在单个物理硬盘 上实现RAID功能。为提高RAID的性能,最好还是使用多个硬盘,使用SCSI接口的硬盘效果会更好。

    RAID作用及主要使用类型

    RAID将普通硬盘组成一个磁盘阵列,在主机写入数据时,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据 时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。由于采用并行读写操作,从而提高了存储系统的存取程度。此 外,RAID磁盘阵列更主要的作用是,可以采用镜像、奇偶校验等措施来提高系统的容错能力,保证数据的可靠性。一般在安装Linux操作系统时可以根据需 要进行RAID的安装配置。

    在使用Linux操作系统的过程中,也可以根据应用的需要,用手工方法进行RAID的配置。配置前提是必须已经安装raidtools工具包。该包可以从 http://people.redhat.com/mingo/raidtools处下载最新版raidtools- 1.00.3.tar.gz ,然后用root用户解压缩包然后输入以下命令:

    # cd raidtools-1.00.3
    # ./configure
    # make
    # make install



    这样raidtools-1.00.3就安装好了,从而可以随时安装使用RAID。

    在Linux系统中,主要提供RAID 0、RAID 1、RAID 5三种级别的RAID方法。RAID 0又称为Stripe或Striping,中文译为集带工作方式。它是将要存取的数据以条带状形式尽量平均分配到多个硬盘上,读写时多个硬盘同时进行读 写,从而提高数据的读写速度。RAID 0另一目的是获得更大的“单个”磁盘容量。

    RAID 1又称为Mirror或Mirroring,中文译为镜像方式。这种工作方式的出现完全是为了数据安全考虑的,它是把用户写入硬盘的数据百分之百地自动复 制到另外一个硬盘上或硬盘的不同地方(镜像)。当读取数据时,系统先从RAID 1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中 断。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。

    RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,也是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验 (异或运算),校验数据平均分布在每块硬盘上。以n块硬盘构建的RAID 5阵列可以有n-1块硬盘的容量,存储空间利用率非常高。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID 5的任何一块硬盘上的数据丢失,均可以通过校验数据推算出来。RAID 5具有数据安全、读写速度快,空间利用率高等优点,应用非常广泛。其不足之处是如果1块硬盘出现故障以后,整个系统的性能将大大降低。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低,而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。

    RAID在Linux下的创建过程

    在实际使用过程中,一般都是使用多个单独的磁盘建立RAID,当然也可以使用单个磁盘建立RAID,具体步骤类似。在此,我以使用单个磁盘建立RAID为例进行介绍。

    1.以root用户登录

    2.使用fdisk工具创建RAID分区

    (1)fdisk /dev/hda,这里假定IDE1主接口上的硬盘有剩余空间。

    (2)使用命令n创建多个大小相同的新分区,若建立RAID 0或RAID 1分区数至少要大于等于2, RAID 5分区数至少大于等于3。n—起始柱面(可直接按回车)—分区大小;重复以上过程到想创建的RAID分区数为止。结果如下所示:

    disk /dev/hda: 240 heads, 63 sectors, 3876 cylinders
    Units = cylinders of 15120 * 512 bytes

    Device Boot Start End Blocks Id System
    /dev/hda1 * 1 1221 9230728+ c Win95 FAT32 (LBA)
    /dev/hda2 1222 1229 60480 83 Linux
    /dev/hda3 1230 1906 5118120 83 Linux
    /dev/hda4 1907 3876 14893200 f Win95 Ext'd (LBA)
    /dev/hda5 1907 1960 408208+ 82 Linux swap
    /dev/hda6 1961 2231 2048728+ b Win95 FAT32
    /dev/hda7 2709 3386 5125648+ b Win95 FAT32
    /dev/hda8 3387 3876 3704368+ 7 HPFS/NTFS
    /dev/hda9 2232 2245 105808+ 83 Linux
    /dev/hda10 2246 2259 105808+ 83 Linux
    /dev/hda11 2260 2273 105808+ 83 Linux
    /dev/hda12 2274 2287 105808+ 83 Linux



    使用n命令创建4个Linux分区后,用命令p显示分区情况。这里/dev/hda9、/dev/hda10、/dev/hda11、/dev/hda12为创建的4个Linux分区。

    (3)使用命令t改变分区类型为software raid类型。t—分区号—fd(分区类型);重复以上过程。修改分区类型后如下所示:

    /dev/hda9 2232 2245 105808+ fd Linux raid autodetect
    /dev/hda10 2246 2259 105808+ fd Linux raid autodetect
    /dev/hda11 2260 2273 105808+ fd Linux raid autodetect
    /dev/hda12 2274 2287 105808+ fd Linux raid autodetect



    (4)使用命令w保存分区表。

    3.重新启动使分区表生效

    4.使用man raidtab查看配置文件结构

    5.使用编辑命令将配置文件内容写入 /etc/raidtab

    如下所示:

    raiddev /dev/md0
    raid-level 5
    nr-raid-disks 3
    nr-spare-disks 1
    persistent-superblock 1
    parity-algorithm left-symmetric
    chunk-size 8

    device /dev/hda9
    raid-disk 0
    device /dev/hda10
    raid-disk 1
    device /dev/hda11
    raid-disk 2
    device /dev/hda12
    spare-disk 0



    这里创建RAID-5,使用3个RAID磁盘,1个备用磁盘。注意“chunk-size 8”一句不能少,指定RAID-5使用的块大小为8KB。RAID-5卷会以8KB的块写入其组成分区,即RAID卷的第一个8KB在hda9上,第二个 8KB在hda10上,依此类推。设备名可为md0或md1等。“spare-disk”磁盘主要起备用作用,一旦某一磁盘损坏可以立即顶上,这里也可以 不要。

    6.使用mkraid /dev/md0创建RAID阵列

    这里md表示创建的是RAID磁盘类型。结果如下所示:

    [root@localhost root]# mkraid /dev/md0
    handling MD device /dev/md0
    analyzing super-block
    disk 0: /dev/hda9, 105808kB, raid superblock at 105728kB
    disk 1: /dev/hda10, 105808kB, raid superblock at 105728kB
    disk 2: /dev/hda11, 105808kB, raid superblock at 105728kB
    disk 3: /dev/hda12, 105808kB, raid superblock at 105728kB
    md0: WARNING: hda10 appears to be on the same physical disk as hda9. True
    protection against single-disk failure might be compromised.
    md0: WARNING: hda11 appears to be on the same physical disk as hda10. True
    protection against single-disk failure might be compromised.
    md0: WARNING: hda12 appears to be on the same physical disk as hda11. True
    protection against single-disk failure might be compromised.
    md: md0: RAID array is not clean -- starting background reconstruction
    8regs : 2206.800 MB/sec
    32regs : 1025.200 MB/sec
    pII_mmx : 2658.400 MB/sec
    p5_mmx : 2818.400 MB/sec
    raid5: using function: p5_mmx (2818.400 MB/sec)
    raid5: raid level 5 set md0 active with 3 out of 3 devices, algorithm 2



    7.使用 lsraid -a /dev/md0 查看RAID分区状况

    结果如下所示:

    [root@localhost root]# lsraid -a /dev/md0
    [dev 9, 0] /dev/md0 86391738.19BEDD09.8F02C37B.51584DBA online
    [dev 3, 9] /dev/hda9 86391738.19BEDD09.8F02C37B.51584DBA good
    [dev 3, 10] /dev/hda10 86391738.19BEDD09.8F02C37B.51584DBA good
    [dev 3, 11] /dev/hda11 86391738.19BEDD09.8F02C37B.51584DBA good
    [dev 3, 12] /dev/hda12 86391738.19BEDD09.8F02C37B.51584DBA spare



    8.mkfs.ext3/dev/md0将RAID分区格式化为ext3格式

    结果如下所示:

    [root@localhost root]# mkfs.ext3 /dev/md0
    mke2fs 1.27 (8-Mar-2002)
    Filesystem label=
    OS type: Linux
    Block size=1024 (log=0)
    Fragment size=1024 (log=0)
    53040 inodes, 211456 blocks
    10572 blocks (5.00%) reserved for the super user
    First data block=1
    26 block groups
    8192 blocks per group, 8192 fragments per group
    2040 inodes per group
    Superblock backups stored on blocks:
    8193, 24577, 40961, 57345, 73729, 204801

    raid5: switching cache buffer size, 4096 --> 1024
    Writing inode tables: done
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information:
    done

    This filesystem will be automatically checked every 22 mounts or
    180 days, whichever comes first. Use tune2fs -c or -i to override.



    9.mount /dev/md0 /mnt/md0

    这里应首先在mnt目录下创建md0子目录。

    至此,所有创建工作完成,md0目录就成为具有RAID作用的一个目录。

    检验RAID的效果

    我们可以使用以下步骤检验RAID的效果。

    1.dd if=/dev/zero of=/dev/hda9 bs=100000000 count=10

    将RAID的第一个磁盘分区hda9全部置0;bs表示一次写多少位,count表示写多少次。这里一定要使写入的数据大于磁盘分区的容量,否则由于RAID的作用,数据会自动恢复原有值。如下所示:

    [root@localhost root]
    # dd if=/dev/zero of=/dev/hda9 bs=100000000 count=10
    dd: writing `/dev/hda9': No space left on device
    2+0 records in
    1+0 records out



    2.用lsraid -a /dev/md0查看到/dev/hda9数据全为0

    如下所示:

    [root@localhost root]# lsraid -a /dev/md0
    lsraid: Device "/dev/hda9" does not have a valid raid superblock
    lsraid: Device "/dev/hda9" does not have a valid raid superblock
    lsraid: Device "/dev/hda9" does not have a valid raid superblock
    lsraid: Device "/dev/hda9" does not have a valid raid superblock
    [dev 9, 0] /dev/md0 86391738.19BEDD09.8F02C37B.51584DBA online
    [dev ?, ?] (unknown) 00000000.00000000.00000000.00000000 missing
    [dev 3, 10] /dev/hda10 86391738.19BEDD09.8F02C37B.51584DBA good
    [dev 3, 11] /dev/hda11 86391738.19BEDD09.8F02C37B.51584DBA good
    [dev 3, 12] /dev/hda12 86391738.19BEDD09.8F02C37B.51584DBA spare



    3.raidstop /dev/md0

    4.raidstart /dev/md0

    则/dev/hda9的数据恢复正常,说明RAID的数据校验功能已起作用。

    在使用Linux的过程中,可以随时创建RAID来提高数据的可靠性和I/O性能,甚至可以将多个硬盘剩余的较小空间组合成一个较大空间。

    该用户从未签到

    新浪微博达人勋

    发表于 2009-9-21 19:31:00 | 显示全部楼层
    介绍得比较详细,多谢楼主分享!!
  • TA的每日心情
    无聊
    2016-6-20 16:42
  • 签到天数: 13 天

    [LV.3]偶尔蹭饭

    新浪微博达人勋

    发表于 2009-11-3 23:20:09 | 显示全部楼层
  • TA的每日心情
    开心
    2016-2-7 18:53
  • 签到天数: 10 天

    [LV.3]偶尔蹭饭

    新浪微博达人勋

    发表于 2010-5-19 14:57:40 | 显示全部楼层
    这么多哲理不知道要研究多久呢?:63|

    该用户从未签到

    新浪微博达人勋

    发表于 2010-7-31 22:57:31 | 显示全部楼层
    这么多哲理不知道要研究多久呢?

    该用户从未签到

    新浪微博达人勋

    发表于 2010-7-31 22:58:19 | 显示全部楼层
    这么多哲理不知道要研究多久呢?

    该用户从未签到

    新浪微博达人勋

    发表于 2010-7-31 22:59:37 | 显示全部楼层
    这么多哲理不知道要研究多久呢?
  • TA的每日心情
    奋斗
    2014-5-12 11:30
  • 签到天数: 136 天

    [LV.7]伴坛终老

    新浪微博达人勋

    发表于 2011-10-17 11:43:07 | 显示全部楼层
    看来xfs还是要好好研究的
  • TA的每日心情
    奋斗
    2014-5-23 21:37
  • 签到天数: 172 天

    [LV.7]伴坛终老

    新浪微博达人勋

    发表于 2013-7-21 15:20:11 | 显示全部楼层
  • TA的每日心情
    开心
    2017-2-2 08:54
  • 签到天数: 64 天

    [LV.6]站长亲人

    新浪微博达人勋

    发表于 2013-7-21 16:25:55 | 显示全部楼层

    该用户从未签到

    新浪微博达人勋

    发表于 2014-6-12 02:19:31 | 显示全部楼层
    谢谢了饿~~~~~~~












    12V9A电源适配器价格

    该用户从未签到

    新浪微博达人勋

    发表于 2016-9-17 11:23:54 | 显示全部楼层
    蚂蚁金服 蚂蚁花呗套现 蚂蚁花呗提现 花呗论坛 蚂蚁花呗取现 白条 任性付套现 认准老字号
    huabeigan.com【玩转花呗论坛】
    mayihuabeii.com【玩转花呗官网】

    官方认证客服:
    壹号客服QQ : 3266885718
    贰号客服QQ:3014579034
    发表回复
    您需要登录后才可以回帖 登录 | 加入雨荷 新浪微博登陆

    本版积分规则

    Copyright © 2001-2015 All Rights Reserved雨荷数据安全技术论坛 陕ICP备08105630

    QQ|申请友链|小黑屋|手机版|Archiver|雨荷数据安全技术论坛 ( 陕ICP备17009169号

    快速回复 返回顶部 返回列表