Baseando esta pergunta nas informações que recebi em Por que o df mostra apenas metade do tamanho de um array RAID10? , Como devo criar um array RAID10 usando volumes do EBS na Amazon, de uma forma que não seja redundante demais?
Como a pergunta vinculada mostra, eu estava usando um guia da empresa 10gen (que criou o mongodb) para saber como criar um array raid10 usando o EBS.
Encontrei um problema com o tamanho da matriz criada e recebi a resposta de que deveria usar uma abordagem diferente para o uso de LVM sobre MDADM do script.
Como esse é o primeiro encontro com o RAID para mim, não consigo entender exatamente as diferenças entre o que o script faz e a maneira sugerida do LVM (nem entendo como fazê-lo). / p>
Eu sou um programador e me considero muito confortável com máquinas linux que aprendi ao tentar realizar o que preciso fazer. Agora chegou a hora de conhecer as parcelas RAID.
Informação relevante:
Instância é m1.large Ubuntu 11.10.
Aqui está o script da pergunta vinculada, por motivos de conforto:
#!/bin/sh
disk1="/dev/xvdh1"
disk2="/dev/xvdh2"
disk3="/dev/xvdh3"
disk4="/dev/xvdh4"
echo "*** Verifying existence of 4 volumes $disk1, $disk2, $disk3 and $disk4"
if [ -b "$disk1" -a -b "$disk2" -a -b "$disk3" -a -b "$disk4" ]; then
echo "# Found expected block devices."
else
echo "!!! Did not find expected block devices. Error."
exit -1
fi
until read -p "??? - How big (in GB) are the disks (They should be the same size)? " disk_size && [ $disk_size ]; do
echo "Please enter a disk size."
done
lv_size=$(echo "scale=2; $disk_size * 2.0" | bc)
echo "*** Assuming a per disk size of $disk_size gigs, will create a logical volume of $lv_size gigs, with $lv_size reserved for snapshots"
echo "*** Partitioning disks..."
echo "~ Partitioning $disk1"
echo ',,L' | sfdisk $disk1
echo "~ Partitioning $disk2"
echo ',,L' | sfdisk $disk2
echo "~ Partitioning $disk3"
echo ',,L' | sfdisk $disk3
echo "~ Partitioning $disk4"
echo ',,L' | sfdisk $disk4
sleep 6
echo "*** Creating /dev/md0 as a RAID 10"
/sbin/mdadm /dev/md0 --create --level=10 --raid-devices=4 $disk1 $disk2 $disk3 $disk4
echo " ~ Allocating /dev/md0 as a physical volume."
/sbin/pvcreate /dev/md0
echo " ~ Allocating a Volume Group 'mongodb_vg'"
/sbin/vgcreate -s 64M mongodb_vg /dev/md0
echo " ~ Creating a Logical Volume 'mongodb_lv'"
num_extents=$(echo "$disk_size * 1024 / 64" | bc)
/sbin/lvcreate -l $num_extents -nmongodb_lv mongodb_vg
echo " ~ Formatting the new volume (/dev/mongodb_vg/mongodb_lv) with EXT4"
/sbin/mkfs.ext4 /dev/mongodb_vg/mongodb_lv
echo " ~ Done! Go ahead and mount the new filesystem. Suggested FStab: "
echo " /dev/mongodb_vg/mongodb_lv /data ext4 defaults,noatime 0 0"
Tags lvm raid mdadm software-raid raid10