我对 Linux 设备管理和文件系统还不熟悉,所以这个问题的答案可能是“不,当然不是。你在想什么?”或“是的,当然。这不是很明显吗?”尽管如此,我希望一点专业知识可以消除我的困惑。
我最近发现了一个旧脚本,它可以创建卷并将其附加到 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
这就是整个文件系统的创建过程。相比之下,每一个教程我可以寻找在网络(这些只是示例)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
软件 RAID 的创建方式与硬件 RAID 有区别,但我似乎无法弄清楚上述脚本片段创建了什么(如果有的话)。它是 RAID 吗?不是吗?还是完全不同的东西?
答案1
“不,当然不是。你在想什么?”
mdadm RAID 0 将数据以小块(此处为 256KB)的形式分布在所有四个卷上,从而为您提供 RAID 0 所期望的性能提升。
您在此处列出的 LVM 方法也执行相同的条带化,使其功能上等同于 RAID 0。(这不是 LVM 的默认行为。)
您可以使用任一方法,但 LVM 方法实际上限制了您,因为如果不完全重新创建逻辑设备,您将无法稍后添加卷。
答案2
你的第一个例子是使用逻辑卷管理器创建具有类似 RAID0 属性的卷。LVM 支持剥离和镜像。
答案3
就我而言,我倾向于在我们的云中使用两者;本质上,我创建 raid 设备 /dev/md0,然后使用 lvm 进行管理。优点是我可以使用任何需要的 raid 级别来满足我的性能或数据安全性(raid 0 用于高速 IO 操作,如果数据极其宝贵,则使用 raid 10。)我使用 LVM 让我能够轻松地为文件系统和快照数据增加容量(如果我的数据跨多个驱动器,亚马逊的快照功能就没什么用了。)