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


39

我即将将Box设置为基本上是文件服务器。我计划在盒子中安装多个驱动器,并希望将它们全部设置好,以便它们看起来像是一个驱动器。因此,我基本上可以将其安装在说/ media上,而不必关心使用哪个驱动器。我不确定执行此操作的正确术语是什么,因此在这种情况下,我的Google Fu毫无用处。

那么,如何将多个硬盘驱动器显示为一个驱动器呢?

Answers:


17

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


1
谢谢。需要注意的是,似乎我想要的是SettingUpLVM-WithoutACleanInstall,因为我没有使用Raid或加密任何东西。
雅各布·斯科恩

47

我决定编写逐步设置的指导。一个重要的注意事项是,我是在从不属于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到项目列表。
  • 我们还想编辑lvm配置来更新过滤器,这样扫描就不会花很长时间了(无论如何,我认为这就是为什么)。这样做sudo nano -w /etc/lvm/lvm.conf并更改行:

过滤器= [“ a /.*/”]

成为:

过滤器= [“ a | / dev / hd [ab] |”,“ r /.*/”]

  • 现在我们需要设置第一个LVM。做sudo vgscan。您应该看到类似以下内容:

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

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

  • 现在运行sudo pvcreate /dev/sda1以设置分区。
  • 现在,运行sudo vgcreate media /dev/sda1将介质替换为您希望分区被标记为的名称。
  • 现在,运行sudo lvcreate -l100%FREE -nvolume media要用要调用的名称替换卷。这将使用分区中的所有可用空间。
  • 现在我们需要格式化该卷,以便对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 / Movies / mnt / shared / media

哪里/mnt/temp/Movies是你要复制的文件夹。


快速问题...制作完LVM后,说用两个驱动器,您是否只需完成相同的步骤,以后再添加其他驱动器?

@克雷格是的。
雅各布·斯科恩

2
发出pvcreate / dev / sda1时,我得到以下信息:找不到设备/ dev / sda1(或被过滤忽略)。...根据启动板错误#136830 ... lvm.con中的过滤器[“ a | / dev / hd [ab] |”,“ r /.*/”] ...实际上需要阅读:[“ a | / dev / [hs [d [ab] |“,” r /.*/“]否则,非常感谢-很好的方法。C.

我也有同样的问题,谢谢你问雅各布!不过我在想:重新安装Ubuntu时这如何工作。目前,在经过树脂层安装后,我只是将磁盘安装回去,而我的所有数据仍然在那里,在这种情况下如何工作?(我的ubuntu磁盘是一个单独的磁盘,但是由于整个lvm配置似乎都存储到了ubuntu磁盘中。)
Maarten Kieft

2
要添加驱动器,您也可以sudo lvextend -l +100%FREE /dev/media/volume填充所有可用空间。
jcady

6

我个人将确保所有驱动器的大小都差不多,然后从它们创建RAID 5“阵列”。RAID 5的缺点是丢失了一个磁盘的总可用磁盘空间。RAID 5的优点是,如果其中一个磁盘死了,则不会丢失任何东西,您只需更换损坏的HDD。

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


谢谢你的提示。我实际上有几个大小不一的驱动器。因此,这基本上是为它们找到用处。如果我丢失了一些东西虽然会很烂,但我不能用最少的努力就取代它并不重要,对我来说很重要的东西已经备份了。但是+1可能对其他人有用的提示。
雅各布·斯科恩

mdadmtw 它是一种软件RAID控制器,支持5级和6级等好东西。“ RAID并非备份”,但是从驱动器死机中恢复当然要容易得多,您只需投入另一个驱动器,等待很长一段时间当它重新同步时,您就可以离开了。您可以与活动磁盘重新同步,但是它的速度指数级地降低。
奥利(Oli)
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.