Thread (26 messages) 26 messages, 14 authors, 2011-04-23

Re: debian software raid1

From: NeilBrown <hidden>
Date: 2011-04-20 01:12:39

On Tue, 19 Apr 2011 20:33:46 -0400 Joe Landman [off-list ref] wrote:
On 04/19/2011 06:51 PM, NeilBrown wrote:
quoted
On Tue, 19 Apr 2011 12:03:27 -0400 Iordan Iordanov[off-list ref]
[...]
quoted
If there was such a deadlock, it would be a serious bug.   I don't believe
such a bug exists (but hey - I keep finding bugs in this code, when I'm not
busy writing new bugs, so I guess it could crash you machine and kill your
cat).
I ran into this a few years ago (early 2.6 series, maybe 2.6.15 or so). 
  Some sort of race condition.  Required a reset to get the machines 
attention.  
I wonder what this might have been...
Resume from suspend when swap in on md/raid can be a bit tricky and may not
have been well tested at that time.  You need to be able to assemble the
RAID1 for read without writing anything.  That can be done now by setting the
'start_ro' module parameter (echo 1
/sys/modules/md_mod/parameters/start_ro).
I haven't actually tested it myself though so I cannot speak from experience.
              Haven't tried since.  Since we do lots of MD raid, I 
generally either put the swap on hardware RAID, or stripe it and 
sometimes hope for the best.  The latter doesn't always work.  When a 
drive goes pear shaped, and takes down pages with it, your machine will 
crash, and pretty hard at that.

We'll definitely try the swap atop MD RAID going forward.  I like the 
idea of a RAID10 for it.
quoted
quoted
It would be nice to have a discussion among people who have experience
with all of this.
Definitely put swap on RAID1 if you have RAID1 at all.

My personal preference with RAID1 to to have a single RAID1 (probably
--metadata=1.0) across the whole devices, and partition that for root, swap,
home.
This gets to my question, since we haven't tried this yet ... can we do 
whole device MD RAIDs, and boot from them?  Is there anything special we 
need to do in their construction (use --auto=mdp or similar)?  We'd 
really prefer to go this route rather than building multiple smaller 
RAIDs.  We can manage the latter, but the former is far easier/cleaner 
to handle rebuilds with.
The little 'server' in my garage runs md/raid1 across two device (using 0.90
metadata - never had any reason to convert).

I seem to remember that I had to do something special to grub to get it to
boot initially, but I also vaguely remember that after some series of updates
(this is Debian) it seemed to get a lot easier.  My "grub.cfg" contains:

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
        insmod raid
        insmod mdraid
        insmod part_msdos
        insmod ext2
        set root='(md0,1)'
        search --no-floppy --fs-uuid --set 03e9951f-d174-4d88-9b4c-dd7a31c0de61
        echo    'Loading Linux 2.6.32-5-686 ...'
        linux   /vmlinuz-2.6.32-5-686 root=UUID=6e8a3564-5588-476e-bbe5-a68c967c6c8e ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-2.6.32-5-686
}

which was all automatically created, and it seems to "just work".

So yes - you can boot for partitioned whole-device md/raid.
You might need to use a "metadata-at-the-end" format list 0.90 or 1.0, but it
is entirely possible that it will work for other metadata formats, I really
don't know.  Other than that, no special options needed when creating the
array.

NeilBrown
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help