AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 957605
Accepted
MrCalvin
MrCalvin
Asked: 2019-03-11 08:46:29 +0800 CST2019-03-11 08:46:29 +0800 CST 2019-03-11 08:46:29 +0800 CST

KVM/QEMU 是否正确支持 mdadm RAID5?

  • 772

使用位于 mdadm RAID5 阵列上的来宾文件,我无法获得接近可用性能的任何东西。我相信我优化了阵列和文件系统的所有参数以获得最佳 R5 性能:

  • 设置位图=无
  • 设置条带缓存 = 32768(从 256-32768 尝试)
  • EXT4 stride=128 / stripe-width=384 (chunk 512K, FS block 4K, 3 data-disk)

主机上的阵列性能非常好(105MB 使用无缓存,470MB 使用缓存)。它由 4 个 HDD 组成,相对较慢。

  • 如果图像文件是 raw 或 qcow2,它没有任何不同
  • 尝试了 Virtio SCSI 和 Virtio SATA
  • 尝试了所有缓存组合,也在客户机本身(Windows 10 和 Linux)

KVM/QEMU 是否不能很好地与 RAID5 mdadm 阵列一起使用?

这似乎是一个延迟问题(类似于我在带有本地驱动器的 ESXi 上看到的)。

在此处输入图像描述

延迟近 17 秒,平均写入性能为 1-10MB

来自 virt XML 的示例:

<disk type='file' device='disk'>
   <driver name='qemu' type='raw' cache='writeback'/>
   <source file='/mnt/R5_DATA/data2.raw'/>
   <target dev='sdd' bus='scsi'/>
   <address type='drive' controller='0' bus='0' target='0' unit='3'/>
</disk>

<controller type='scsi' index='0' model='virtio-scsi'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>

主机:Debian 9 stretch(内核 4.9.0-8-amd64) 在此处输入图像描述

software-raid
  • 2 2 个回答
  • 1015 Views

2 个回答

  • Voted
  1. Best Answer
    MrCalvin
    2019-04-15T05:40:56+08:002019-04-15T05:40:56+08:00

    经过大量测试后,肯定可以获得非常好的性能。有几种情况会产生巨大的不同:

    • md 版本(即内核)、KVM/QEMU 和 virsh 版本
    • 为您的访客缓存配置(您的 virsh XML 文件中的缓存设置)
    • MD配置,尤其是stripe_cache和chunk size(应该设置低到64K)
    • 优化 EXT4 文件系统,例如使用noatime和依赖 UPS 备份等。禁用日志和屏障。

    我正在运行 Debian stable(9,Stretch),这意味着您运行的是非常旧版本的内核、QEMU 和 virsh :-(

    出于同样的原因,我现在搬到了 Ubuntu 稳定版,这将使您大幅提升到这些重要组件的新版本。在我看来,Debian stable 它确实是一个糟糕的选择。当 10/Buster 发布时,猜测它会在一段时间内没问题,但迟早你会有一个过时的系统。

    其次,很明显您需要使用主机系统的页面缓存。使用 MD RAID5 时会进行一些高级缓存。即使缓存已满,性能也很好。在我的情况下,在 JBOD 配置中执行大约 100MB/s 的慢速磁盘上写入超过 200MB/s。

    在 XML 中使用 cache=none 然后使用 Windows 客户机的页面缓存会给您带来非常缓慢的性能。SSD 可能是另一回事。

    还记得在 Windows 客户机中为当前磁盘使用页面缓存设置以获得最佳结果。

    • 1
  2. Gordan Bobić
    2020-08-20T11:49:41+08:002020-08-20T11:49:41+08:00

    你错过了一些技巧。您需要确保整个存储堆栈对齐以实现最佳性能。您需要从顶级 I/O 大小开始并从那里进行优化。例如,使用 64KB 集群创建客户的 NTFS 文件系统,使用 LVM 块设备(注意 LVM 对齐异常),并针对 64KB 块优化软件 RAID。如果您必须使用文件来支持 VM 块设备,请确保文件系统以相同的方式对齐,特别注意您的块组大小(mkfs.ext* 上的 -g 选项)以确保您的块组不会都在同一个磁盘上开始。如果您的顶级应用程序工作负载使用较小的块,则为较小的块对齐,但原理是相同的。

    我写了一篇关于如何确保针对特定工作负载实现最佳文件系统对齐的文章,您可能会发现这篇文章很有帮助。

    • 1

相关问题

  • 具有不同磁盘的 Linux RAID 5

  • USB 驱动器 RAID 阵列

  • windows 2003 软件 raid - 在没有 FT 软盘的情况下启动辅助磁盘

  • RAID - 软件与硬件

  • 用于 Windows 和 Linux 的 ICH9R 上的 RAID 配置和 3xHDD

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve