PERC - RAID controller configuration from Linux

This is one of those situations where I had to get through a task for which there was not too much publicly available documentation. Hence I'm writing the blog in the hope that it helps someone who is trying to do the same thing.

What I was trying to do:

I have a Dell R730 Poweredge server. The server has a RAID Controller with a single drive enclosure with 16 slots. I have only four drives in RAID 5 mode. I wanted to slap four more drives in and create a separate RAID array....without rebooting the machine.

Most documentation lead me to reboot, go to the BIOS--->RAID settings and do it. However rebooting was not an option. Here's how to do it

  1. Grab the perccli tool for Linux -

  2. Take a look at all your RAID controllers

./perccli64 show all

  1. Take a look at the particular controller that you want to use (c0 is the only controller I have)
/perccli64 /c0 show

  1. Using perccli is like referencing a path. /c0/e32/s8 is "Controller 0", "Enclosure ID 32", and "Slot 8".

  2. When you insert a new drive, it's status will be JBOD. Which is "Just a bunch of drives" in RAID parlance.

  3. We need to change the status from JBOD to UGood in order to set them up to be in a RAID format. This was the step that was not too well publicly documented and had me stuck for the longest time.

  4. After changing the State to UGood, we can add the vd (virtual disk) in RAID 5.

#Change "State" from JBOD to UGood on all drives 
./perccli64 /c0/e32/s8  set good  force 
./perccli64 /c0/e32/s9  set good  force 
./perccli64 /c0/e32/s10  set good  force 
./perccli64 /c0/e32/s11  set good  force 

#Now we can create a vd
./perccli64 /c0 add vd type=raid5 drives=32:8-11

Please note that it take sometime for a RAID array to build. There are operations that happen at the block level which can take hours. You may use the VD at this time, however beware that it may be really slow.

That's all folks. I hope this helped you.