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

[经验分享] Centos6.5使用mdadm安装软RAID

[复制链接]

尚未签到

发表于 2018-4-26 12:41:58 | 显示全部楼层 |阅读模式
  一、RAID 简介
RAID等级最少硬盘最大容错可用容量读取性能写入性能安全性020nnn  一个硬盘异常,全部硬盘都会异常
12n-11n1最高,一个正常即可531n-1n-1n-1高104n/2n/2nn/2安全性高  说明:n 代表硬盘总数
  二、系统环境
  实验环境:VMworkstation10
  系统平台:CentOSrelease 6.5(Final)*64位
  mdadm版本:mdadm- v3.3-6.el6.*86_64(系统以自带)
  三、设置磁盘
  在虚拟机的设置中添加了两块5G的硬盘。
  在Linux系统里使用fdisk –l 命令可以查看。
  四、安装mdadm
  mdadm 是multiple devices admin的简称,它是Linux下的一款标准的软件RAID 管理工具。
  4.1 查看是否安装了mdadm软件
  # rpm -qa|grep mdadm
DSC0000.jpg

  4.2 如果未安装,则使用yum 方式安装。
DSC0001.jpg

  准备工作完毕,下面可以着手创建raid 了。
  五、创建RAID0
  5.1 新建分区
  创建RAID0 需要两块硬盘,所以我们拿/dev/sdb和/dev/sdc 来实验。
  # fdisk/dev/sdb       //对sdb 进行分区
  输入"m", 获取帮助,输入"p",查看分区前磁盘状态,其他Command action 具体含义请自行Google, Baidu。
DSC0002.jpg

  输入"n"新建分区,这里我们将整个磁盘都划分成一个分区,然后输入"p" 查看分区情况。
DSC0003.jpg

  5.2 修改分区类型
  默认新建分区的类型是Linux,代号83,我们需要将其修改为raid 类型。输入"t",然后输入"L" 列出所有的文件格式,这里我们选择"fd Linux raid auto", 输入"fd",然后再输入"p"查看分区情况,这是分区格式已经变成了Linux raid autodetect.
DSC0004.jpg

  5.3 保存分区
  输入"w" 保存分区。
DSC0005.jpg

  使用同样方法对/dev/sdc进行分区操作。
  5.4 同步分区情况
  使用partx /dev/sdc和partx/dev/sdb
  5.5 查看现在的状态
  # fdisk -l /dev/sdb/dev/sdc
DSC0006.jpg

  5.6 开始创建RAID0
  # mdadm -C /dev/md0 -ayes -l0 -n2/dev/sd[b,c]1
DSC0007.jpg

  说明:
  -C  --create  创建阵列;
  -a  --auto   同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-ayes参数一次性创建;
  -l   --level   阵列模式,支持的阵列模式有linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath,faulty, container;
  -n   --raid-devices   阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;
  /dev/md0     阵列的设备名称;
  /dev/sd{b,c}1  参与创建阵列的磁盘名称;
  5.7 查看raid0 状态
  # cat /proc/mdstat
  # mdadm -D /dev/md0
DSC0008.jpg

  说明:Raid Level :阵列级别;

  Array>  Raid Devices :RAID成员的个数;
  Total Devices :RAID中下属成员的总计个数,因为还有冗余硬盘或分区,也就是spare,为了RAID的正常运珩,随时可以推上去加入RAID的;
  State : clean, degraded,recovering 状态,包括三个状态,clean 表示正常,degraded 表示有问题,recovering表示正在恢复或构建;
  Active Devices :被激活的RAID成员个数;
  Working Devices :正常的工作的RAID成员个数;
  Failed Devices :出问题的RAID成员;
  Spare Devices :备用RAID成员个数,当一个RAID的成员出问题时,用其它硬盘或分区来顶替时,RAID要进行构建,在没构建完成时,这个成员也会被认为是spare设备;
  UUID :RAID的UUID值,在系统中是唯一的;
  5.8 创建RAID配置文件/etc/mdadm.conf
  RAID的配置文件为/etc/mdadm.conf,默认是不存在的,需要手工创建。
  该配置文件的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理。但不是必须的,推荐对该文件进行配置。
  我们这里需要创建这个文件,测试中发现,如果没有这个文件,则reboot 后,已经创建好的md0会自动变成md127。
  /etc/mdadm.conf文件内容包括:
  由DEVICE 选项指定用于软RAID的所有设备,和ARRAY选项所指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号。
  5.8.1创建/etc/mdadm.conf
  # echo DEVICE /dev/sd{b,c}1>> /etc/mdadm.conf
  # mdadm –Ds >>/etc/mdadm.conf
  5.9 格式化磁盘阵列
  # mkfs.ext4 /dev/md0
DSC0009.jpg

  5.10 建立挂载点并挂载
  # mkdir /raid0
  # mount /dev/md0/raid0/
DSC00010.jpg

  可以看到,/dev/md0的可用大小为9.9G。
  5.11 写入/etc/fstab
  为了下次开机还能正常使用我们的RAID设备,需要将挂载的信息写入/etc/fstab文件中。
