根据我得到的信息提出这个问题为什么 df 只显示 RAID10 阵列大小的一半?,我应该如何使用亚马逊上的 EBS 卷创建 RAID10 阵列,以防冗余过多?
正如链接问题所示,我正在使用 10gen 公司(创建 mongodb)的指南来了解如何使用 EBS 创建 raid10 阵列。
我遇到了与创建数组的大小有关的问题,并得到的答复是,我应该对脚本的 LVM 而非 MDADM 使用不同的方法。
由于这是我第一次接触 RAID,我似乎无法准确理解脚本的功能与 LVM 建议的方式之间的区别(也不了解如何操作)。
我是一名程序员,我认为自己非常熟悉 Linux 机器,这是我在努力完成需要完成的工作时学到的。现在到了我了解 RAID 安装的时候了。
相关信息:
实例是m1.large Ubuntu 11.10。
出于舒适的原因,这里是链接问题中的脚本:
#!/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"