最佳实践:添加额外磁盘以扩展逻辑卷或扩展现有磁盘

最佳实践:添加额外磁盘以扩展逻辑卷或扩展现有磁盘

我们在 Nutanix 平台上托管客户的 Oracle VM。到目前为止,每当他们的 VM 需要更多空间时,他们都会让我们添加一个额外的 vDisk,然后将其添加到 VG 中以扩展所需的 LV。他们这样做的原因是他们不知道如何在不重新启动操作系统的情况下在 Linux 内扩展磁盘及其分区。

当然,在 Linux 中添加磁盘并在操作系统运行时扩展分区、LV 和文件系统是完全可能的,在我看来,这是保持简单和线性的首选方法。但是,我对池化存储后端上的 LVM 了解不够,无法从性能角度证明这一点。

我的问题是:

与在将多个物理磁盘的存储汇集在一起​​的虚拟化平台上使用单个大型 vDisk 相比,单个 LV 的多个 vDisk 对 Oracle DB 的 I/O 性能有何影响?

答案1

我建议你避免使用分区,因为分区 a) 很难调整大小,并且可能需要重新启动,b) 在调整大小超过约 500GB 的大小限制时会导致几何形状发生变化。多个磁盘还会导致虚拟机管理程序对磁盘的称呼产生混淆。

我倾向于使用 SYS 磁盘和数据磁盘。我像处理常规磁盘一样处理 SYS 数据(进行一些分区),但数据磁盘(例如 /dev/sdb)我不进行分区,而是直接将其用作物理卷 (PV)。

假设您有一个目录 /srv,它从 /dev/mapper/vg-DATA/lv-srv 作为 ext4 挂载

如果我想向该逻辑卷添加 100GB,我倾向于执行以下操作(无需重新启动):

  1. 调整虚拟机管理程序中底层磁盘 (sdb) 的大小
  2. echo - - - > /sys/block/sdb/device/rescan使内核重新扫描该 SCSI 设备。(不确定 /dev/vd* 等设备是否需要这样做)
  3. dmesg | tail应该显示内核已经接收了容量变化。
  4. pvresize /dev/sdb将导致 PV 自动调整其大小(它会显示‘1 成功,0 不成功’或类似信息)。
  5. vgs DATA不会显示它有一些可用空间。
  6. 调整 LV(本例中为 'srv')的大小lvresize --name srv --extents='+100%FREE' --resizefs DATA

(我凭记忆输入了这些,所以如果我全部正确,那就证明了这个过程是多么的可重复)

请注意,我说的--resizefs是假设您使用的文件系统能够在线调整大小(例如 ext4 和 xfs)

我应该说这也许不是常见的做法……但根据我的经验,它比我们以前使用分区的方法要好得多。有问题的服务往往发生在 SYS(分区)磁盘需要工作时,但在这个设计中,我告诉我们的工程师,这应该是他们应该创建一个数据磁盘并重构存储的信号(这确实往往需要停机才能切换)。当我指定这种做法时,我试图简化我们的操作,以获得更接近您在云服务中看到的体验。

请注意,在这种情况下,“最佳实践”过于依赖物理设备,而就虚拟机而言,则需要重新考虑。现在知道“最佳实践”是新范式可能还为时过早。我会选择“良好一致的本地实践”,这样可以轻松满足您的服务要求。

我还应该警告您,对于“fdisk”之类的程序来说,磁盘可能显示为空。使用“lsblk”查看使用的存储(并默认安装它)。这就是为什么 Oracle 不建议在未分区的磁盘上使用 ASM;但也许 fdisk/parted 足够智能,可以识别作为物理卷的未分区磁盘(我自己不知道)。

关于性能,当我们将 Oracle 数据库工作负载移至虚拟机时,我们与 VMWare 管理员就此进行了一些讨论。在这种情况下,他们为此准备了一些专用存储(还有其他优化;我不记得是什么了,但我记得他们禁用了快照)。他们确实担心我们没有在同一虚拟总线上安装一堆虚拟 scsi 设备;但我不知道这在今天有多重要。

简而言之,从性能角度来看,如果 Nutanix 没有针对您的 Oracle DB 版本以及存储和虚拟基础架构的版本和配置的参考架构,那么您必须进行基准测试和比较。bonnie++ 等工具可能(仍然?)有用。您还应该更加关心是否会使用 ASM,或者是否会使用文件。

答案2

与在将多个物理磁盘的存储汇集在一起​​的虚拟化平台上使用单个大型 vDisk 相比,单个 LV 的多个 vDisk 对 Oracle DB 的 I/O 性能有何影响?

我可以立即想到的性能瓶颈和限制是/可能是:

  • 上行至存储网络将虚拟机管理程序连接到存储后端。
    无论访问一个或多个虚拟磁盘,都将使用相同的上行链路,没有区别。

  • 分配的 I/O 限制。
    大多数虚拟化堆栈允许平台为客户机设置配额/限制,以防止单个失控的虚拟机导致在同一虚拟机管理程序上同时运行的其他虚拟机资源匮乏。
    如果在客户机级别分配 IO 限制,则使用单个大型虚拟磁盘或多个较小的虚拟磁盘不会产生太大区别。
    当按块设备分配 IO 限制时,每个额外的虚拟磁盘都会为您提供额外的 IO 配额和额外的(潜在)性能。

  • 最大块设备数量。
    可以附加到单个虚拟机的卷/虚拟磁盘数量存在上限。这限制了通过添加更多虚拟磁盘可以执行的大小调整量。

相关内容