LVM和灾难恢复


13

我了解LVM是什么以及它完成了什么,但是我感觉好像缺少了一些东西。

可以说我们有两个物理驱动器,sda和sdb。两者都是100兆。我将它们放入VolumeGroup1并创建一个200兆的LogicalVolume1。

如果创建一个150兆的文件会怎样?在sda上物理上会产生100兆字节,在sdb上会物理上产生50兆?如果是这样,什么告诉操作系统一个文件在一个驱动器上,而另一个文件在另一个驱动器上?

硬盘故障怎么办?假设没有RAID,如果sdb发生故障,sda上的所有数据都会丢失吗?无论如何,要控制哪些物理驱动器上的文件是什么?

您通常如何管理LVM?您是否创建一个或两个大卷组,然后按需要进行分区?还有其他提示吗?


1
如果您想避免RAID冗余,大介质并且可以
承受

Answers:


15

可以说我们有两个物理驱动器,sda和sdb。两者都是100兆。我将它们放入VolumeGroup1并创建一个200兆的LogicalVolume1。
如果创建一个150兆的文件会怎样?在sda上实际会出现100兆字节,在sdb上会实际产生50兆?

正确(假设在文件创建之前文件系统为空)。

如果是这样,什么告诉操作系统一个文件在一个驱动器上,而另一个文件在另一个驱动器上?

LVM告诉操作系统只有一个200MB磁盘。然后,内核的LVM部分(分为两个部分,用户空间管理工具和内核驱动程序)将操作系统看到的内容映射到磁盘上的物理位置/块。

硬盘故障怎么办?假设没有RAID,如果sdb发生故障,sda上的所有数据都会丢失吗?无论如何,要控制哪些物理驱动器上的文件是什么?

是的,请考虑数据丢失。

如果创建较小的逻辑卷,则可以使用pvmove命令将它们从磁盘移动到磁盘。

您通常如何管理LVM?您是否创建一个或两个大卷组,然后按需要进行分区?还有其他提示吗?

我倾向于创建大型卷组,然后根据需要创建逻辑卷。无需完全分配卷组中的所有空间;在需要时分配它。增大逻辑卷的大小很容易,并且几乎所有现代文件系统都可以轻松增长。


您确定第一个吗?我以为LVM通常默认为条带化,因此150 MB的文件在每个驱动器上可能大约有75 MB
freiheit 2009年

2
除非您在创建逻辑卷时指定--stripes <num>(short -i <num>),否则不会创建条带。
pgs

PS,我的答复这里包含的脚本会告诉你它的PV每个LV用途:serverfault.com/questions/28592/...
PGS

@ freiheit,pgs是正确的,默认值是扩展而不是分条卷。
艾利·佩恩

关于管理,我愿意为我的3个HD创建一个lvm组,但只创建限于物理卷的逻辑卷,然后仅使用可用空间创建快照。您是否认为这对家庭用户最安全(他们没有突袭,也没有钱立即更换东西)?
Aquarius Power

4

使Linux中的LVM和软件突袭工作的根本原因是内核的设备映射器部分。这就是将物理设备的块地址抽象为您正在使用的虚拟块设备的原因。

在将LVM与数据一起使用时,您确实需要了解数据可用性的影响。这并不是说LVM实际上很危险,如果使用正确的实践,它对可用性的影响很小。

在您提出问题的情况下,建议您的数据可用性与RAID0相同,如果任何驱动器发生故障,则会导致数据丢失。

在实践中,如果不在某种RAID上运行LVM,就不会使用LVM。我在30TB的文件服务器上使用了LVM,该文件服务器在一个VG中具有大约20个Hardware RAID5卷。但是,如果您有足够的免费范围,则可以使用pvmove从一个或多个PV迁移数据,以免出现问题。

但是,始终要有不时测试的备份策略。


3

您通常如何管理LVM?您是否创建一个或两个大卷组,然后按需要进行分区?

我的总体策略是将可能迁移(作为一个整体)迁移到另一个系统的物理卷放在单独的卷组中。

如果您有外部存储,最好将其放在单独的卷组中。从物理上将其与该计算机断开连接并连接到另一台计算机在物理上很容易,因此从逻辑上讲,在LVM中导出/导入它也应该很容易,同时保持数据完整。

如果您的内部磁盘上已经有一个vg00,然后又为您的机器购买了一个内部磁盘,请问自己一个问题:新磁盘上的数据是否会绑定到vg00,并且永远不会移动数据到另一个系统?在这种情况下,它应该是vg00的一部分。否则,我将创建vg01,因为它可以很容易地单独导出/导入。


0

如果像这样的组中有两个驱动器作为物理卷,则您拥有的是JBOD(只是一堆磁盘)阵列。如果其中一个驱动器发生故障,将不会比将驱动器排列在RAID0阵列中得到更好的保护。

如果将卷组分为多个逻辑卷,则无法直接控制如果卷组中只有一个逻辑卷(这将由卷中的文件系统而不是LVM控制),则不能直接控制两个驱动器上的内容。可以手动命令其创建,以使给定的逻辑卷位于给定的驱动器上。

我相信,VG中的每个PV都有一个LV布局的副本,并且数据没有像RAID0那样被剥离,因此,如果您的一个驱动器出现故障,但是如果完全担心数据丢失,那么您确实有更多的恢复机会我根本不会考虑以这种方式使用两个驱动器(通过LVM或RAID0)。


0

如果创建一个150兆的文件会怎样?在sda上物理上会产生100兆字节,在sdb上会物理上产生50兆?如果是这样,什么告诉操作系统一个文件在一个驱动器上,而另一个文件在另一个驱动器上?

LVM(逻辑卷管理器)将物理卷收集到卷组中。每个物理卷(驱动器本身)都有称为物理盘区的小块。这些扩展区在磁盘中具有uniq标识符。实际上,它们是按顺序编号的。创建逻辑卷时,它是根据与物理扩展区配对的逻辑扩展区构建的。逻辑盘区在逻辑卷中具有uniq ID。在HP-UX中,您可以检查哪个逻辑扩展区与哪个物理扩展区配对。在SLES11中,我不知道如何检查它。lvdisplay --maps应该很好,但不适合(对我来说)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.