sav*_*che 47 virtualization linux partition storage hard-drive
在虚拟化环境(在我的例子中为 ESXi)中安装 Linux VM 时,是否有任何令人信服的理由来对磁盘进行分区(使用 ext4 时)而不是仅仅为每个挂载点添加单独的磁盘?
我唯一能看到的是,它可以更轻松地查看磁盘上是否存在数据,例如 fdisk。
另一方面,我可以看到一些不使用分区的充分理由(显然,除了 /boot)。
我没有找到太多关于这个话题的内容。我错过了什么重要的事情吗?
eww*_*ite 27
这是个有趣的问题...
我认为没有明确的答案,但我可以提供一些历史背景,说明围绕该主题的最佳实践可能如何随着时间的推移而发生变化。
自 2007 年以来,我不得不支持在 VMware 环境中以各种形式部署的数千个 Linux VM。我的部署方法不断发展,而且我拥有继承和重构其他工程师构建的系统的独特(有时是不幸的)经验。
过去的日子...
回到那天(2007 年),我早期的 VMware 系统就像我的裸机系统一样进行分区。在 VMware 方面,我使用拆分的 2GB 厚文件来组成 VM 的数据,甚至没有考虑多个 VMDK 的概念,因为我很高兴虚拟化甚至可以工作!
虚拟基础设施...
在 ESX 3.5 和早期的 ESX/ESXi 4.x 版本(2009-2011)中,我使用的是 Linux,在整体厚配置 VMDK 文件上正常分区。必须预先分配存储迫使我以与实际硬件类似的方式考虑 Linux 设计。我正在为操作系统创建 36GB、72GB、146GB 的 VMDK,对通常的 /、/boot、/usr、/var、/tmp 进行分区,然后为“数据”或“增长”分区添加另一个 VMDK(无论是 / home、/opt 或特定于应用程序的内容)。同样,在这个时代物理硬盘大小的最佳点是 146GB,并且由于预分配是一个要求(除非使用 NFS),我需要对空间保持保守。
精简配置的出现
VMware在后来的 ESXi 4.x 版本中围绕精简配置开发了更好的功能,这改变了我开始安装新系统的方式。随着 5.0/5.1 中添加的完整功能集,一种新型的灵活性允许更多创意设计。请注意,这与虚拟机上增加的功能保持同步,就可以为单个 VM 提供多少 vCPU 和多少 RAM 而言。与过去相比,可以虚拟化更多类型的服务器和应用程序。这是正确的,因为计算环境开始完全虚拟化。
LVM 太糟糕了...
当 VM 级别的完整热添加功能到位并很普遍时(2011-2012),我正在与一家公司合作,该公司努力不惜一切代价维持客户 VM 的正常运行时间(愚蠢)。因此,这包括在线 VMware CPU/RAM 增加以及在现有 VMDK 上调整 LVM 磁盘大小的风险。此环境中的大多数 Linux 系统都是单个 VMDK 设置,在 LVM 之上具有 ext3 分区。这很糟糕,因为 LVM 层增加了操作的复杂性和不必要的风险。例如,耗尽 /usr 中的空间可能会导致一系列错误的决策,最终意味着从备份中恢复系统......这部分与流程和文化有关,但仍然......
分区势利...
我借此机会尝试改变这一点。我是Linux中的分区势利小人,我觉得应该将文件系统分开以满足监控和操作需求。我也不喜欢 LVM,尤其是使用 VMware 以及执行您所要求的操作的能力。因此,我将 VMDK 文件的添加扩展到可能会增长的分区。/opt、/var、/home 可以根据需要获取自己的虚拟机文件。这些将是原始磁盘。有时,这是一种更简单的方法来动态扩展特定的小分区。
奥巴马医改...
随着一个非常引人注目的客户端的加入,我的任务是设计 Linux VM 参考模板,该模板将用于创建他们极其可见的应用程序环境。应用程序的安全要求需要一组独特的挂载,因此与开发人员一起尝试将非增长分区塞入一个 VMDK,然后为每个具有增长潜力或有特定要求(加密、审计等)因此,最终,这些 VM 由 5 个或更多 VMDK 组成,但为未来调整大小和保护数据提供了最佳灵活性。
我今天做什么...
今天,我对 Linux 和传统文件系统的总体设计是在一个瘦 VMDK(分区)上的操作系统,以及用于其他任何东西的离散 VMDK。我会根据需要热添加。对于像 ZFS 这样的高级文件系统,它是操作系统的一个 VMDK,另一个用作 ZFS zpool 的 VMDK,可以调整大小,雕刻成其他 ZFS 文件系统等。
你在很多方面都是对的,我可以看到这个论点——但有一个问题可能会很棘手。如果您使用资源池(我知道我不这样做,可恶的事情),那么如果虚拟机拥有更多磁盘,它们可以获得更多 IO 时间 - 在极端资源受限的情况下,具有两个磁盘的虚拟机可以获得两倍于使用磁盘的 IO 资源单个磁盘。这对你来说可能不是问题,但我想我会指出的。
编辑 - 哦,它也会使捕捉稍微慢一点,但这可能不是问题。
当我在一家特定的“大型虚拟化软件公司”从事基础设施工作时,我们经常需要增加虚拟机文件系统的大小。我们当时使用的是 ext3/4。
增加虚拟磁盘非常容易,在实时操作系统中选择新设备的大小相对容易(在 /sys 中查看),实时调整 ext3/4 文件系统的大小很容易,但似乎总是不可能的(做实时)是调整分区大小。
您必须使用 gparted 或使用 fdisk 重写/调整分区表的大小——但它总是被内核锁定,需要重新启动才能让内核采用新的布局(partprobe 也没有这样做。)
我将许多系统移至 LVM,调整文件系统大小成为一种轻松、几乎愉快的体验!
所有这些都可以在实时系统上安全地完成——而且不需要重新启动!
为什么不是裸盘?这让我感到紧张——我觉得裸磁盘还没有被广泛接受,但我认为我们正处于更广泛接受的边缘。btrfs 邮件列表上有一个与此相关的线程:
http://www.spinics.net/lists/linux-btrfs/msg24730.html
但是裸盘只需要重新扫描和 resize2fs。
所以,总而言之,是的,如果可以,请避免使用分区表。