设为首页 收藏本站
查看: 183|回复: 0

[经验分享] RAID阵列的实现

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-1 09:17:06 | 显示全部楼层 |阅读模式
RAID阵列的组成原理:

   1.RAID:Redundant Arrays of Independent Disks 独立冗余磁盘阵列
          1)提高IO能力,提高耐用性
          2)级别:即多块磁盘组织在一起的工作方式不同
          3)RAID实现的方式:
                      外接式磁盘阵列:通过扩展适配器提供适配能力
                      内接式RAID(软RAID):主板集成RAID控制器
          4)RAID的级别:
                      RAID-0:条带卷
                      RAID-1:镜像卷
                      ...
                      RAID-5:校验码存盘
                      RAID10:从底层开始先镜像,后条带(企业专用)
                      RAID01:从底层开始先条带,后镜像
                      JBOD:简单的将多个盘连接成一个大盘的技术
   2.RAID-0:
   读、写性能提升;
   可用空间:N*min(S1,S2,...)
   无容错能力
   最少磁盘数:2, 2+
     RAID-1:
   读性能提升、写性能略有下降;
   可用空间:1*min(S1,S2,...)
   有冗余能力
   最少磁盘数:2, 2+
  RAID-4:
   1101, 0110, 1011
  RAID-5:
   读、写性能提升
   可用空间:(N-1)*min(S1,S2,...)
   有容错能力:1块磁盘
   最少磁盘数:3, 3+
  RAID-6:
   读、写性能提升
   可用空间:(N-2)*min(S1,S2,...)
   有容错能力:2块磁盘
   最少磁盘数:4, 4+
  
  混合类型
   RAID-10:
    读、写性能提升
    可用空间:N*min(S1,S2,...)/2
    有容错能力:每组镜像最多只能坏一块;
    最少磁盘数:4, 4+
   
   JBOD:Just a Bunch Of Disks
    功能:将多块磁盘的空间合并一个大的连续空间使用;
    可用空间:sum(S1,S2,...)

软RAID的实现原理及相关命令的介绍
   1.内核中有个模块md:multidisks,借此实现了软RAID
   2.这个模块有其特有的管理工具:mdadm。
     这是个模式化的工具,首先它的语法格式为:
     mdadm [mode] [raiddevice] [options] <component-devices>
    支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;
    模式:
      创建:-C
      装配: -A
      监控: -F
      管理:-f, -r, -a
     <raiddevice>: /dev/md#
     <component-devices>: 任意块设备

     -C: 创建模式
      -n #: 使用#个块设备来创建此RAID;
      -l #:指明要创建的RAID的级别;
      -a {yes|no}:自动创建目标RAID设备的设备文件;
      -c CHUNK_SIZE: 指明块大小;
      -x #: 指明空闲盘的个数;
   
     -D:显示raid的详细信息;
      mdadm -D /dev/md#
     管理模式:
      -f: 标记指定磁盘为损坏;
      -a: 添加磁盘
      -r: 移除磁盘
     观察md的状态:
      cat /proc/mdstat
     停止md设备:
      mdadm -S /dev/md#
    watch命令:
     -n #: 刷新间隔,单位是秒;
     watch -n# 'COMMAND'                           

软RAID实践操作:
1.首先我们要准备4个分区,其中三个用于RAID5的组成部分,剩余一个用于做空闲的RAID磁盘,防止RAID5中一块硬盘发生错误时,能够及时的顶替上。
[iyunv@localhost ~]# fdisk /dev/sda
Command (m for help): n
First cylinder (8513-15665, default 8513): 5
Value out of range.
First cylinder (8513-15665, default 8513):
Using default value 8513
Last cylinder, +cylinders or +size{K,M,G} (8513-15665, default 15665): +5G

Command (m for help): t
Partition number (1-7): 5
Hex code (type L to list codes): fd
Changed system type of partition 5 to fd (Linux raid autodetect)

Command (m for help): p
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008ea5a
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sda3            7859        8512     5252256   fd  Linux raid autodetect
/dev/sda4            8513       15665    57456472+   5  Extended
/dev/sda5            8513        9166     5253223+  fd  Linux raid autodetect
/dev/sda6            9167        9820     5253223+  fd  Linux raid autodetect
/dev/sda7            9821       10474     5253223+  fd  Linux raid autodetect
通过以上命令准备好我们将要使用的分区
[iyunv@localhost ~]# partx -a /dev/sda

2.接着我们就要创建RAID5了
   [iyunv@localhost ~]# mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda{3,5,6,7}
  查看系统中的md设备
   [iyunv@localhost ~]# cat /proc/mdstat
   在这个过程中会做recovery的过程,起作用是
    要对raid的磁盘做按位对齐处理,使得raid有冗余能力,能够做按位异或处理
  这样我们的硬件设备就处理好了,接着就要进行格式化处理
  [iyunv@localhost ~]# mke2fs -t ext4 /dev/md0
  进行挂载
  [iyunv@localhost ~]# mkdir /mydata
  [iyunv@localhost ~]# mount /dev/md0 /mydata
  查看创建的相关信息
  [iyunv@localhost ~]# df -lh
  [iyunv@localhost ~]# blkid /dev/md0
  这样一个完整的,有工作能力的RAID5就完成了
2.如果我们人为地破坏其中一个分区,那么会有什么情况发生呢?
   [iyunv@localhost ~]# mdadm /dev/md0 -f /dev/sda7
   此时RAID会自动进行同步恢复的,查看命令为:
   [iyunv@localhost ~]# cat /proc/mdstat
   如果想要动态的查询,则可使用watch命令
   [iyunv@localhost ~]# watch -n 1 `cat /proc/mdstat`
   此时再查看此RAID,会发现此时坏了的硬盘已经被空闲盘替换上了
   [iyunv@localhost ~]# mdadm -D /dev/md0
   注意,此时的RAID5仍然可以容纳一块硬盘发生损坏,此时为降级使用RAID设备
   [iyunv@localhost ~]# mdadm /dev/md0 -r /dev/sda6
3.在已经设定好的RAID上在家硬盘,那么只能作为空闲盘来使用,要使其成为RAID5中的一部分,需要使用grow自命令,但在此处就不再赘述了,毕竟不是很重要!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108173-1-1.html 上篇帖子: lvm2的创建,挂载,扩展以及删减等操作的完成步骤 下篇帖子: 程序包的管理,以及软件的安装和管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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