LVM 逻辑卷具有最初相邻的扩展,但可通过不相邻的扩展进行扩展

LVM 逻辑卷具有最初相邻的扩展,但可通过不相邻的扩展进行扩展

我打算使用LVM 代替扩展 MBR分区及其逻辑卷。 LVM 对我来说是一个有点新的概念(从某种意义上说,尽管我知道它的存在,但我以前从未尝试过使用这个选项),所以我需要一些帮助。

问题

我会有只有一个卷组放在只有一个物理卷。我要那个初始延伸我的逻辑卷的数量是邻近的(卷最初是连续的)。创建所有需要的逻辑卷后,应该有一个我的 PV 末尾有空白处供将来使用(根据需要扩展 LV)。因此,只有后来扩展初始大小的 LV 部分才会与这些 LV 的初始空间不相邻。lvcreate命令的哪个选项--alloc--type旨在用于刚刚描述的用途。

可能的解决方案

选项:

--alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit

--type linear|striped|snapshot|mirror|raid|thin|cache|thin-pool|cache-pool

也许有一个选择明确指定 PE 范围按照pvmove命令但是尽管创建逻辑卷,不之后创建它?

就像是:

pvmove /dev/sdb2:501-800   /dev/sdb2:1001-1300
pvmove /dev/sdb2:101-300   /dev/sdb2:1301-1500
pvmove /dev/sdb2:4001-5500 /dev/sdb2:1501-3000

...但是与单身的 lvcreate命令而不是上面的序列,这可能会不必要地花费很长时间:

lvcreate /dev/sdb2:1001-3000 -n home vg1

...而不是下面的一个,可以(正如我想的那样)创建与上面命令行大小相同的分散LV(如果上面的语法正确的话):

lvcreate -l 2000 -n home vg1

原因

原因是我不希望我的逻辑卷(以及这些卷上的大文件)过于碎片化。一个选项是使用非常大的扩展(64 MiB 或 128 MiB),但我认为应该(并且可能是)一个选项可以额外减少我的文件碎片和分散在驱动器上的情况。

简而言之

  • --alloc--type选项有什么区别?
  • 我应该使用哪一个以及以什么参数?
  • 如果这些选项都不能实现我想要的,那么我可以做什么,而不是创建分散的体积,然后移动(按pvmove)其每个范围,以便整个体积是连续的。
  • PE 的初始范围可以在创建时指定吗?

答案1

如果您从一个全新的 PV 开始,那么当您创建 LV 时,默认情况下,它将连续分配 PE;因为它可以。--alloc contiguous创建 LV 时不需要指定。

正如您所说,扩展 LV 时,PE 将不再连续。归根结底,您所寻求的行为正是 LVM 默认执行的行为。

但是,您可以通过以下方式使此行为更加明确:

  1. 使用以下方式创建 LV--alloc contiguous
  2. 将 LV 的分配策略更改回正常状态lvchange;创建 LV 后,您可以随时执行此操作。

相关内容