Changes

Software RAID on Linux

4,766 bytes added, 15:47, 3 May 2019
/* Software RAID on 3.x Linux */
The following lines were added (+) and removed (-):
[[Software RAID]] is performed via the Linux kernel.  No RAID controller is required on the computer.  If the computer has a Linux compatible RAID controller then hardware RAID can be used.  [[Hardware RAID]] is not discussed here.mdadm is a Linux utility used to manage and monitor software RAID devices. It is used in modern GNU/Linux distributions in place of older software RAID utilities such as raidtools2 or raidtools.  == Software RAID on 3.x Linux===== the /boot filesystem ===In the past the /boot filesystem must be used either without md support, or else with RAID1.  With modern kernels the it is possible to load the MD support as a kernel module through the initramfs mechanism. This approach allows the /boot filesystem to be inside any RAID system without the need of a complex manual configuration. * In the past you couldn't put /boot inside the RAID array, now you can.So you have a couple options in order to have a setup where each drive can be bootable.  One is to have a /boot partition on each drive, or the other involves having /boot within a RAID array.=== Mdadm ===The mdadm utility can be used to create and manage storage arrays.  === Example: 3-way RAID-1 array ===The /boot partition is stored at /dev/md0. This installs GRUB to each disk, so that if one disk fails, you can boot off one of the other disks. # grub grub> find /grub/stage1  (hd0,0)  (hd1,0)  (hd2,0) grub> device (hd0) /dev/sda grub> root (hd0,0) grub> setup (hd0) grub> device (hd0) /dev/sdb grub> root (hd0,0) grub> setup (hd0) grub> device (hd0) /dev/sdc grub> root (hd0,0) grub> setup (hd0) grub> quit== Legacy Linux Software RAID ==== A RAID 5 Example ==For the most part software RAID functions under linux now as it did ten years ago.  However, since the information in this section was collected over ten years ago it will be considered outdated. === Software RAID 1 Example ===For this example an older 32-bit Pentium computer is used as a file server with two large capacity drives configured to RAID Level 1: Drive Mirroring. Trisquel Linux is a lightweight Debian based distribution.  Booting from the Live CD load the Trisuel environment.  Installation can be performed here only after the drives are properly configured for RAID.  Partition the drives and create the RAID array before installing the Linux distribution. Each drive is the same size. Each drive needs to have identical partitions created. Using fdisk create a small partition of less than 1GB and use the remaining space for the second partition. Due this for each drive. The starting block will likely be at 2048, which is fine. Ensure that you use the same starting block and ending block on both. When specifying the ending block in fdisk new partition creation, you can specify the starting block as 2048 and then for the ending block specify a size in megabytes. Use the format beginning with the + sign. For 840MB enter "+840" when it asks for the ending block.  Step Summary:#Create primary partition at the beginning of each of the two hard drives and of a small size such as 1GB or less.#Create another primary partition using the remaining disk space on each of the drives.#Use fdisk to convert partitions to a type needed for building the RAID array #Install RAID manager: mdadm apt-get install mdadm#The first partition will be used to mount /boot#The second partition will be used for SWAP space and / root.#Install Linux on the RAID partitions When specifying the ending block in fdisk new partition creation, you can specify the starting block as 2048 and then for the ending block specify a size in megabytes. Use the format beginning with the + sign. For 840MB enter "+840" when it asks for the ending block. If you have 2 drives, /dev/sda and /dev/sdb fdisk /dev/sda Create Partitions with fdisk *    d - delete any existing partitions*    n - create a new partition  fdisk /dev/sdb Create Partitions with fdisk *    d - delete any existing partitions*    n - create a new partition Once again using fdisk go back into each drive and change the "type" of the partitions to  Now use fdisk to convert partitions to a type needed for building the RAID array  fdisk /dev/sda *    t - change the partition type to "fd". You can get a list of available types  === Software RAID 5 Example ===== (Q). Did everything load ok with RAID when I booted? ===== (Q). Did everything load ok with RAID when I booted? ===== (Q). Hows RAID doing now? or Has a drive died while its running? ===== (Q). Hows RAID doing now? or Has a drive died while its running? ===== (Q). What does it mean when I see "kicking hda1" or "kicking" whatever in the=== (Q). What does it mean when I see "kicking hda1" or "kicking" whatever in the dmesg and RAID / the system will not start? ===dmesg and RAID / the system will not start? ==== (*). Useful command summary: ===== (*). Useful command summary: ===== (man). lsraid usage examples ===== (man). lsraid usage examples ====== Command Reference by Example === vi /etc/raidtab                dmesg                          cat /proc/mdstat                raidhotadd /dev/mdN /dev/hdXN  raidhotremove                  lsraid -a /dev/mdN              lsraid -A -d /dev/hdcN          raidstop                        raidsetfaulty                  mkraid -f (dangerous!)          badblocks                      mount /proc /proc -t proc     
Bureaucrat, administrator
16,192
edits