centos -- how to add a new disk into a mdadm raid5 /dev/md0 which lost a /dev/sdc1 disk and  revoery at another machine?

  1. fdisk -l
  2.  
  3. mdadm --stop /dev/md0

  4. # to force active the raid by remaind 3 disks.
  5. mdadm -A --force /dev/md0 /dev/sdb1 /dev/sde1 /dev/sdd1

  6. # add a new disk into /dev/md0
  7. mdadm --manage /dev/md0 --add /dev/sdc1

------------------------------------------------------------------------------------------------------

we build a /dev/md0 on  a Unitek (removeable usb storadge with 4 disks inside) by mdadm software, and  mdadm -create /dev/md0 operated on a HUAWEI server,  our recovery work was done on my laptop ,and we meet many many problems during recovery.

we miss a disk --/dev/sdc1 from the raid /dev/md0, and now have a new disk -- same compable with the lost /dev/sbc1, on hand.

and then our joury is startiing

  • check /dev list

  ll /dev/

  nothing about /dev/md0 .

  • check /dev/md0 state :

  cat /proc/mdstat

  1. Personalities :
  2. unused devices: <none>

  ...nothing( for this is a  totally new machine to the /dev/md0 no conf file ,no superblock...)

  • we  try force mdadm to  assembly to force mdadm auto recovery itself:

     mdadm --assemble --run --force /dev/md0

  1. mdadm -A --force /dev/md0 /dev/sdb1 /dev/sde1 /dev/sdd1

we get "can't open /dev/md0 array info" or "/dev/sdb1 is busying" and many other error response info;

  • then we try add a new disk into
  1. mdadm --manage /dev/md0 --add /dev/sdc1
  2. mdadm: Cannot get array info for /dev/md0
  • try get into manage mode, can't get config file
  1. [root@localhost dev]# mdadm --assemble /dev/md0 --scan --force
    mdadm: /dev/md0 not identified in config file.
  • a key operated is coming, and lead us to a success result.
    all the steps above, we  NOT stop the /dev/md0 and get many wrong try and get many failed resulte.
  1. mdadm --stop /dev/md0
    mdadm: stopped /dev/md0
  1. [root@localhost dev]# mdadm --assemble /dev/md0 --scan --force
  2. mdadm: /dev/md0 not identified in config file.
  3. [root@localhost dev]# cat /proc/mdstat
  4. Personalities :
  5. unused devices: <none>

mdadm --force start by remain 3 disks, and add a new disk into /dev/md0, and get into recovery state.

  1. [root@localhost dev]# mdadm -A --force /dev/md0 /dev/sdb1 /dev/sde1 /dev/sdd1
  2. mdadm: /dev/md0 has been started with drives (out of ).
  3. [root@localhost dev]# mdadm --manage /dev/md0 --add /dev/sdc1
  4. mdadm: added /dev/sdc1
  5. [root@localhost dev]# cat /proc/mdstat
  6. Personalities : [raid6] [raid5] [raid4]
  7. md0 : active raid5 sdc1[] sdd1[] sde1[] sdb1[]
  8. blocks super 1.2 level , 512k chunk, algorithm [/] [U_UU]
  9. [>....................] recovery = 0.0% (/) finish=.3min speed=36955K/sec
  10. bitmap: / pages [0KB], 65536KB chunk
  11.  
  12. unused devices: <none>

conclusion:

  • remember to stop /dev/md0 at first step, then do other operates;
  • mdadm create raid5 array, every raid array info were storaged at every physical disk , no matter how their position was changed, madadm can recognize the correct raid array info.
  • mdadm is realy a stronger sofeware at protect our data, if use correctly  we need not worry about our data's safety --- if only lost ONE disk, we can find them back;

-----other relate info reference

1. http://blog.csdn.net/waityoualife/article/details/5612243

