运行硬件 raid 和 zfs 时的带宽和 IO 问题

运行硬件 raid 和 zfs 时的带宽和 IO 问题

我继承了使用 Linux Ubuntu 14、megaraid_sas 和 ZFS 的设置。

我们遇到了一些性能问题(无法充分利用 raid 的 6GB 带宽),我很好奇这是否与 ZFS 设置有关 - 这似乎有点不寻常。

问题确实是:

  1. 这种设置(见下文)有问题吗?充其量,它似乎不必要地复杂(为什么要使用 ZFS,而不是直接在 raid 和挂载时控制数据空间大小?)

  2. 我们似乎没有利用 raid 的最大读取速率。这个设置可能是原因吗?

设置

RAID 具有多个 RAID 5 和 6 虚拟磁盘,它们作为本地设备呈现给 Linux 服务器。即

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0  14,6T  0 disk
├─sda1   8:1    0  14,6T  0 part
└─sda9   8:9    0     8M  0 part
sdb      8:16   02,6G  0 disk
├─sdb1   8:17   0  94,6G  0 part /
├─sdb2   8:18   0     1K  0 part
└─sdb5   8:21   0   128G  0 part [SWAP]
sdc      8:32   0  14,6T  0 disk
├─sdc1   8:33   0  14,6T  0 part
└─sdc9   8:41   0     8M  0 part
sdd      8:48   0  10,9T  0 disk
├─sdd1   8:49   0  10,9T  0 part
└─sdd9   8:57   0     8M  0 part
sd<N>      8:64   0   7,3T  0 disk
├─sd<N>1   8:65   0   7,3T  0 part
└─sd<N>9   8:73   0     8M  0 part

然后将它们全部重新捆绑在一起作为 zpool。即

# zpool status
  pool: zpool
 state: ONLINE
  scan: scrub repaired 0 in 84h36m with 0 errors on Tue Aug 29 00:48:43 2017
config:

        NAME        STATE     READ WRITE CKSUM
        zpool       ONLINE       0     0     0
          sd<N>     ONLINE       0     0     0
          sda       ONLINE       0     0     0
          sdc       ONLINE       0     0     0
          sdd       ONLINE       0     0     0

errors: No known data errors

...然后将其分成数据集。例如

# df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                      63G   12K   63G   1% /dev
tmpfs                     13G   23M   13G   1% /run
/dev/sdb1                 94G   13G   76G  15% /
zpool/dataset1            13T   11T  2,3T  82% /common/share
zpool/dataset1/archive   3,9T  1,6T  2,3T  41% /common/share/archive
zpool/dataset2           6,6T  4,3T  2,3T  66% /h2t
zpool                    5,2T  2,9T  2,3T  56% /zpool
zpool/dataset3           12T  8,8T  2,3T  80% /zpool/backup
zpool/dataset4           2,4T   28G  2,3T   2% /zpool/homes
zpool/dataset4/extern    2,7T  317G  2,3T  12% /zpool/homes/externstaff
zpool/homes/students      14T   12T  2,3T  84% /zpool/homes/students
zpool/temp               2,4T   50G  2,3T   3% /common/temp

答案1

您实际获得的速度是多少?来自哪些工作负载?哪种磁盘?

我一般不建议在 ZFS 下使用硬件 RAID,但这是可以做到的。人们对条带阵列的误解之一是,它们在大多数工作负载下的性能趋向于单身的磁盘,而不是阵列中磁盘数量的吞吐量。在完全理想的条件下,您可以从 6 磁盘 raid6 阵列中获得 4 个磁盘的吞吐量,但在最多条件下,你将绑定 IOPS,而不是吞吐量 - 并且每秒输入/输出次数任何条带阵列的容量大致等于单个磁盘的容量,无论阵列有多宽(并且它会变得更差阵列并非越宽越好。

6 Gbps =~ 768 MB/秒;我不会指望从外面条带阵列中的一堆锈蚀磁盘中获得如此大的吞吐量非常专业和非常精心控制的工作负载。如果有多个用户访问大量文件 - 更不用说任何类型的数据库或 VM 访问模式 - 您将看不到任何类似级别的性能。

相关内容