如何将多个硬盘设置为一个卷?

Jac*_*oen 46 hardware lvm disk

我即将设置 box 基本上是一个文件服务器。我计划在包装盒中安装多个驱动器,并希望将它们全部设置为一个驱动器。所以我基本上可以将它安装在 /media 上,而不是真正关心使用哪个驱动器。我不确定这样做的正确术语是什么,所以我的 Google fu 在这种情况下没用。

那么如何将多个硬盘驱动器设置为一个驱动器呢?

Jac*_*oen 56

我决定写下我所做的逐步说明来设置它。一个重要的注意事项是,我在一个系统上执行此操作,在该系统中我从不属于 LVM 的单独分区启动。因此,LVM 仅用于存储,并没有操作系统启动所需的任何文件。这也是为了创建一个大驱动器的外观,尽管可以使用类似的技术来创建多个驱动器的外观(实际上是分区)。这是一个非常自私的大脑转储,因为其他指南对我来说并不完整。所以我希望它可以帮助其他人。

这些说明主要来自Murat Gunes 提供的链接以及我从这里收集的更多信息。


我从一个磁盘开始,里面没有我需要的任何东西。
  • 首先,您需要创建一个分区作为 Linux LVM。您可以使用 fdisk 来执行此操作。您可以通过运行以下命令查看 Ubuntu 看到的所有驱动器以及它们的列出方式:sudo fdisk -l

每个部分的第一行应该为您提供足够的信息来识别您的驱动器。它看起来像:

磁盘 /dev/sda:500.1 GB,500107862016 字节

重要的部分是/dev/sda。现在运行:sudo fdisk /dev/sda。你会看见:

命令(m 寻求帮助):

键入p以列出驱动器上的分区。您需要删除要成为 LVM 一部分的分区。所以键入d删除。如果驱动器只有一个分区,它将删除它(将其标记为删除,除非我们告诉它这样做,否则它不会发生)。否则我认为(我的只有一个)它会要求您输入要删除的号码。

现在您需要创建新分区。键入n新的。它询问是扩展的还是主要的。键入p主要。它要求输入分区号,键入 1。对于第一个柱面和最后一个柱面,只需将它们留空即可使用默认值。

现在您需要将其设置为 Linux LVM。键入t。它要求一个十六进制代码,8e用于 Linux LVM。你应该看到类似的东西:

将分区 1 的系统类型更改为 8e (Linux LVM)

最后键入w将更改写出到磁盘。

  • 现在我们需要安装 LVM 所以运行sudo apt-get install lvm2安装它。
  • 老实说,我不确定这一步的作用,但其他方向说modprobe dm-mod要加载 LVM 模块。我没有收到任何错误,所以我认为它有效。
  • 我们需要编辑 /etc/modules 文件以在启动时加载此模块。不要sudo nano /etc/modules打开它进行编辑。添加dm-mod到项目列表。如果此文件为空或不存在,只需dm-mod在文件中添加一行即可。
  • 我们还想编辑 lvm 配置以更新过滤器,因此扫描时间不会太长(我认为这就是原因)。所以这样做sudo nano -w /etc/lvm/lvm.conf并更改行:

过滤器 = [ "a/.*/" ]

成为:

filter = [ "a|/dev/hd[ab]|", "r/.*/" ]

  • 现在我们需要设置第一个 LVM。做sudo vgscan。你应该看到类似的东西:

读取所有物理卷。这可能需要一段时间...
没有找到卷组

以防万一已经设置了任何卷组sudo vgchange -a y以使其可用。

  • 现在运行sudo pvcreate /dev/sda1以设置分区。
  • 现在使用您希望分区标记为的名称运行sudo vgcreate media /dev/sda1替换media
  • 现在使用您希望它被调用的名称运行sudo lvcreate -l100%FREE -nvolume media替换volume。这将使用分区中的所有可用空间。
  • 现在我们需要格式化卷,因此对于 ext4,您可以这样做sudo mke2fs -t ext4 /dev/media/volume
  • 制作要安装卷的目录。我做了sudo mkdir /mnt/media
  • 通过执行挂载卷sudo mount /dev/media/volume /mnt/media。现在这仅适用于本次会议。当您重新启动时,它不会自动重新安装。为此,我们需要编辑/etc/fstab文件。为此,请添加sudo nano /etc/fstab并添加以下行:

/dev/media/volume /mnt/media ext4 默认为 0 1

此时您可以开始向磁盘添加文件,因此如果您需要清除要添加的其他磁盘,您可以将它们复制到此处。


将另一个驱动器添加到您的卷

  • 所以再次按照第一个项目符号中的步骤操作,但对于新驱动器。
  • 现在,如果驱动器名是/dev/sdb1那么做的sudo vgextend media /dev/sdb1,将其添加到卷。
  • 现在我们需要卸载卷。要做到这一点sudo umount /dev/media/volume
  • 现在,您可以通过运行查看卷上的统计信息sudo vgdisplay。重要的部分是Free PE / Size。您需要知道可以为下一步添加多少空间。
  • 因此,如果您有 150 Gb 的空间,您会这样做sudo lvextend -L+150G /dev/media/volume
  • 现在运行sudo e2fsck -f /dev/media/volume以检查文件系统。
  • 现在运行sudo resize2fs /dev/media/volume以调整所有内容。
  • 您可以再次运行统计数据并验证是否Free PE / Size已降至您的预期。
  • 通过执行重新安装卷 sudo mount /dev/media/volume /mnt/media
  • 冲洗并重复任何其他驱动器。

我发现有用的另一件事是,在添加磁盘之前,我需要将一些文件从磁盘复制到我创建的 LVM。所以我使用了 `cp -r -v` 以便它递归地复制文件并使用详细的输出,所以我知道它在做什么。完整命令的一个例子是:

cp -r -v /mnt/temp/电影 /mnt/shared/media

/mnt/temp/Movies您要从中复制的文件夹在哪里。

  • 当发出 **pvcreate /dev/sda1** 我得到以下信息:**Device /dev/sda1 not found(或被过滤忽略)。** ...根据 [launchpad bug #136830](https:/ /bugs.launchpad.net/ubuntu/+bug/136830) ... lvm.con 中的过滤器 **[ "a|/dev/hd[ab]|", "r/.*/" ]** 。 ..实际上需要阅读:**[ "a|/dev/[hs[d[ab]|", "r/.*/" ]** 否则,非常感谢 - 很好的操作方法。C。 (2认同)
  • 要添加驱动器,您也可以执行`sudo lvextend -l +100%FREE /dev/media/volume` 来填充所有可用空间。 (2认同)

mgu*_*nes 19

您可能想要使用LVM。您可以在此处找到一些指南。


Jan*_*anC 7

就我个人而言,我会确保所有驱动器(大约)大小相同,并从它们创建一个 RAID 5“阵列”。RAID 5 的缺点是在总可用磁盘空间中损失了一个磁盘的大小。RAID 5 的优势在于,如果您的一个磁盘坏了,您不会丢失任何东西,您只需更换损坏的硬盘即可。

如果您不太在意丢失数据以在其上花费额外的磁盘,或者如果您打算使用一堆已经拥有的不同大小的磁盘,那么最好使用 LVM,正如 Murat 所说。