Raid

執行硬體 raid 和 zfs 時的頻寬和 IO 問題

  • May 5, 2019

我繼承了使用 Linux Ubuntu 14、megaraid_sas 和 ZFS 的設置。

我們遇到了一些性能問題(永遠無法充分利用 RAID 的 6GB 頻寬),我很好奇這是否與 ZFS 設置有關——這似乎有點不尋常。

問題真的是:

  1. 這個設置(見下文)有問題嗎?充其量,它似乎不必要地複雜(為什麼要使用 ZFS 而不是直接在 raid 上控制數據空間大小並直接掛載?)
  2. 我們似乎沒有利用突襲的最大讀取率。這個設置可能是為什麼?

設置

RAID 有許多 RAID 5 和 6 虛擬磁碟,它們作為本地設備呈現給 Linux 伺服器。IE

# 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。IE

# 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

…然後將其劃分為數據集。IE

# 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

您實際獲得的速度是多少?來自哪些工作負載?什麼樣的磁碟?

我通常不建議在 ZFS 下使用硬體 RAID,但可以這樣做。人們對條帶陣列的誤解之一是,它們在大多數工作負載下的性能趨向於單個磁碟的性能,而不是陣列中磁碟數量的性能。在非常理想的條件下,您可以從 6 磁碟 raid6 陣列中獲得 4 個磁碟的吞吐量,但在大多數情況下,您將綁定 IOPS,而不是吞吐量 - 任何條帶陣列的IOPS大致是單個陣列的 IOPS磁碟,無論陣列有多寬(陣列越寬越差,而不是更好)。

6 Gbps =~ 768 MB/秒;我不希望在非常專業且非常仔細控制的工作負載之外,從條帶陣列中的一堆 rust 磁碟中獲得類似這樣的吞吐量。如果您有多個使用者訪問大量文件 - 更不用說任何類型的數據庫或 VM 訪問模式 - 您將看不到那種級別的性能。

引用自:https://serverfault.com/questions/952582