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 / 问题 / 522126
Accepted
tfrederick74656
tfrederick74656
Asked: 2013-07-10 18:30:47 +0800 CST2013-07-10 18:30:47 +0800 CST 2013-07-10 18:30:47 +0800 CST

Linux RAID5 最佳块大小

  • 772

我再次提出了如何最好地优化磁盘结构的始终存在的问题。在我的组织中,我们有一个 14TB Linux 软件 RAID 阵列,专门用于存储使用 Symantec Backup Exec 制作的备份。这些是大文件,每个 10GB - 100GB,一些支持的元数据文件大小为几 KB。长话短说,我们必须重新创建数组,我想知道这个用例的最佳数组块大小。

我们设置的详细信息:

一个 Netgear ReadyNAS Pro,运行全新和更新的 CentOS 6.4 安装。

来自各种供应商的 6 个 3TB 消费类(SATA II,7200 RPM)硬盘驱动器(大小相同)。

每个驱动器有 3 个相同的分区,形成 3 个软件 RAID 设备:

  • /dev/md0: 6 x 32GB for / in a RAID6
  • /dev/md1:RAID10 中的 6 x 4GB 交换
  • /dev/md2:RAID5 中的 6 x 2.7TB 存储,总有用存储约为 14TB

此外,还有一个集成的 128MB 闪存设备设置为 /boot

/dev/md2 是我关注的数组。它作为驱动器“R:”提供给运行 Symantec Backup Exec 的 Windows Server 2008 R2 机器,通过多路径 iSCSI 在两台机器上的双千兆 NIC 上运行(也运行 9k 巨型帧)。

在 Server 2008 机器上,R: 被格式化为具有 64k 集群大小的 NTFS,专用于存储备份文件。平均文件通常在 40MB 和 5GB 之间,具体取决于当前完整与增量/差异的比例。磁盘使用率大约是读写之间的 50/50,因为我们也将备份从该驱动器镜像到磁带。

总的来说,考虑到硬件,我认为这个设置优化得相当好,但是我不是存储专家,RAID 块大小的含义略超出我的范围。我知道默认的mdadm块大小是 512KB。这对我的场景来说是最优的吗?我应该调整它以匹配 NTFS 群集大小吗?还是我错过了一些神奇的公式?

感谢您的任何帮助,您可以提供。

编辑:基准结果如下。并非所有组合都经过测试。


