8

This is dangerously close to question 18957, but it isn't quite the same.

One of my logical drives on my P410i is a single disk RAID 0 (because I was short sighted at the time). It's now warning about imminent failure, and I'm looking for an easy way to fix it. (I have backups, but I want to avoid the downtime (don't troll, remember I said I was short sighted?) of doing this the "right way")

My plan, if possible, would be to make this RAID 0 into a RAID 1, add a matching drive to the RAID 1, let the controller rebuild it, pull the dead drive, and have a proper RAID 1 in the end. I'm just wondering if I can do step 1.

More Specs:

  • HP DL360
  • Smart Array P410i
  • Dead drive is a 146GB 10kRPM (also my / drive :( )
  • Installed OS is Ubuntu 10.04
  • hpacucli is installed and available.
mwalling
  • 511
  • 2
  • 5
  • 12
  • Someone on IRC gave me the following link that looks like my actual question, right down to the hard drive size. http://h30499.www3.hp.com/t5/System-Administration/Migrate-RAID0-to-RAID1-online-with-hpacucli/td-p/4756838 – mwalling Nov 10 '11 at 14:20
  • 3
    On a side note: Do a full backup. NOW. Replicating a disk with known failures is going to wear the disk faster. – pauska Nov 10 '11 at 14:30
  • Weekly backups! (Also, the server config is backed up, so total loss if the backup fails to restore is time to reinstall) – mwalling Nov 10 '11 at 15:23

3 Answers3

5

I'm not sure if you've completed this yet, but this is definitely possible, assuming your Smart Array controller has a battery or flash-back cache unit (needed for all RAID-level tranformations/expansions). The disk described in the original problem is a drive pre-failure (either from S.M.A.R.T. status or other detection method). It has not failed yet. You may even have a blinking amber light on the drive, versus the solid amber indicating failure.

I prefer doing expansions via the graphical HP Online Array Configuration utility enabled by (cpqacuxe -R and browsing to https://server.ip:2381) if you have the full set of HP Management Agents installed. But if that's not available, the hpacucli command-line utility will work as well.

You're basically going to run this in two steps. Add the new disk(s) to the existing logical drive, then optionally expand the logical drive. Going from RAID 0 to RAID 1 really only gives the option of adding a disk and changing the logical drive's redundancy level.

Enter hpacucli and run ctrl all show config

Grab the controller slot number and logical drive ID. Say it's the onboard controller, slot=0.

ctrl slot=0 ld 1 add drives=allunassigned

From there, you can modify the logical drive to change its redundancy level (although this may be automatic in this specific case).

ctrl slot=0 ld 1 modify raid=1

ewwhite
  • 194,921
  • 91
  • 434
  • 799
  • 2
    I've just tried this on a P410i and it seems that adding the unassigned drive reshapes the array as a two-drive RAID 0. I tried modifying the level to RAID 1 first, but that was unsupported. Is there a way to tell it to change to raid 1 in degraded mode first? – Paul Gear Jan 29 '15 at 01:14
  • You change the RAID level after the new disk is added and the transformation is complete. – ewwhite Jan 29 '15 at 01:28
  • 1
    That's a non-ideal situation given that @mwalling's original problem was that the drive was in pre-failure state. It would be much better if there was a way to add the redundancy before exercising the bad drive so much. I spent some time poking around in hpacucli yesterday and couldn't find any way... :-( – Paul Gear Jan 30 '15 at 02:26
2

I'm not 100% sure about doing this with that model of hardware controller, you'd have to RTM, but you can certainly do this with mdadm and make a software RAID 1 on the fly.

Alternatively, you can get two additional disks and make them into a hardware RAID 1 on the controller and just use dd to copy disk 1 on to the new array. Then you can remove the failing disk and have a hardware RAID 1.

MDMarra
  • 100,183
  • 32
  • 195
  • 326
  • Yeah, your alternative was what I was avoiding, but knew was possible... I just wanted to avoid going down (or degraded level of service) while I did the copy. – mwalling Nov 10 '11 at 14:31
  • @mwalling You would only be down during the reboot. Something like `dd` will put similar stress on the drives as a rebuild, so performance would suffer no matter what. The downtime of a reboot is nothing compared to a restore, and totally worth it, IMO, if it means correcting a single-disk dependency. You could always `ionice` it, but I wouldn't recommend that. You want to get the clone done as fast as possible. – MDMarra Nov 10 '11 at 14:33
  • 1
    `dd` a live file system? *shudder* – mwalling Nov 10 '11 at 15:03
  • And by degraded level of service, I meant things like shutting down WWW or the DB because they're upset about `/` being mounted read only. – mwalling Nov 10 '11 at 15:08
  • @mwalling Good points. For some reason, I had it in my head that it was static content on the server. – MDMarra Nov 10 '11 at 15:17
  • This is /... Most apps have their data on /srv (another logical volume), but /var is still on the dead disk. – mwalling Nov 10 '11 at 15:21
  • @mwalling Well, then obviously disregard the `dd` suggestion without mounting r/o :) – MDMarra Nov 10 '11 at 15:29
0

Do you need to use the controller ?

I.e. does it offer distinct advantages over using software raid, such as BBWC or hardware XOR calculations (which are not used by RAID-1, but meh) ?

If not, set up a one-disk RAID-1 in mdadm (a degraded mirror), copy all the data from the RAID-0 disk, and add the disk to the RAID-1 set.

Simple.

EDIT: if you do want to use the controller, just copy all data to the spare disk, then set up a degraded mirror on the hardware controller.

The principle remains the same.

adaptr
  • 16,479
  • 21
  • 33