DSC00011.jpg

  5.12配置mdadm开机自启动:
  使用配置文件后,RAID设备在重启后也可以正常的自动加载,因为系统在开机启动时会自动加载RAID。
  #cat /etc/rc.d/rc.sysinit
  # RAID setup
  update_boot_stage RCraid
[ -x /sbin/nash ] && echo "raidautorun /dev/md0" | nash--quiet

  if [ -f /etc/mdadm.conf ]; then
  /sbin/mdadm -A -s
  fi
  然后reboot 测试开机是否自动挂载,raid0创建完毕。
  六、创建RAID1和RAID0的方法是相同的,不再重复叙述。
  七、创建RAID5
  RAID5 至少需要三块硬盘,我们拿/dev/sdf,/dev/sdg, /dev/sdh, /dev/sdi 这四块硬盘来做实验,三块做为活动盘,另一块做为热备盘。
  7.1 新建分区并修改分区类型
  分区结果如下:
DSC00012.jpg

  7.2开始创建RAID5(一下几种方法都可以,我用的第一种)
  # mdadm -C /dev/md5 -ayes -l5 –n3-x1 /dev/sd[f,g,h,i]1
  #mdadm --create --verbose /dev/md0 --level=raid5 --raid-devices=3/dev/sdb /dev/sdc /dev/sdd --spare-devices=1/dev/sde
  #mdadm -Cv /dev/md0 -l5 -n3 /dev/sdb /dev/sdc /dev/sdd -x1/dev/sde
  #mdadm -Cv /dev/md0 0l5 -n3 /dev/sd[bcd] -x1/dev/sde
DSC00013.jpg

  说明:"-x1"或"--spare-devices=1" 表示当前阵列中热备盘只有一块,若有多块热备盘,则将"--spare-devices"的值设置为相应的数目。
  7.3 查看raid5 状态
  # cat /proc/mdstat
  # mdadm -D /dev/md5
DSC00014.jpg

  说明:RebuildStatus : RAID 的构建进度;
  4 8 113 2 spare rebuilding /dev/sdh1注:未被激活,正在构建中的成员,正在传输数据;
  3 8 129 - spare /dev/sdi1 热备盘
  raid5正在创建,而且速度很慢,待创建完毕,状态如下:
DSC00015.jpg

  7.4 添加raid5到RAID配置文件/etc/mdadm.conf 并修改
  # echo DEVICE /dev/sd{f,g,h,i}1>> /etc/mdadm.conf
  # mdadm –Ds >>/etc/mdadm.conf
DSC00016.jpg

  7.5 格式化磁盘阵列
  # mkfs.ext4 /dev/md5
DSC00017.jpg

  7.6 建立挂载点并挂载
  # mkdir /raid5
  # mount /dev/md5/raid5/
DSC00018.jpg

  raid5 的可用大小为9.9G,即(3-1)x5G.
  向 /raid5 里面写入测试数据:
  # touch test_raid5.failed
  # touch test_raid5.fail
  # ls
DSC00019.jpg

  7.7 写入 /etc/fstab
DSC00020.jpg

  然后reboot 测试开机是否自动挂载,raid5创建完毕。
  7.82配置mdadm开机自启动:
  使用配置文件后,RAID设备在重启后也可以正常的自动加载,因为系统在开机启动时会自动加载RAID。
  #cat /etc/rc.d/rc.sysinit
  # RAID setup
  update_boot_stage RCraid
[ -x /sbin/nash ] && echo "raidautorun /dev/md0" | nash--quiet

  if [ -f /etc/mdadm.conf ]; then
  /sbin/mdadm -A -s
  fi
  八、RAID维护
  RAID做好之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid5中磁盘损坏来讲解软RAID 的维护操作。
  8.1 模拟磁盘损坏
  在实际中,当软RAID检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。在这里我们将/dev/sdh1模拟为出现故障的磁盘,命令如下:
  # mdadm /dev/md5 -f/dev/sdh1
DSC00021.jpg

  8.2 查看重建状态
  在上面创建RAID5过程中,我们设置了一个热备盘,所以当有标记为故障磁盘的时候,热备盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过查看"/proc/mdstat"文件可以看到当前阵列的状态,如下:
DSC00022.jpg

  以上信息表明阵列正在重建,当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以(F),如"sdh1[4](F)"。
  其中 "[3/2]"的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为目前有一个故障设备,所以第二位数为2;
  这时的阵列以降级模式运行,虽然该阵列仍然可用,但是不具有数据冗余;
  而 "[UU_]"表示当前阵列可以正常使用的设备是/dev/sdf1 和/dev/sdg1,如果是设备 “/dev/sdf1”出现故障时,则将变成[_UU]。
  8.3 查看之前写入的测试数据是否还在
DSC00023.jpg

  数据正常,未丢失。
  8.4 重建完毕后查看阵列状态
DSC00024.jpg

  当前的RAID 设备又恢复了正常。
  8.5 移除损坏的磁盘
  移除刚才模拟出现故障的/dev/sdh1,操作如下:
DSC00025.jpg

  8.6 再次查看md5的状态
DSC00026.jpg

  /dev/sdh1 已经移除了。
  8.7 新加热备磁盘
  如果是实际生产中添加新的硬盘,同样需要对新硬盘进行创建分区的操作,这里我们为了方便,将刚才模拟损坏的硬盘再次新加到raid5中。
DSC00027.jpg

  8.8 查看raid5 阵列状态
DSC00028.jpg

  /dev/sdh1 已经变成了热备盘。
  8.9 查看测试数据
DSC00029.jpg

  数据正常,未丢失。故障切换测试完毕。
  九、向RAID中增加存储硬盘
  如果现在已经做好的RAID空间还是不够用的话,那么我们可以向里面增加新的硬盘,来增加RAID 的空间。
  9.1 在虚拟机中添加物理硬盘
  上面我们已经在虚拟机中添加了八块硬盘,这里需要模拟新增硬盘,所以首先将虚拟机关闭,然后在存储里再次新增一块5GB的硬盘。然后分区等等操作,这里不再赘述。
  9.2 向RAID 中新加一块硬盘略
  # mdadm /dev/md5 -a/dev/sdj1
DSC00030.jpg

  查看此时的RAID 状态
DSC00031.jpg

  默认情况下,我们向RAID中增加的磁盘,会被默认当作热备盘,我们需要把热备盘加入到RAID 的活动盘中。
  9.3 热备盘转换成活动盘
  # mdadm -G /dev/md5-n4
DSC00032.jpg

  查看此时RAID 状态
DSC00033.jpg


  /dev/sdj1 已经变成了活动盘,但是Array>  等RAID 完成构建后,RAID的容量就会改变为(4-1)x5GB,查看进度可以参考Reshape Status,也可以参考/proc/mdstat.
DSC00034.jpg

  构建完毕后的RAID 状态:
DSC00035.jpg


  Array>  9.4 扩容文件系统
  RAID构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。
  # df –TH
  # resize2fs /dev/md5
  # df –TH
DSC00036.jpg

  文件系统已经扩容到15G,而且测试数据正常,未丢失,新增物理硬盘成功。
  9.5 修改RAID配置文件/etc/mdadm.conf
DSC00037.jpg

  9.6 reboot 测试
DSC00038.jpg

  重启系统后,一切正常,Linux下配置软RAID成功。
  十、停止与开启RAID设备:
  停止:
  #umount /mnt/raid
  #mdadm -S /dev/md0
  mdadm: stopped /dev/md0
  开启:
  使用配置文件时:
  #mdadm -As /dev/md0
  mdadm: /dev/md0 has been started with 3 drives and 1 spare.
  没有使用配置文件时:
  #mdadm -A /dev/md0 /dev/sd[bcde]
  mdadm: /dev/md0 has been started with 3 drives and 1 spare.
  mdadm中文man(引用)
  基本语法 : mdadm [mode] [options]
[mode] 有7种:

  Assemble:将以前定义的某个阵列加入当前在用阵列。
  Build:Build a legacy array ,每个device 没有superblocks
  Create:创建一个新的阵列,每个device 具有 superblocks
  Manage: 管理阵列,比如 add 或 remove
  Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或终止在用的阵列。
  Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态
  Grow:改变raid 容量或 阵列中的 device 数目
  可用的 [options]:
  -A, --assemble:加入一个以前定义的阵列
  -B, --build:Build a legacy array withoutsuperblocks.
  -C, --create:创建一个新的阵列
  -Q, --query:查看一个device,判断它为一个 md device 或是 一个 md阵列的一部分
  -D, --detail:打印一个或多个 md device 的详细信息
  -E, --examine:打印 device 上的 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/mdadm.conf
  -s, --scan:扫描配置文件或/proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.conf
  create 或 build 使用的选项:

  -c, --chunk=:Specify chunk>  --rounding=: Specify rounding factor for linear array (==chunksize)
  -l, --level=:设定 raid level.
  --create可用:linear, raid0, 0, stripe, raid1,1, mirror, raid4, 4,raid5, 5, raid6, 6, multipath, mp.
  --build可用:linear, raid0, 0, stripe.
  -p, --parity=:设定 raid5 的奇偶校验规则:eft-asymmetric, left-symmetric,right-asymmetric, right-symmetric, la, ra, ls,rs.缺省为left-symmetric
  --layout=:类似于--parity
  -n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow修改
  -x, --spare-devices=:指定初始阵列的富余device 数目
  -z, --size=:组建RAID1/4/5/6后从每个device获取的空间总数
  --assume-clean:目前仅用于 --build 选项
  -R,--run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。
  -f, --force:通常mdadm不允许只用一个device创建阵列,而且创建raid5时会使用一个device作为missing drive。此选项正相反。
  -a,--auto{=no,yes,md,mdp,part,p}{NN}:

运维网声明 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-452314-1-1.html 上篇帖子: 一、Centos6.7编译安装apache2.4.9 下篇帖子: centos6.5安装open-falcon笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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