* Help! I killed my mdadm raid 5 @ 2010-11-18 19:51 p3-500 2010-11-19 1:32 ` Leslie Rhorer 2010-11-19 7:58 ` Neil Brown 0 siblings, 2 replies; 5+ messages in thread From: p3-500 @ 2010-11-18 19:51 UTC (permalink / raw) To: linux-raid@vger.kernel.org Arrg, Major goof. I managed to kill my raid 5 through my own stupidity. Here is the chain of events, Your help is greatly appreciated. I added disk #6 to my working 5 disk array, after about 24 hours it was done but i did not see the extra space (I now know all I needed to do was fsck and resize). I failed and removed the new disk from the array then somehow also failed and removed drive # 5 from the array. At this point the array was still running so I added drive #5 & 6 back to the array but they got added as spares instead of active components. next I rebooted and could not assemble the array. I tried --assemble and --assemble --force which results with "mdadm: /dev/md0 assembled from 4 drives and 1 spare - not enough to start the array". I am naming all 6 drives on the command line. Several posts have suggested I --create the array again but I am hesitant to do this as I do not want to lose my data. The wiki suggests mkraid --force but I believe this is deprecated? It also requires an up to date /etc/raidtab which I do not have. Before I mess it up any more here's where I am. mdadam --examine /dev/sda2,b2,c2,d2,e,f server2@server2:~$ sudo mdadm --examine /dev/sda2 [sudo] password for server2: /dev/sda2: Magic : a92b4efc Version : 00.90.00 UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc Creation Time : Sat Feb 6 17:37:20 2010 Raid Level : raid5 Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) Array Size : 9762689600 (9310.43 GiB 9996.99 GB) Raid Devices : 6 Total Devices : 4 Preferred Minor : 0 Update Time : Tue Nov 16 14:29:15 2010 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 2 Spare Devices : 0 Checksum : aacb71b5 - correct Events : 382240 Layout : left-symmetric Chunk Size : 64K Number Major Minor RaidDevice State this 0 8 2 0 active sync /dev/sda2 0 0 8 2 0 active sync /dev/sda2 1 1 8 18 1 active sync /dev/sdb2 2 2 8 34 2 active sync /dev/sdc2 3 3 8 50 3 active sync /dev/sdd2 4 4 0 0 4 faulty removed 5 5 0 0 5 faulty removed server2@server2:~$ sudo mdadm --examine /dev/sdb2 /dev/sdb2: Magic : a92b4efc Version : 00.90.00 UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc Creation Time : Sat Feb 6 17:37:20 2010 Raid Level : raid5 Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) Array Size : 9762689600 (9310.43 GiB 9996.99 GB) Raid Devices : 6 Total Devices : 4 Preferred Minor : 0 Update Time : Tue Nov 16 14:29:15 2010 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 2 Spare Devices : 0 Checksum : aacb71c7 - correct Events : 382240 Layout : left-symmetric Chunk Size : 64K Number Major Minor RaidDevice State this 1 8 18 1 active sync /dev/sdb2 0 0 8 2 0 active sync /dev/sda2 1 1 8 18 1 active sync /dev/sdb2 2 2 8 34 2 active sync /dev/sdc2 3 3 8 50 3 active sync /dev/sdd2 4 4 0 0 4 faulty removed 5 5 0 0 5 faulty removed server2@server2:~$ sudo mdadm --examine /dev/sdc2 /dev/sdc2: Magic : a92b4efc Version : 00.90.00 UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc Creation Time : Sat Feb 6 17:37:20 2010 Raid Level : raid5 Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) Array Size : 9762689600 (9310.43 GiB 9996.99 GB) Raid Devices : 6 Total Devices : 4 Preferred Minor : 0 Update Time : Tue Nov 16 14:29:15 2010 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 2 Spare Devices : 0 Checksum : aacb71d9 - correct Events : 382240 Layout : left-symmetric Chunk Size : 64K Number Major Minor RaidDevice State this 2 8 34 2 active sync /dev/sdc2 0 0 8 2 0 active sync /dev/sda2 1 1 8 18 1 active sync /dev/sdb2 2 2 8 34 2 active sync /dev/sdc2 3 3 8 50 3 active sync /dev/sdd2 4 4 0 0 4 faulty removed 5 5 0 0 5 faulty removed server2@server2:~$ sudo mdadm --examine /dev/sdd2 /dev/sdd2: Magic : a92b4efc Version : 00.90.00 UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc Creation Time : Sat Feb 6 17:37:20 2010 Raid Level : raid5 Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) Array Size : 9762689600 (9310.43 GiB 9996.99 GB) Raid Devices : 6 Total Devices : 4 Preferred Minor : 0 Update Time : Tue Nov 16 14:29:15 2010 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 2 Spare Devices : 0 Checksum : aacb71eb - correct Events : 382240 Layout : left-symmetric Chunk Size : 64K Number Major Minor RaidDevice State this 3 8 50 3 active sync /dev/sdd2 0 0 8 2 0 active sync /dev/sda2 1 1 8 18 1 active sync /dev/sdb2 2 2 8 34 2 active sync /dev/sdc2 3 3 8 50 3 active sync /dev/sdd2 4 4 0 0 4 faulty removed 5 5 0 0 5 faulty removed server2@server2:~$ sudo mdadm --examine /dev/sde /dev/sde: Magic : a92b4efc Version : 00.90.00 UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc Creation Time : Sat Feb 6 17:37:20 2010 Raid Level : raid5 Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) Array Size : 9762689600 (9310.43 GiB 9996.99 GB) Raid Devices : 6 Total Devices : 5 Preferred Minor : 0 Update Time : Tue Nov 16 14:22:42 2010 State : clean Active Devices : 4 Working Devices : 5 Failed Devices : 2 Spare Devices : 1 Checksum : aacb70b7 - correct Events : 382232 Layout : left-symmetric Chunk Size : 64K Number Major Minor RaidDevice State this 6 8 64 6 spare /dev/sde 0 0 8 2 0 active sync /dev/sda2 1 1 8 18 1 active sync /dev/sdb2 2 2 8 34 2 active sync /dev/sdc2 3 3 8 50 3 active sync /dev/sdd2 4 4 0 0 4 faulty removed 5 5 0 0 5 faulty removed 6 6 8 64 6 spare /dev/sde server2@server2:~$ sudo mdadm --examine /dev/sdf /dev/sdf: Magic : a92b4efc Version : 00.90.00 UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc Creation Time : Sat Feb 6 17:37:20 2010 Raid Level : raid5 Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) Array Size : 9762689600 (9310.43 GiB 9996.99 GB) Raid Devices : 6 Total Devices : 6 Preferred Minor : 0 Update Time : Tue Nov 16 14:20:02 2010 State : clean Active Devices : 4 Working Devices : 6 Failed Devices : 2 Spare Devices : 2 Checksum : aacb7088 - correct Events : 382228 Layout : left-symmetric Chunk Size : 64K Number Major Minor RaidDevice State this 6 8 80 6 spare /dev/sdf 0 0 8 2 0 active sync /dev/sda2 1 1 8 18 1 active sync /dev/sdb2 2 2 8 34 2 active sync /dev/sdc2 3 3 8 50 3 active sync /dev/sdd2 4 4 0 0 4 faulty removed 5 5 0 0 5 faulty removed 6 6 8 80 6 spare /dev/sdf 7 7 8 64 7 spare /dev/sde server2@server2:~$ # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST <system> # instruct the monitoring daemon where to send mail alerts MAILADDR xxxxxxxxxxxx # definitions of existing MD arrays #ARRAY /dev/md0 level=raid5 num-devices=5 UUID=b7390ef0:9c9ecbe0:abcb3798:f53e3ccc ARRAY /dev/md1 level=raid0 num-devices=2 UUID=559552c6:b54f0dff:0dc726d6:bae63db2 # This file was auto-generated on Mon, 15 Mar 2010 22:25:29 -0400 # by mkconf $Id$ MAILFROM xxxxxxxxxxx fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sda: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 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: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 * 1 243202 1953514583+ ee GPT WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 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: 0x00000000 Device Boot Start End Blocks Id System /dev/sdc1 1 243202 1953514583+ ee GPT Disk /dev/sde: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 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: 0x0009e37a Device Boot Start End Blocks Id System Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 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: 0x00048a02 Device Boot Start End Blocks Id System WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 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: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 1 243202 1953514583+ ee GPT WARNING: GPT (GUID Partition Table) detected on '/dev/sdd'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 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: 0x00000000 Device Boot Start End Blocks Id System /dev/sdd1 1 243202 1953514583+ ee GPT Disk /dev/sdg: 250.1 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 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: 0x5b4a57df Device Boot Start End Blocks Id System /dev/sdg1 * 1 30401 244196001 fd Linux raid autodetect Disk /dev/sdh: 250.1 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 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: 0x174b0f87 Device Boot Start End Blocks Id System /dev/sdh1 1 30401 244196001 fd Linux raid autodetect Disk /dev/md1: 500.1 GB, 500113211392 bytes 2 heads, 4 sectors/track, 122097952 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 65536 bytes / 131072 bytes Disk identifier: 0x00000000 Disk /dev/md1 doesn't contain a valid partition table ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: Help! I killed my mdadm raid 5 2010-11-18 19:51 Help! I killed my mdadm raid 5 p3-500 @ 2010-11-19 1:32 ` Leslie Rhorer 2010-11-19 7:58 ` Neil Brown 1 sibling, 0 replies; 5+ messages in thread From: Leslie Rhorer @ 2010-11-19 1:32 UTC (permalink / raw) To: p3-500, linux-raid > -----Original Message----- > From: linux-raid-owner@vger.kernel.org [mailto:linux-raid- > owner@vger.kernel.org] On Behalf Of p3-500@roadrunner.com > Sent: Thursday, November 18, 2010 1:51 PM > To: linux-raid@vger.kernel.org > Subject: Help! I killed my mdadm raid 5 > > Arrg, Major goof. I managed to kill my raid 5 through my own stupidity. > Here is the chain of events, Your help is greatly appreciated. > > I added disk #6 to my working 5 disk array, after about 24 hours it was > done but i did not see the extra space (I now know all I needed to do was > fsck and resize). > > I failed and removed the new disk from the array then somehow also failed > and removed drive # 5 from the array. At this point the array was still > running so I added drive #5 & 6 back to the array but they got added as > spares instead of active components. next I rebooted and could not > assemble the array. > > I tried --assemble and --assemble --force which results with "mdadm: > /dev/md0 assembled from 4 drives and 1 spare - not enough to start the > array". I am naming all 6 drives on the command line. > > Several posts have suggested I --create the array again but I am hesitant > to do this as I do not want to lose my data. Yep, that's it. I would carefully inspect each drive using --examine to determine its proper place, but the two failed drives are a bit of a craps shoot, since you have already overwritten their metafiles. I would assemble the array in read-only mode and then read-only fsck the unmounted file system. IF this passes, the do a read-write fsck. Finally, mount the file system read-only and test the data well before continuing. The first file system access should trigger a resync. When creating the array, use the --assume-clean option so no resync will occur. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Help! I killed my mdadm raid 5 2010-11-18 19:51 Help! I killed my mdadm raid 5 p3-500 2010-11-19 1:32 ` Leslie Rhorer @ 2010-11-19 7:58 ` Neil Brown 2010-12-02 16:38 ` Jim Schatzman 1 sibling, 1 reply; 5+ messages in thread From: Neil Brown @ 2010-11-19 7:58 UTC (permalink / raw) To: p3-500; +Cc: linux-raid@vger.kernel.org On Thu, 18 Nov 2010 14:51:09 -0500 <p3-500@roadrunner.com> wrote: > Arrg, Major goof. I managed to kill my raid 5 through my own stupidity. Here is the chain of events, Your help is greatly appreciated. > > I added disk #6 to my working 5 disk array, after about 24 hours it was done but i did not see the extra space (I now know all I needed to do was fsck and resize). > > I failed and removed the new disk from the array then somehow also failed and removed drive # 5 from the array. At this point the array was still running so I added drive #5 & 6 back to the array but they got added as spares instead of active components. next I rebooted and could not assemble the array. > > I tried --assemble and --assemble --force which results with "mdadm: /dev/md0 assembled from 4 drives and 1 spare - not enough to start the array". I am naming all 6 drives on the command line. > > Several posts have suggested I --create the array again but I am hesitant to do this as I do not want to lose my data. The wiki suggests mkraid --force but I believe this is deprecated? It also requires an up to date /etc/raidtab which I do not have. Before I mess it up any more here's where I am. Yes, forget mkraid. mdadm --create is fairly safe as long as you think about what you are doing. In particular, make sure the same metadata type is used and importantly use --assume-clean. so something like mdadm --create /dev/md0 -e 0.90 --assume-clean --level=5 --n=6 \ --chunk=64 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sdd /dev/sdf may well work. Use 'fsck -n' and the 'mount -o ro' to check. All it will do is update the metadat. If you have the devices in the wrong order, then simple mdadm -Ss and try again. The data wont be changed until you trigger a resync, or mount the filesystem read-write. And next time, think before you fail a drive in an array !!! NeilBrown > > mdadam --examine /dev/sda2,b2,c2,d2,e,f > server2@server2:~$ sudo mdadm --examine /dev/sda2 > [sudo] password for server2: > /dev/sda2: > Magic : a92b4efc > Version : 00.90.00 > UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc > Creation Time : Sat Feb 6 17:37:20 2010 > Raid Level : raid5 > Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) > Array Size : 9762689600 (9310.43 GiB 9996.99 GB) > Raid Devices : 6 > Total Devices : 4 > Preferred Minor : 0 > > Update Time : Tue Nov 16 14:29:15 2010 > State : clean > Active Devices : 4 > Working Devices : 4 > Failed Devices : 2 > Spare Devices : 0 > Checksum : aacb71b5 - correct > Events : 382240 > > Layout : left-symmetric > Chunk Size : 64K > > Number Major Minor RaidDevice State > this 0 8 2 0 active sync /dev/sda2 > > 0 0 8 2 0 active sync /dev/sda2 > 1 1 8 18 1 active sync /dev/sdb2 > 2 2 8 34 2 active sync /dev/sdc2 > 3 3 8 50 3 active sync /dev/sdd2 > 4 4 0 0 4 faulty removed > 5 5 0 0 5 faulty removed > server2@server2:~$ sudo mdadm --examine /dev/sdb2 > /dev/sdb2: > Magic : a92b4efc > Version : 00.90.00 > UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc > Creation Time : Sat Feb 6 17:37:20 2010 > Raid Level : raid5 > Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) > Array Size : 9762689600 (9310.43 GiB 9996.99 GB) > Raid Devices : 6 > Total Devices : 4 > Preferred Minor : 0 > > Update Time : Tue Nov 16 14:29:15 2010 > State : clean > Active Devices : 4 > Working Devices : 4 > Failed Devices : 2 > Spare Devices : 0 > Checksum : aacb71c7 - correct > Events : 382240 > > Layout : left-symmetric > Chunk Size : 64K > > Number Major Minor RaidDevice State > this 1 8 18 1 active sync /dev/sdb2 > > 0 0 8 2 0 active sync /dev/sda2 > 1 1 8 18 1 active sync /dev/sdb2 > 2 2 8 34 2 active sync /dev/sdc2 > 3 3 8 50 3 active sync /dev/sdd2 > 4 4 0 0 4 faulty removed > 5 5 0 0 5 faulty removed > server2@server2:~$ sudo mdadm --examine /dev/sdc2 > /dev/sdc2: > Magic : a92b4efc > Version : 00.90.00 > UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc > Creation Time : Sat Feb 6 17:37:20 2010 > Raid Level : raid5 > Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) > Array Size : 9762689600 (9310.43 GiB 9996.99 GB) > Raid Devices : 6 > Total Devices : 4 > Preferred Minor : 0 > > Update Time : Tue Nov 16 14:29:15 2010 > State : clean > Active Devices : 4 > Working Devices : 4 > Failed Devices : 2 > Spare Devices : 0 > Checksum : aacb71d9 - correct > Events : 382240 > > Layout : left-symmetric > Chunk Size : 64K > > Number Major Minor RaidDevice State > this 2 8 34 2 active sync /dev/sdc2 > > 0 0 8 2 0 active sync /dev/sda2 > 1 1 8 18 1 active sync /dev/sdb2 > 2 2 8 34 2 active sync /dev/sdc2 > 3 3 8 50 3 active sync /dev/sdd2 > 4 4 0 0 4 faulty removed > 5 5 0 0 5 faulty removed > server2@server2:~$ sudo mdadm --examine /dev/sdd2 > /dev/sdd2: > Magic : a92b4efc > Version : 00.90.00 > UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc > Creation Time : Sat Feb 6 17:37:20 2010 > Raid Level : raid5 > Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) > Array Size : 9762689600 (9310.43 GiB 9996.99 GB) > Raid Devices : 6 > Total Devices : 4 > Preferred Minor : 0 > > Update Time : Tue Nov 16 14:29:15 2010 > State : clean > Active Devices : 4 > Working Devices : 4 > Failed Devices : 2 > Spare Devices : 0 > Checksum : aacb71eb - correct > Events : 382240 > > Layout : left-symmetric > Chunk Size : 64K > > Number Major Minor RaidDevice State > this 3 8 50 3 active sync /dev/sdd2 > > 0 0 8 2 0 active sync /dev/sda2 > 1 1 8 18 1 active sync /dev/sdb2 > 2 2 8 34 2 active sync /dev/sdc2 > 3 3 8 50 3 active sync /dev/sdd2 > 4 4 0 0 4 faulty removed > 5 5 0 0 5 faulty removed > server2@server2:~$ sudo mdadm --examine /dev/sde > /dev/sde: > Magic : a92b4efc > Version : 00.90.00 > UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc > Creation Time : Sat Feb 6 17:37:20 2010 > Raid Level : raid5 > Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) > Array Size : 9762689600 (9310.43 GiB 9996.99 GB) > Raid Devices : 6 > Total Devices : 5 > Preferred Minor : 0 > > Update Time : Tue Nov 16 14:22:42 2010 > State : clean > Active Devices : 4 > Working Devices : 5 > Failed Devices : 2 > Spare Devices : 1 > Checksum : aacb70b7 - correct > Events : 382232 > > Layout : left-symmetric > Chunk Size : 64K > > Number Major Minor RaidDevice State > this 6 8 64 6 spare /dev/sde > > 0 0 8 2 0 active sync /dev/sda2 > 1 1 8 18 1 active sync /dev/sdb2 > 2 2 8 34 2 active sync /dev/sdc2 > 3 3 8 50 3 active sync /dev/sdd2 > 4 4 0 0 4 faulty removed > 5 5 0 0 5 faulty removed > 6 6 8 64 6 spare /dev/sde > server2@server2:~$ sudo mdadm --examine /dev/sdf > /dev/sdf: > Magic : a92b4efc > Version : 00.90.00 > UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc > Creation Time : Sat Feb 6 17:37:20 2010 > Raid Level : raid5 > Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) > Array Size : 9762689600 (9310.43 GiB 9996.99 GB) > Raid Devices : 6 > Total Devices : 6 > Preferred Minor : 0 > > Update Time : Tue Nov 16 14:20:02 2010 > State : clean > Active Devices : 4 > Working Devices : 6 > Failed Devices : 2 > Spare Devices : 2 > Checksum : aacb7088 - correct > Events : 382228 > > Layout : left-symmetric > Chunk Size : 64K > > Number Major Minor RaidDevice State > this 6 8 80 6 spare /dev/sdf > > 0 0 8 2 0 active sync /dev/sda2 > 1 1 8 18 1 active sync /dev/sdb2 > 2 2 8 34 2 active sync /dev/sdc2 > 3 3 8 50 3 active sync /dev/sdd2 > 4 4 0 0 4 faulty removed > 5 5 0 0 5 faulty removed > 6 6 8 80 6 spare /dev/sdf > 7 7 8 64 7 spare /dev/sde > server2@server2:~$ > > # mdadm.conf > # > # Please refer to mdadm.conf(5) for information about this file. > # > > # by default, scan all partitions (/proc/partitions) for MD superblocks. > # alternatively, specify devices to scan, using wildcards if desired. > DEVICE partitions > > # auto-create devices with Debian standard permissions > CREATE owner=root group=disk mode=0660 auto=yes > > # automatically tag new arrays as belonging to the local system > HOMEHOST <system> > > # instruct the monitoring daemon where to send mail alerts > MAILADDR xxxxxxxxxxxx > # definitions of existing MD arrays > #ARRAY /dev/md0 level=raid5 num-devices=5 UUID=b7390ef0:9c9ecbe0:abcb3798:f53e3ccc > ARRAY /dev/md1 level=raid0 num-devices=2 UUID=559552c6:b54f0dff:0dc726d6:bae63db2 > > # This file was auto-generated on Mon, 15 Mar 2010 22:25:29 -0400 > # by mkconf $Id$ > MAILFROM xxxxxxxxxxx > > fdisk -l > WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted. > > > Disk /dev/sda: 2000.4 GB, 2000398934016 bytes > 255 heads, 63 sectors/track, 243201 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: 0x00000000 > > Device Boot Start End Blocks Id System > /dev/sda1 * 1 243202 1953514583+ ee GPT > > WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted. > > > Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes > 255 heads, 63 sectors/track, 243201 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: 0x00000000 > > Device Boot Start End Blocks Id System > /dev/sdc1 1 243202 1953514583+ ee GPT > > Disk /dev/sde: 2000.4 GB, 2000398934016 bytes > 255 heads, 63 sectors/track, 243201 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: 0x0009e37a > > Device Boot Start End Blocks Id System > > Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes > 255 heads, 63 sectors/track, 243201 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: 0x00048a02 > > Device Boot Start End Blocks Id System > > WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. > > > Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes > 255 heads, 63 sectors/track, 243201 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: 0x00000000 > > Device Boot Start End Blocks Id System > /dev/sdb1 1 243202 1953514583+ ee GPT > > WARNING: GPT (GUID Partition Table) detected on '/dev/sdd'! The util fdisk doesn't support GPT. Use GNU Parted. > > > Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes > 255 heads, 63 sectors/track, 243201 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: 0x00000000 > > Device Boot Start End Blocks Id System > /dev/sdd1 1 243202 1953514583+ ee GPT > > Disk /dev/sdg: 250.1 GB, 250059350016 bytes > 255 heads, 63 sectors/track, 30401 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: 0x5b4a57df > > Device Boot Start End Blocks Id System > /dev/sdg1 * 1 30401 244196001 fd Linux raid autodetect > > Disk /dev/sdh: 250.1 GB, 250059350016 bytes > 255 heads, 63 sectors/track, 30401 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: 0x174b0f87 > > Device Boot Start End Blocks Id System > /dev/sdh1 1 30401 244196001 fd Linux raid autodetect > > Disk /dev/md1: 500.1 GB, 500113211392 bytes > 2 heads, 4 sectors/track, 122097952 cylinders > Units = cylinders of 8 * 512 = 4096 bytes > Sector size (logical/physical): 512 bytes / 512 bytes > I/O size (minimum/optimal): 65536 bytes / 131072 bytes > Disk identifier: 0x00000000 > > Disk /dev/md1 doesn't contain a valid partition table > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Help! I killed my mdadm raid 5 2010-11-19 7:58 ` Neil Brown @ 2010-12-02 16:38 ` Jim Schatzman 2010-12-03 1:47 ` Neil Brown 0 siblings, 1 reply; 5+ messages in thread From: Jim Schatzman @ 2010-12-02 16:38 UTC (permalink / raw) To: Neil Brown, p3-500; +Cc: linux-raid@vger.kernel.org I hate to sound like a broken record, but it would be very helpful if mdadm was a bit smarter about handling the case where a drive is removed and then re-added with no data changes. This has happened to me several times when external cables have gotten loose. Mdadm automatically fails the disconnected drives. Then, when the drives show up again, it will not automatically put them back in the array. Even though so many drives get offlined that the raid cannot be started, and therefore no filesystem data could possibly be changed, mdadm acts as if the data on the temporarily-removed drives is suspect. Apparently, it changes the RAID metadata while the RAID is stopped. (more precisely, when mdadm attempts to assemble/start a RAID array that is missing too many drives). I really wish that i t wouldn't change the metadata in this circumstance. This may be the result of an interaction between the filesystem drive, Linux, and Mdadm. Nevertheless, the result is unpleasant and annoying. The best solution I have come up with is 1) Prevent the kernel from seeing your RAID arrays so they don't get started during boot (unfortunately, this won't work if we are talking about the boot or system arrays). In particular, remove any arrays you want to not start from the mdadm.conf file when mkinitrd is run (in fact, just be careful never to populate mdadm.conf for these RAIDs - the next time you run mkinitrd either explicitly or when a new kernel gets installed, the new kernel will stop assembling the arrays). 2) Use a cron.reboot script (or similar mechanism) to assemble and start the RAID with --no-degraded. I use commands similar to mdadm -A --no-degraded /dev/mdXXX --uuid XXXXXXX mount -t ext4 -o noatime,nodiratime /dev/raidVGXXX/LVXXX /export/mntptXXX (I am using LVM over RAID). It may be possible, but I have no idea how, to get the kernel to assemble RAIDs using "--no-degraded" during boot. Apparently, you have to do something special with dracut/mkinitrd. I may be stupid, but I have found the dracut documentation to be very poor, to the point of uselessness. If someone could explain this I would be grateful. The behavior I am trying to achieve is, 1) If the RAID can be assembled with all drives present, do so. 2) Otherwise, give up, change no metadata, and let the operator fix it manually. 3) If the RAID loses drives while running but is still able to run, then keep running. 4) If the RAID loses drives while running and can no longer run, then give up, offline the RAID devices, but change no metadata. Wait for the operator to fix the problem. I realize that data may be lost. However, at worst, I would expect to be able to reassemble the drives and run fsck to repair the damage (as best it can). Yes - I know that you can accomplish this result now -- but you have to re-create the array, instead of being able to just assemble it. We can make the current behavior match #2 by assembling with --no-degraded. However, I don't know how to make the kernel do this doing boot. Making #4 work (being able to assemble the array instead of re-creating it), would seem to be a mdadm issue. Until that happy day arrives, the best that you can do appears to be to keep a record of the important metadata information (-e, --chunk, -level), and be prepared to re-create the array carefully. Aside from having to know the important metata parameters, the other issue relates to the Linux kernel's tendency to enumerate drives apparently randomly from boot to boot. It would be helpful if you could do something like "create", but re-creating an array based on the existing UUID metadata, or otherwise specify the drives in random order, and have Mdadm figure out the appropriate drive ordering. Like p3-500, I at first assumed that "assemble" would do this, but "assemble" doesn't work as we naive mdadm users would have expected, once a drive is theoretically failed. Thanks! Jim At 12:58 AM 11/19/2010, Neil Brown wrote: >On Thu, 18 Nov 2010 14:51:09 -0500 ><p3-500@roadrunner.com> wrote: > >> Arrg, Major goof. I managed to kill my raid 5 through my own stupidity. Here is the chain of events, Your help is greatly appreciated. >> >> I added disk #6 to my working 5 disk array, after about 24 hours it was done but i did not see the extra space (I now know all I needed to do was fsck and resize). >> >> I failed and removed the new disk from the array then somehow also failed and removed drive # 5 from the array. At this point the array was still running so I added drive #5 & 6 back to the array but they got added as spares instead of active components. next I rebooted and could not assemble the array. >> >> I tried --assemble and --assemble --force which results with "mdadm: /dev/md0 assembled from 4 drives and 1 spare - not enough to start the array". I am naming all 6 drives on the command line. >> >> Several posts have suggested I --create the array again but I am hesitant to do this as I do not want to lose my data. The wiki suggests mkraid --force but I believe this is deprecated? It also requires an up to date /etc/raidtab which I do not have. Before I mess it up any more here's where I am. > >Yes, forget mkraid. > >mdadm --create is fairly safe as long as you think about what you are doing. >In particular, make sure the same metadata type is used and importantly use >--assume-clean. > > >so something like > > mdadm --create /dev/md0 -e 0.90 --assume-clean --level=5 --n=6 \ > --chunk=64 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sdd /dev/sdf > >may well work. Use 'fsck -n' and the 'mount -o ro' to check. >All it will do is update the metadat. If you have the devices in the wrong >order, then simple > mdadm -Ss >and try again. The data wont be changed until you trigger a resync, or mount >the filesystem read-write. > >And next time, think before you fail a drive in an array !!! > >NeilBrown > > >> >> mdadam --examine /dev/sda2,b2,c2,d2,e,f >> server2@server2:~$ sudo mdadm --examine /dev/sda2 >> [sudo] password for server2: >> /dev/sda2: >> Magic : a92b4efc >> Version : 00.90.00 >> UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc >> Creation Time : Sat Feb 6 17:37:20 2010 >> Raid Level : raid5 >> Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) >> Array Size : 9762689600 (9310.43 GiB 9996.99 GB) >> Raid Devices : 6 >> Total Devices : 4 >> Preferred Minor : 0 >> >> Update Time : Tue Nov 16 14:29:15 2010 >> State : clean >> Active Devices : 4 >> Working Devices : 4 >> Failed Devices : 2 >> Spare Devices : 0 >> Checksum : aacb71b5 - correct >> Events : 382240 >> >> Layout : left-symmetric >> Chunk Size : 64K >> >> Number Major Minor RaidDevice State >> this 0 8 2 0 active sync /dev/sda2 >> >> 0 0 8 2 0 active sync /dev/sda2 >> 1 1 8 18 1 active sync /dev/sdb2 >> 2 2 8 34 2 active sync /dev/sdc2 >> 3 3 8 50 3 active sync /dev/sdd2 >> 4 4 0 0 4 faulty removed >> 5 5 0 0 5 faulty removed >> server2@server2:~$ sudo mdadm --examine /dev/sdb2 >> /dev/sdb2: >> Magic : a92b4efc >> Version : 00.90.00 >> UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc >> Creation Time : Sat Feb 6 17:37:20 2010 >> Raid Level : raid5 >> Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) >> Array Size : 9762689600 (9310.43 GiB 9996.99 GB) >> Raid Devices : 6 >> Total Devices : 4 >> Preferred Minor : 0 >> >> Update Time : Tue Nov 16 14:29:15 2010 >> State : clean >> Active Devices : 4 >> Working Devices : 4 >> Failed Devices : 2 >> Spare Devices : 0 >> Checksum : aacb71c7 - correct >> Events : 382240 >> >> Layout : left-symmetric >> Chunk Size : 64K >> >> Number Major Minor RaidDevice State >> this 1 8 18 1 active sync /dev/sdb2 >> >> 0 0 8 2 0 active sync /dev/sda2 >> 1 1 8 18 1 active sync /dev/sdb2 >> 2 2 8 34 2 active sync /dev/sdc2 >> 3 3 8 50 3 active sync /dev/sdd2 >> 4 4 0 0 4 faulty removed >> 5 5 0 0 5 faulty removed >> server2@server2:~$ sudo mdadm --examine /dev/sdc2 >> /dev/sdc2: >> Magic : a92b4efc >> Version : 00.90.00 >> UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc >> Creation Time : Sat Feb 6 17:37:20 2010 >> Raid Level : raid5 >> Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) >> Array Size : 9762689600 (9310.43 GiB 9996.99 GB) >> Raid Devices : 6 >> Total Devices : 4 >> Preferred Minor : 0 >> >> Update Time : Tue Nov 16 14:29:15 2010 >> State : clean >> Active Devices : 4 >> Working Devices : 4 >> Failed Devices : 2 >> Spare Devices : 0 >> Checksum : aacb71d9 - correct >> Events : 382240 >> >> Layout : left-symmetric >> Chunk Size : 64K >> >> Number Major Minor RaidDevice State >> this 2 8 34 2 active sync /dev/sdc2 >> >> 0 0 8 2 0 active sync /dev/sda2 >> 1 1 8 18 1 active sync /dev/sdb2 >> 2 2 8 34 2 active sync /dev/sdc2 >> 3 3 8 50 3 active sync /dev/sdd2 >> 4 4 0 0 4 faulty removed >> 5 5 0 0 5 faulty removed >> server2@server2:~$ sudo mdadm --examine /dev/sdd2 >> /dev/sdd2: >> Magic : a92b4efc >> Version : 00.90.00 >> UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc >> Creation Time : Sat Feb 6 17:37:20 2010 >> Raid Level : raid5 >> Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) >> Array Size : 9762689600 (9310.43 GiB 9996.99 GB) >> Raid Devices : 6 >> Total Devices : 4 >> Preferred Minor : 0 >> >> Update Time : Tue Nov 16 14:29:15 2010 >> State : clean >> Active Devices : 4 >> Working Devices : 4 >> Failed Devices : 2 >> Spare Devices : 0 >> Checksum : aacb71eb - correct >> Events : 382240 >> >> Layout : left-symmetric >> Chunk Size : 64K >> >> Number Major Minor RaidDevice State >> this 3 8 50 3 active sync /dev/sdd2 >> >> 0 0 8 2 0 active sync /dev/sda2 >> 1 1 8 18 1 active sync /dev/sdb2 >> 2 2 8 34 2 active sync /dev/sdc2 >> 3 3 8 50 3 active sync /dev/sdd2 >> 4 4 0 0 4 faulty removed >> 5 5 0 0 5 faulty removed >> server2@server2:~$ sudo mdadm --examine /dev/sde >> /dev/sde: >> Magic : a92b4efc >> Version : 00.90.00 >> UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc >> Creation Time : Sat Feb 6 17:37:20 2010 >> Raid Level : raid5 >> Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) >> Array Size : 9762689600 (9310.43 GiB 9996.99 GB) >> Raid Devices : 6 >> Total Devices : 5 >> Preferred Minor : 0 >> >> Update Time : Tue Nov 16 14:22:42 2010 >> State : clean >> Active Devices : 4 >> Working Devices : 5 >> Failed Devices : 2 >> Spare Devices : 1 >> Checksum : aacb70b7 - correct >> Events : 382232 >> >> Layout : left-symmetric >> Chunk Size : 64K >> >> Number Major Minor RaidDevice State >> this 6 8 64 6 spare /dev/sde >> >> 0 0 8 2 0 active sync /dev/sda2 >> 1 1 8 18 1 active sync /dev/sdb2 >> 2 2 8 34 2 active sync /dev/sdc2 >> 3 3 8 50 3 active sync /dev/sdd2 >> 4 4 0 0 4 faulty removed >> 5 5 0 0 5 faulty removed >> 6 6 8 64 6 spare /dev/sde >> server2@server2:~$ sudo mdadm --examine /dev/sdf >> /dev/sdf: >> Magic : a92b4efc >> Version : 00.90.00 >> UUID : b7390ef0:9c9ecbe0:abcb3798:f53e3ccc >> Creation Time : Sat Feb 6 17:37:20 2010 >> Raid Level : raid5 >> Used Dev Size : 1952537920 (1862.09 GiB 1999.40 GB) >> Array Size : 9762689600 (9310.43 GiB 9996.99 GB) >> Raid Devices : 6 >> Total Devices : 6 >> Preferred Minor : 0 >> >> Update Time : Tue Nov 16 14:20:02 2010 >> State : clean >> Active Devices : 4 >> Working Devices : 6 >> Failed Devices : 2 >> Spare Devices : 2 >> Checksum : aacb7088 - correct >> Events : 382228 >> >> Layout : left-symmetric >> Chunk Size : 64K >> >> Number Major Minor RaidDevice State >> this 6 8 80 6 spare /dev/sdf >> >> 0 0 8 2 0 active sync /dev/sda2 >> 1 1 8 18 1 active sync /dev/sdb2 >> 2 2 8 34 2 active sync /dev/sdc2 >> 3 3 8 50 3 active sync /dev/sdd2 >> 4 4 0 0 4 faulty removed >> 5 5 0 0 5 faulty removed >> 6 6 8 80 6 spare /dev/sdf >> 7 7 8 64 7 spare /dev/sde >> server2@server2:~$ >> >> # mdadm.conf >> # >> # Please refer to mdadm.conf(5) for information about this file. >> # >> >> # by default, scan all partitions (/proc/partitions) for MD superblocks. >> # alternatively, specify devices to scan, using wildcards if desired. >> DEVICE partitions >> >> # auto-create devices with Debian standard permissions >> CREATE owner=root group=disk mode=0660 auto=yes >> >> # automatically tag new arrays as belonging to the local system >> HOMEHOST <system> >> >> # instruct the monitoring daemon where to send mail alerts >> MAILADDR xxxxxxxxxxxx >> # definitions of existing MD arrays >> #ARRAY /dev/md0 level=raid5 num-devices=5 UUID=b7390ef0:9c9ecbe0:abcb3798:f53e3ccc >> ARRAY /dev/md1 level=raid0 num-devices=2 UUID=559552c6:b54f0dff:0dc726d6:bae63db2 >> >> # This file was auto-generated on Mon, 15 Mar 2010 22:25:29 -0400 >> # by mkconf $Id$ >> MAILFROM xxxxxxxxxxx >> >> fdisk -l >> WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted. >> >> >> Disk /dev/sda: 2000.4 GB, 2000398934016 bytes >> 255 heads, 63 sectors/track, 243201 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: 0x00000000 >> >> Device Boot Start End Blocks Id System >> /dev/sda1 * 1 243202 1953514583+ ee GPT >> >> WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted. >> >> >> Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes >> 255 heads, 63 sectors/track, 243201 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: 0x00000000 >> >> Device Boot Start End Blocks Id System >> /dev/sdc1 1 243202 1953514583+ ee GPT >> >> Disk /dev/sde: 2000.4 GB, 2000398934016 bytes >> 255 heads, 63 sectors/track, 243201 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: 0x0009e37a >> >> Device Boot Start End Blocks Id System >> >> Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes >> 255 heads, 63 sectors/track, 243201 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: 0x00048a02 >> >> Device Boot Start End Blocks Id System >> >> WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. >> >> >> Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes >> 255 heads, 63 sectors/track, 243201 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: 0x00000000 >> >> Device Boot Start End Blocks Id System >> /dev/sdb1 1 243202 1953514583+ ee GPT >> >> WARNING: GPT (GUID Partition Table) detected on '/dev/sdd'! The util fdisk doesn't support GPT. Use GNU Parted. >> >> >> Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes >> 255 heads, 63 sectors/track, 243201 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: 0x00000000 >> >> Device Boot Start End Blocks Id System >> /dev/sdd1 1 243202 1953514583+ ee GPT >> >> Disk /dev/sdg: 250.1 GB, 250059350016 bytes >> 255 heads, 63 sectors/track, 30401 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: 0x5b4a57df >> >> Device Boot Start End Blocks Id System >> /dev/sdg1 * 1 30401 244196001 fd Linux raid autodetect >> >> Disk /dev/sdh: 250.1 GB, 250059350016 bytes >> 255 heads, 63 sectors/track, 30401 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: 0x174b0f87 >> >> Device Boot Start End Blocks Id System >> /dev/sdh1 1 30401 244196001 fd Linux raid autodetect >> >> Disk /dev/md1: 500.1 GB, 500113211392 bytes >> 2 heads, 4 sectors/track, 122097952 cylinders >> Units = cylinders of 8 * 512 = 4096 bytes >> Sector size (logical/physical): 512 bytes / 512 bytes >> I/O size (minimum/optimal): 65536 bytes / 131072 bytes >> Disk identifier: 0x00000000 >> >> Disk /dev/md1 doesn't contain a valid partition table >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-raid" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > >-- >To unsubscribe from this list: send the line "unsubscribe linux-raid" in >the body of a message to majordomo@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Help! I killed my mdadm raid 5 2010-12-02 16:38 ` Jim Schatzman @ 2010-12-03 1:47 ` Neil Brown 0 siblings, 0 replies; 5+ messages in thread From: Neil Brown @ 2010-12-03 1:47 UTC (permalink / raw) To: Jim Schatzman; +Cc: p3-500, linux-raid@vger.kernel.org On Thu, 02 Dec 2010 09:38:18 -0700 Jim Schatzman <james.schatzman@futurelabusa.com> wrote: > I hate to sound like a broken record, but it would be very helpful if mdadm was a bit smarter about handling the case where a drive is removed and then re-added with no data changes. This has happened to me several times when external cables have gotten loose. Mdadm automatically fails the disconnected drives. Then, when the drives show up again, it will not automatically put them back in the array. Even though so many drives get offlined that the raid cannot be started, and therefore no filesystem data could possibly be changed, mdadm acts as if the data on the temporarily-removed drives is suspect. Apparently, it changes the RAID metadata while the RAID is stopped. (more precisely, when mdadm attempts to assemble/start a RAID array that is missing too many drives). I really wish that it wouldn't change the metadata in this circumstance. > > This may be the result of an interaction between the filesystem drive, Linux, and Mdadm. Nevertheless, the result is unpleasant and annoying. You don't sound like a broken (or scratched) record to me, because I haven't heard this complaint before - at least not in this form (that I remember). In general, what you are describing should work. There may be specific cases where it doesn't. In that case it would help me a lot if you provide specific details. i.e. a sequence of events, preferably that I can easily reproduce, which lead to an undesirable result. Even better if you can provide full "mdadm -E" out for each device at each point in the sequence, so I can see details of what is happening. If you have a write-intent-bitmap, then there are more cases where it can survive temporary disappearance of devices, but even without, the sort of thing you describe should work. If it doesn't, I would very much like to fix it. But I cannot without precises details of what is going wrong. Thanks, NeilBrown > > The best solution I have come up with is > > 1) Prevent the kernel from seeing your RAID arrays so they don't get started during boot (unfortunately, this won't work if we are talking about the boot or system arrays). In particular, remove any arrays you want to not start from the mdadm.conf file when mkinitrd is run (in fact, just be careful never to populate mdadm.conf for these RAIDs - the next time you run mkinitrd either explicitly or when a new kernel gets installed, the new kernel will stop assembling the arrays). > > 2) Use a cron.reboot script (or similar mechanism) to assemble and start the RAID with --no-degraded. I use commands similar to > > mdadm -A --no-degraded /dev/mdXXX --uuid XXXXXXX > mount -t ext4 -o noatime,nodiratime /dev/raidVGXXX/LVXXX /export/mntptXXX > > (I am using LVM over RAID). > > It may be possible, but I have no idea how, to get the kernel to assemble RAIDs using "--no-degraded" during boot. Apparently, you have to do something special with dracut/mkinitrd. I may be stupid, but I have found the dracut documentation to be very poor, to the point of uselessness. If someone could explain this I would be grateful. > > The behavior I am trying to achieve is, > > 1) If the RAID can be assembled with all drives present, do so. > > 2) Otherwise, give up, change no metadata, and let the operator fix it manually. This is exactly what --no-degraded is for. It should be as simple as hunting through the scripts that dracut uses for the one which runs mdadm, and add --no-degraded. Then test, then email the dracut developers asking them to make it an option. > > 3) If the RAID loses drives while running but is still able to run, then keep running. > > 4) If the RAID loses drives while running and can no longer run, then give up, offline the RAID devices, but change no metadata. Wait for the operator to fix the problem. I realize that data may be lost. However, at worst, I would expect to be able to reassemble the drives and run fsck to repair the damage (as best it can). Yes - I know that you can accomplish this result now -- but you have to re-create the array, instead of being able to just assemble it. You shouldn't have to recreate the array. Just add the "--force" flag to --assemble - what says "I understand there might be data corruption but I want to continue anyway". > > We can make the current behavior match #2 by assembling with --no-degraded. However, I don't know how to make the kernel do this doing boot. Making #4 work (being able to assemble the array instead of re-creating it), would seem to be a mdadm issue. Until that happy day arrives, the best that you can do appears to be to keep a record of the important metadata information (-e, --chunk, -level), and be prepared to re-create the array carefully. > > Aside from having to know the important metata parameters, the other issue relates to the Linux kernel's tendency to enumerate drives apparently randomly from boot to boot. It would be helpful if you could do something like "create", but re-creating an array based on the existing UUID metadata, or otherwise specify the drives in random order, and have Mdadm figure out the appropriate drive ordering. Like p3-500, I at first assumed that "assemble" would do this, but "assemble" doesn't work as we naive mdadm users would have expected, once a drive is theoretically failed. > This last - re-creating based on available data - is on my list for mdadm-3.2. I haven't figured out the best approach yet I it shouldn't be too hard. I need to find a balance between using the data in the superblocks that exist, but also allowing the user to over-ride anything, or maybe only some things ... I'm not sure exactly... NeilBrown ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-12-03 1:47 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-11-18 19:51 Help! I killed my mdadm raid 5 p3-500 2010-11-19 1:32 ` Leslie Rhorer 2010-11-19 7:58 ` Neil Brown 2010-12-02 16:38 ` Jim Schatzman 2010-12-03 1:47 ` Neil Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).