##########   4K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   111.551 MB/s
          Sequential Write :    96.759 MB/s
         Random Read 512KB :   107.033 MB/s
        Random Write 512KB :    56.770 MB/s
    Random Read 4KB (QD=1) :     9.500 MB/s [  2319.2 IOPS]
   Random Write 4KB (QD=1) :     5.042 MB/s [  1231.0 IOPS]
   Random Read 4KB (QD=32) :   101.717 MB/s [ 24833.3 IOPS]
  Random Write 4KB (QD=32) :     8.237 MB/s [  2010.9 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 13:10:31
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

##########  32K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    91.276 MB/s
          Sequential Write :    11.119 MB/s
         Random Read 512KB :     0.000 MB/s
        Random Write 512KB :     0.000 MB/s
    Random Read 4KB (QD=1) :     0.000 MB/s [     0.0 IOPS]
   Random Write 4KB (QD=1) :     0.000 MB/s [     0.0 IOPS]
   Random Read 4KB (QD=32) :     0.000 MB/s [     0.0 IOPS]
  Random Write 4KB (QD=32) :     0.000 MB/s [     0.0 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 14:37:05
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

##########  64K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   111.968 MB/s
          Sequential Write :   103.318 MB/s
         Random Read 512KB :   105.047 MB/s
        Random Write 512KB :    48.321 MB/s
    Random Read 4KB (QD=1) :    10.373 MB/s [  2532.5 IOPS]
   Random Write 4KB (QD=1) :     5.180 MB/s [  1264.5 IOPS]
   Random Read 4KB (QD=32) :    95.106 MB/s [ 23219.3 IOPS]
  Random Write 4KB (QD=32) :     9.108 MB/s [  2223.6 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 12:47:37
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

########## 128K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   111.908 MB/s
          Sequential Write :    94.305 MB/s
         Random Read 512KB :   104.772 MB/s
        Random Write 512KB :    43.821 MB/s
    Random Read 4KB (QD=1) :     9.247 MB/s [  2257.6 IOPS]
   Random Write 4KB (QD=1) :     4.929 MB/s [  1203.3 IOPS]
   Random Read 4KB (QD=32) :   101.764 MB/s [ 24844.8 IOPS]
  Random Write 4KB (QD=32) :     7.949 MB/s [  1940.6 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 13:52:01
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

########## 512K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   110.237 MB/s
          Sequential Write :    93.149 MB/s
         Random Read 512KB :   104.892 MB/s
        Random Write 512KB :    41.407 MB/s
    Random Read 4KB (QD=1) :     6.760 MB/s [  1650.3 IOPS]
   Random Write 4KB (QD=1) :     3.539 MB/s [   864.0 IOPS]
   Random Read 4KB (QD=32) :   101.139 MB/s [ 24692.3 IOPS]
  Random Write 4KB (QD=32) :     7.166 MB/s [  1749.6 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 12:22:58
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

##########1024K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   112.327 MB/s
          Sequential Write :    92.353 MB/s
         Random Read 512KB :   107.015 MB/s
        Random Write 512KB :    39.793 MB/s
    Random Read 4KB (QD=1) :     9.536 MB/s [  2328.0 IOPS]
   Random Write 4KB (QD=1) :     3.671 MB/s [   896.3 IOPS]
   Random Read 4KB (QD=32) :   101.990 MB/s [ 24900.0 IOPS]
  Random Write 4KB (QD=32) :     0.000 MB/s [     0.0 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 14:17:08
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)
linux
  • 2 2 个回答
  • 7677 Views

2 个回答

  • Voted
  1. Best Answer
    longneck
    2013-07-10T19:48:44+08:002013-07-10T19:48:44+08:00

    至少,您希望块大小是文件系统块大小的倍数或除数。你明白了。

    其他一切都可能取决于实现。由于您是从头开始,您应该推出自己的基准测试。无需创建 14 TB 的 RAID 集,而是使用每个驱动器中的 500 GB 以不同的块大小进行测试。较小的卷大小将减少创建卷所需的时间。

    当您找到适合您的设置的最佳数量时,然后创建您的 14 TB RAID 集。再次测试以确保您没有性能下降。

    • 4
  2. Gediz GÜRSU
    2021-06-28T04:28:02+08:002021-06-28T04:28:02+08:00

    这取决于使用场景。假设您有很少数量的小文件 < 512KB 假设它是 10000 个文件,其余的是非常大的文件 >10MB 5000 个文件。格式化驱动器时最好有一个 1MB 的簇大小,如果你有 8 个磁盘 raid 10 设置,它将同时读取 128KB。

    如果您所有的小文件和大文件的尾部都是 4KB,则您最多会丢失 508KB * 15000 磁盘空间,这意味着大约 7500MB,即 7.5 GB 磁盘空间损失。

    如果与将块大小设置为 512 KB 并将集群大小设置为 64 KB 相比,您将获得 4 倍的速度。

    所以作为最后的食谱:

    1. 根据文件大小分布选择您的文件系统集群大小
    2. 将其划分为同时使用的磁盘数确定块大小
    3. 如果您选择更大的块和集群,您将为大文件获得速度松散的微小磁盘空间。
    4. 对于小文件不要过多优化机械设置,而是考虑为小于 1MB 的文件添加 nvme 或 ssd 缓存

    另外:

    • 考虑网络基础设施的带宽限制
    • 在 RAID 设置之前检查瓶颈(dd dev/zero to disks watch iostat)
    • 考虑 hba 或 raid 卡 - sata 卡(芯片)和 pci-e 插槽总带宽和每通道带宽
    • 检查电缆是否损坏或松动 (dmesg)
    • 使用 ext4 分区进行 mdadm 软件 raid 并为磁盘兼容性留出一点空间 不要原始使用它们
    • btrfs 和类似(zfs、nilfs、cloud - dedupe 等)文件系统完全是另一个问题

    !很重要:

    • 不要使用raid 5(几乎不可能重建和错误)

    • 不要将 btrfs 与它自己的 raid 5 或 raid 6 设置一起使用(已知错误)

    • 不要将 raid 0 用于关键任务数据,它可能会持续 10 年,但这是一场赌博

    • 使用软件突袭设置

    • 备份LSI芯片卡的rombios软件并购买备用卡,确保它们的rombios版本相同,并确保更换另一个可以重建raid

    这些是我 2 年文件服务器设置经验中的一些内容

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

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