我是Linux设备pipe理和文件系统的新手,所以这个问题的答案可能是“不,当然不是,你在想什么? 或者“是的,当然,这不是很明显吗?” 尽pipe如此,我希望有一点专业知识可以清除我的困惑。
我最近发现了一个创build并附加卷到EC2实例的旧脚本。 假设我有四个EBS卷, sdf1 , sdf2 , sdf3 , sdf4 。 相关部分看起来像这样:
# Create a RAID0 array pvcreate /dev/xvdf1 /dev/xvdf2 /dev/xvdf3 /dev/xvdf4 vgcreate myvg /dev/xvdf1 /dev/xvdf2 /dev/xvdf3 /dev/xvdf4 lvcreate --stripes 4 --stripesize 256 --extents 100%VG --name mylv myvg mkfs.xfs /dev/myvg/mylv
这是整个文件系统的创build。 相比之下,我可以在网上 find的每一个教程 (这些只是一个抽样)首先使用mdadm ,然后操纵生成的设备,通常是这样的:
mdadm --verbose --create /dev/md0 --level=0 --chunk=256 --raid-devices=4 /dev/sdf1 /dev/sdf2 /dev/sdf3 /dev/sdf4 mdadm --detail --scan >> /etc/mdadm/mdadm.conf
我有点理解 – 虽然松散,没有理解细节的能力mdadm创build软件RAID,这些都与硬件RAID区分开来,但我似乎无法弄清楚上面的脚本代码片段创build。 是RAID吗? 不是吗? 完全是另一回事吗?
“不,当然不是,你在想什么?
mdadm RAID 0在小型(在这里是256KB)块中跨所有四个卷分条数据,使您可以从RAID 0中获得性能提升。
您在此处列出的LVM方法也会进行相同的分条,使其function与RAID 0相同(这不是LVM的默认行为。)
您可以使用任何一种方法,但LVM方法实际上限制了您,因为如果不完全重新创build逻辑设备,您将无法以后再添加卷。
您的第一个示例是使用“ 逻辑卷pipe理器”创build具有像RAID0一样属性的卷。 LVM支持剥离和镜像。
就我而言,我倾向于在我们的云中使用两者; 实质上,我创build了RAID设备/ dev / md0,然后使用lvm进行pipe理。 优点是我可以使用任何raid级别来满足我的性能或数据安全性(对于高速IO操作,raid为0,如果数据非常有价值,则为raid 10)。使用LVM可以轻松地将容量添加到文件系统和快照数据(如果我的数据跨越多个驱动器,则亚马逊的快照function不会有太大帮助)。