Difference between revisions of "Software projects/OS/Slackware/Advanced usage/RAID"

From Pandora Wiki
Jump to: navigation, search
Line 1: Line 1:
 
= WIP WIP WIP HURRAID =
 
= WIP WIP WIP HURRAID =
 
* Need to properly rebuild one array while completing.
 
* Need to properly rebuild one array while completing.
 +
* For now, don't try this incomplete tutorial unless you have some RAID knowledge
 +
* Once finished and this warning removed, go for it.
  
 
= RAID =
 
= RAID =
Line 6: Line 8:
 
* We will use the robust native Linux software RAID.
 
* We will use the robust native Linux software RAID.
 
* It's a feature that can be used on the Pandora, so let's have fun with it
 
* It's a feature that can be used on the Pandora, so let's have fun with it
* I will cover here only a RAID 1 (mirror) on two SD cards, as it should be the more interesting for a server usage because under read load, you can reach about 27MB/s against 16MB/s on one card.
+
* I will cover here only a RAID 1 (mirror) on two SD cards, as it should be the more interesting for a server usage because under read load, you should reach about 27MB/s against 16MB/s on one card.
* A SD + USB drive can also work although untested. As a two SD + USB drive.
+
* A SD + USB drive can also work although untested. Same with a two SD + USB drive configuration.
 
* This array will be mounted as /srv , the standard server folder.
 
* This array will be mounted as /srv , the standard server folder.
  
 
= Partitioning =
 
= Partitioning =
* So you have to partition your system SD card differently than the default SL4P setup.
+
* So you have to partition your system SD card a bit differently than the default SL4P setup.
 
* In this example, we will use the recommended minimal 8G card for the slot 1.
 
* In this example, we will use the recommended minimal 8G card for the slot 1.
* You can use a different sized card for the right slot. The minimum size is 4G for this second card, and we will use 4G in this example.
+
* You can use a different sized card for the right slot. To keep thing interesting, the minimum size is 4G for this second card, and we will use 4G in this example.
 
* The RAID 1 partitions must have the same exact size.
 
* The RAID 1 partitions must have the same exact size.
  
 
= Card 1 =
 
= Card 1 =
 
* Partition that way:
 
* Partition that way:
  6G ext2 for the system
+
  6G ext2 for the system.
  256M for the swap
+
  256M for the swap.
 
That's all for now, the third partition will be created under Slackware, and will be:
 
That's all for now, the third partition will be created under Slackware, and will be:
  1.5G RAID
+
  1.5G RAID.
 
* We will left 256M free. NEVER fill an entire drive with a RAID array. Drives, ie. all 8G, doesn't necessary offer the same exact capacity, so you can get in trouble if you add a drive 32MB short.
 
* We will left 256M free. NEVER fill an entire drive with a RAID array. Drives, ie. all 8G, doesn't necessary offer the same exact capacity, so you can get in trouble if you add a drive 32MB short.
  
 
= Card 2 =
 
= Card 2 =
  256M for the swap
+
  256M for the swap. Having swap on two different cards is a good thing.
 
That's all for now, the other partitions will be created under Slackware, and will be:
 
That's all for now, the other partitions will be created under Slackware, and will be:
  1.5G unformated RAID
+
  1.5G unformated RAID.
 
  2G unused. Do what you want with it.
 
  2G unused. Do what you want with it.
  
Line 48: Line 50:
  
 
= Create the RAID 1 array =
 
= Create the RAID 1 array =
 +
* Load module ?
 +
* The RAID devices names are md0, md1, md2 etc..
 
  mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/mmcblk0p3 /dev/mmcblk1p2
 
  mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/mmcblk0p3 /dev/mmcblk1p2
  
 
= Format the RAID array =
 
= Format the RAID array =
 +
* As usual, we choose the Linux extended 2 filesystem.
 
  mkfs.ext2 /dev/md0
 
  mkfs.ext2 /dev/md0
  
Line 71: Line 76:
 
= Remove a drive from the array =
 
= Remove a drive from the array =
 
* It's likely to be the one in the right SD slot.
 
* It's likely to be the one in the right SD slot.
 +
* Unmount the swap:
 +
swapoff /dev/mmcblk1p1
  
 
= Repair the array =
 
= Repair the array =
 
* Depending the size of your RAID partition and he data on it, it can take a while.
 
* Depending the size of your RAID partition and he data on it, it can take a while.
 +
* Mount the swap:
 +
swapon /dev/mmcblk1p1

Revision as of 23:25, 17 April 2012

WIP WIP WIP HURRAID

  • Need to properly rebuild one array while completing.
  • For now, don't try this incomplete tutorial unless you have some RAID knowledge
  • Once finished and this warning removed, go for it.

RAID

  • http://en.wikipedia.org/wiki/RAID
  • We will use the robust native Linux software RAID.
  • It's a feature that can be used on the Pandora, so let's have fun with it
  • I will cover here only a RAID 1 (mirror) on two SD cards, as it should be the more interesting for a server usage because under read load, you should reach about 27MB/s against 16MB/s on one card.
  • A SD + USB drive can also work although untested. Same with a two SD + USB drive configuration.
  • This array will be mounted as /srv , the standard server folder.

Partitioning

  • So you have to partition your system SD card a bit differently than the default SL4P setup.
  • In this example, we will use the recommended minimal 8G card for the slot 1.
  • You can use a different sized card for the right slot. To keep thing interesting, the minimum size is 4G for this second card, and we will use 4G in this example.
  • The RAID 1 partitions must have the same exact size.

Card 1

  • Partition that way:
6G ext2 for the system.
256M for the swap.

That's all for now, the third partition will be created under Slackware, and will be:

1.5G RAID.
  • We will left 256M free. NEVER fill an entire drive with a RAID array. Drives, ie. all 8G, doesn't necessary offer the same exact capacity, so you can get in trouble if you add a drive 32MB short.

Card 2

256M for the swap. Having swap on two different cards is a good thing.

That's all for now, the other partitions will be created under Slackware, and will be:

1.5G unformated RAID.
2G unused. Do what you want with it.

Install SL4P

  • Uncompress the rootfs on the first SD card, first partition, put the card in your OP, and boot it.
  • Log in.

Backup /srv

  • As root:
mkdir /srv-save
mv /srv/* /srv-save/

Finalizing card 1 setup

  • As root:
cfdisk

Finalizing card 2 setup

  • As root:
cfdisk

Create the RAID 1 array

  • Load module ?
  • The RAID devices names are md0, md1, md2 etc..
mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/mmcblk0p3 /dev/mmcblk1p2

Format the RAID array

  • As usual, we choose the Linux extended 2 filesystem.
mkfs.ext2 /dev/md0

Make the RAID configuration permanent

mdadm --scan > /etc/mdadm.conf

Edit /etc/fstab and add these lines:

/dev/mmcblk1p1   swap   swap   defaults           0  0
/dev/md0         /srv   auto   defaults,noatime   1  1

Final step

  • As root:
mount/dev/md0
mv /srv-save/* /srv/
rm -rf /srv-save/
  • That's it, you have now a RAID 1 array on your Pandora :^).

Some Practice

  • If you want to know how to repair a RAID array, let's simulate a failure.

Remove a drive from the array

  • It's likely to be the one in the right SD slot.
  • Unmount the swap:
swapoff /dev/mmcblk1p1

Repair the array

  • Depending the size of your RAID partition and he data on it, it can take a while.
  • Mount the swap:
swapon /dev/mmcblk1p1