mdadm Raid5 /dev/md0 lost a disk and recovery from another machine的更多相关文章

  1. vmware启动虚拟机报错VMware Workstation has paused this virtual machine because the disk on which the virtual machine is stored is almost full. To continue, free an additional 1.4 GB of disk space.

    报错VMware Workstation has paused this virtual machine because the disk on which the virtual machine i ...

  2. How to Add Memory, vCPU, Hard Disk to Linux KVM Virtual Machine

    ref: https://www.thegeekstuff.com/2015/02/add-memory-cpu-disk-to-kvm-vm/ In our previous article of ...

  3. the algebra of modulo-2 sums disk failure recovery

    x=y x_+_y=0 The bit in any position is the modulo-2 sum of all the bits in the corresponding positio ...

  4. 使用mdadm创建磁盘RAID10整列,RAID5出现故障,自动替换硬盘

    首先需了解mdadm的参数使用 . 第一步: 先在虚拟机中添加四块硬板 第二步:使用mdadm命令创建RAID10名称为"/dev/md0" -C代表创建操作,v 显示创建过程,- ...

  5. 专题:mdadm Raid & LVM

    >FOR FREEDOM!< {A} Introduction Here's a short description of what is supported in the Linux R ...

  6. mdadm命令详解及实验过程

    一.概念 mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown 二.特点 mdadm能够诊断.监控和收集详细 ...

  7. mdadm语法

    mdadm命令详解及实验过程   一.概念 mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown 二.特点 ...

  8. [daily][archlinux][mdadm][RAID] 软RAID

    一, 使用mdadm创建RAID 参考:https://wiki.archlinux.org/index.php/RAID 1.  安装 mdadm /home/tong [tong@TStation ...

  9. mdadm详细使用手册

    1. 文档信息 当前版本 1.2 创建人 朱荣泽 创建时间 2011.01.07 修改历史 版本号 时间 内容 1.0 2011.01.07 创建<mdadm详细使用手册>1.0文档 1. ...

随机推荐

  1. Tile Cut~网络流入门题

    Description When Frodo, Sam, Merry, and Pippin are at the Green Dragon Inn drinking ale, they like t ...

  2. lwIP内存管理机制

    lwip的内存管理机制,我们以enet_lwip这个例程为例. 在使用lwip的时候,我们可以使用两种形式的内存,一种是heap(mem.c文件-mem_malloc()),一种是pool(memp. ...

  3. auto login vpnclient bat

    @echo offstart "" /b "C:\Program Files (x86)\Cisco Systems\VPN Client\vpngui.exe" ...

  4. Spring学习-- SpEL表达式

    Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言. 语法类似于 EL:SpEL 使用 #{...} 作为定界符 , 所有在大括号中的字符都将被认为是 SpE ...

  5. lesson 4 再谈继承多态,抽象类和接口

    再谈多态,抽象类和接口 上一次博客已经概念性的概述了继承多态,抽象类和接口,这次来具体的谈一谈他们之间的联系和需要注意的地方. 一.继承和多态:Inheritance (继承) & Polym ...

  6. #error,在xib文件中拷贝按钮所造成的错误.

    https://www.evernote.com/shard/s227/sh/3e35a7b3-f40c-46df-8ae0-e7522310c18b/742311974127f12eaafae07a ...

  7. bzoj 2659 几何

    首先考虑(0, 0)到(p, q)这条直线. y = q / p * x. sum{k = 0 to (p - 1) / 2} [q / p * k] 就是直线下方的点数.sum{k = 0 to ( ...

  8. requests上传文件

    """ requests上传文件时,如果文件名是中文,会导致上传失败,参考:https://www.cnblogs.com/liaofeifight/p/5807901. ...

  9. locust===Writing a locustfile

    The Locust class A locust class represents one user (or a swarming locust if you will). Locust will ...

  10. textbox自动提示

    AutoCompleteStringCollection myCutomSource = new AutoCompleteStringCollection();            myCutomS ...