⑴ 八盤位NAS上幾個硬碟能達到萬兆
1、主板:超微X10DRL-i
2、CPU:E5 2650L v3*2
2、內存:4*8g DDR4 REG ECC(SK Hynix HMA41GR7MFR8N-TF)
4*16g DDR4 REG ECC(Samsung M393A2G40DB0-CPB)
3、陣列卡:LSI 9208-8i IT模式(共有兩塊,只使用了一塊)
4、硬碟:8*日立HUS72302CLAR2000
5、電源:長城巨龍EPS1000DA
6、機箱:TT W200(對硬碟散熱使用了7把12cm風扇保證散熱)
軟體平台:
系統:Ubuntu Server 20.04.1 LTS
zfs陣列使用OpenZFS on linux v2.0.4
其餘raid陣列使用mdadm創建
測試腳本:
本次測試均使用script命令記錄測試結果
創建mdadm陣列使用如下腳本:
mdadm --create --verbose /dev/md1 -level=$level --raid-devices=$i --chunk=$chunk /dev/sd$j
其中$level與$chunk對應raid類型和chunk大小(條帶大小),$i和$j則因為有部分測試只使用4塊硬碟測試,使用md1因為操作系統安裝在由兩塊ssd(sda、sdb)以raid1組成的md0陣列上
創建文件系統,使用ext4文件系統:
mkdir -p /pool_0
yes | mkfs.ext4 -F /dev/md1
yes | mount -t ext4 /dev/md1 /pool_0
清理陣列:
mdadm --stop /dev/md1
mdadm --misc --zero-superblock /dev/sd$j
創建zfs陣列使用如下腳本:
zpool create pool_0 $raid-level /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj
或
zpool create pool_0 $raid-level /dev/sdc /dev/sdd /dev/sde /dev/sdf $raid-level /dev/sdg /dev/sdh /dev/sdi /dev/sdj
第二種方式用於組建如raidz0等跨越陣列時使用
因為zfs自動創建掛載點,故測試時直接使用默認掛載點測試
清理陣列:
zpool destroy pool_0
sgdisk --zap-all /dev/sd$j
測速命令:
dd if=/dev/zero of=/pool_0 bs=$bs count=10000
$bs為塊大小,分別測試了512,4k,8和1m下的速度
命令重復5次,去掉最大值和最小值計算平均值作為最終結果
另外還進行了每塊硬碟單獨測速,同樣使用ext4文件系統
測試結果
各硬碟測試結果
雖然這批硬碟都是二手貼標盤,但是測試速度還是可以的,除了作為二手盤的一些毛病外(之後會提到)。
接下來是陣列速度的測試,以下測試中,以8塊硬碟或4塊硬碟使用mdadm創建了raid0,5,6,10和使用zfs創建raid z1,z2,z3,2*z1,strip(等於raid0),mirror+strip(等於raid10),分別測試了mdadm設置不同chunk大小對速度的影響(不帶chunk的則為zfs陣列),以及使用不同bs大小測試陣列在不同塊大小下速度表現。
陣列測速 block size = 512
這次測試設置的最小塊大小為512,此時速度受影響最大的是使用zfs創建的各個陣列,全部只有60m/s出頭的速度,而最高速度梯隊均被8盤raid0占據,但速度只有140-150,與單盤相比只有不到一倍的提升,迷惑的是chunk大小對應的速度順序十分混亂,幾乎無法總結出規律。
陣列測速 block size = 4k
4k速度領先的仍然是raid0,zfs的各個陣列排在中間,最低的則變成了4盤組的raid10,速度甚至低於單盤速度,可謂慘不忍睹,而我常用的raid5速度在350左右,只有不到2倍提升。
陣列測速 block size = 8k
8k速度比較有意思,raid0速度仍然占據前列,而zfs的速度明顯提升,尤其是raidz1*2和使用zfs創建的raid10,這兩個都是我曾經選擇過的方案(raid10使用了16盤)
陣列測速 block size = 1M
最終來到1M塊大小的測試,這次變化比較大,速度最高的是8盤使用zfs創建的raid0,速度達到了1100+,而實際上,我測試12盤速度時,這種方式創建的陣列速度可以到達1300+,而其餘成績幾乎沒有什麼出乎預料的地方,只有上面提到的zfs下raidz1*2和raid10的排名繼續上升
總結
說一下我的感覺,在做這次測試之前我也預料到測試結果就是如此慘淡,因為平時我使用情況便是桌面機和伺服器之間使用萬兆網卡相連,通過smb共享文件,不過文件性能實在不是很滿意,從桌面機的ssd拷貝文件到伺服器上速度只有400出頭,而且遇到大量零碎文件時響應相當慢,一直以來我便考慮是smb的問題還是磁碟性能就是這樣,這個測試說出了答案。
測試中,速度最快的無疑是raid0,只不過應該不會有人選擇,其餘比較有價值的選擇分別是raid5和2*raid z1,這兩個選項都有不錯的性能,也分別有1盤和2盤的冗餘,當初我選擇使用2t磁碟,便是考慮到在損壞1塊硬碟時,2t硬碟重組陣列還是相對安全的,基本上一天以內陣列就恢復同步,當然我更偏向使用zfs,尤其是我最開始選擇這套配置便是奔著freenas去的,而且raid z2和raid z3雖然性能不足,但是安全性絕對是更高的,只不過8盤位下,這兩個選擇明顯沒有優勢。
對於條帶大小,實在是認識有限,之前一直使用默認參數,而網路上沒有找到有用的資料,只能說是瞎子過河,用我自己的理解去測試,結果是無功而返。
後記
這個測試差不多在一個多月前做的,現在才發純粹因為懶癌犯了,第一次在b站發文章,文案啰嗦得把自己也難受到了,還是感謝能看到這里,之後也許還會總結一些我之前的經驗,我會多多努力。發文的時候我的配置已經做了一個大的調整,也乘著這次礦潮,把之前的設備賣了,還得了一筆不小的差價,而目前硬體漲價實在厲害,還好我在漲價前購入了一塊12t硬碟,跟之前用來冷備的另一塊12t硬碟組一起,現在數據暫且存在這兩塊硬碟上,對nas的進一步改造只能留在將來了。
說到之前設備的缺點,只能說現實總是事與願違,一開始我選擇2t sas做陣列,主要是幾方面,一是價格,二是容量,三是速度。最開始我的群暉nas上選擇了兩塊6t和兩塊3t硬碟分別組raid1,光是硬碟價格就接近四千,而nas價格是三千出頭。而換成自組的nas和二手硬碟,價格只要一半多點,還能擁有8盤位和萬兆網路,價格便是最大的優勢。而2t硬碟前面提到了,我認為這個容量還是比較適合陣列掉盤後重建的,成功率和速度都能預測得到,而有了盤位優勢,容量便不是問題。至於速度,相比4盤位,8盤位優勢理所當然是更大。
而實際上,二手硬碟由於質量參差不齊,有一些盤用了很久依然堅挺,而有一些在使用兩三個月內就會出現問題,導致其成了消耗品,而為了安全性,我把盤位一步步提高,曾試過12盤和16盤,做了更高級別的raid如raidz3和2*raidz2,而代價是性能不升反降,而且一個大問題暴露出來了,這些硬碟本來功耗就不小,而我使用的環境沒有機房那樣的穩定溫度,導致硬碟發熱嚴重,而且電費也猛然飆升,最終只能下決定放棄,也意識到這個方案在我目前情況下不可行。
在測試結束後,我意識到這次測試並不太嚴謹,首先我只測試了寫入速度沒有測試讀取速度,原因是沒有找到合適的測試方法,在某些測試中,會因為緩存原因導致測出的速度發生明顯錯誤,而我測試的數據也沒有與其他人對比過,實際這個速度是否合格純粹是我個人的主觀判斷。並且,在創建文件系統時,我並沒有注意到有block的參數,而在後來發現這個參數也許會影響到結果。最後一個大問題是,在測試前後我都對硬碟進行過壞道測試,結果發現sdh盤,也就是那塊型號不同的,實際上是同型號的HP貼標盤,在測試後出現了三個連續壞道,而由於第二次壞道測試是在我轉讓硬碟前做最後測試時發現的,不確定壞道是否在此過程中出現,所以這次的測試,只能以極其不嚴謹的標志定義,在將來我有機會再次測試時,定要以嚴謹為首要,以彌補這次的遺憾。
⑵ 硬碟陣列模式RAID 0,RAID 1,RAID 5,RAID 10是什麼意思
RAID是磁碟冗餘陣列簡稱磁碟陣列,具體區別如下:
RAID 0:
最少需要兩塊磁碟;數據條帶式分布;沒有冗餘,性能最佳(不存儲鏡像、校驗信息);不能應用於對數據安全性要求高的場合。
RAID 1:
最少需要兩塊磁碟;提供數據塊冗餘;性能好。
RAID 5:
最少需要三塊磁碟;數據條帶形式分布;以奇偶校驗作冗餘;適合多讀少寫的情景,是性能與數據冗餘最佳的折中方案。、
RAID 10(又叫RAID 1+0):
最少需要四塊磁碟;先按RAID 0分成兩組,再分別對兩組按RAID 1方式鏡像;兼顧冗餘(提供鏡像存儲)和性能(數據條帶形分布);在實際應用中較為常用。
(2)硬碟it模式擴展閱讀
磁碟陣列是由很多價格較便宜的磁碟,組合成一個容量巨大的磁碟組,利用個別磁碟提供數據所產生加成效果提升整個磁碟系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬碟上。
⑶ 直通卡和陣列卡的區別
陣列卡就是英語中的raid卡,直通卡就是HBA卡,HBA卡有兩種模式,IT模式和IR模式,IR模式的直通卡不是硬陣列卡!別拿IR模式的直通卡說是硬陣列卡!這是張冠李戴了。 HBA卡就是一個通道卡,它的作用是讓計算機能夠對磁碟進行存取操作,一般都是針對sas硬碟的,可以看成是sas控制器,類似南橋的SATA控制器。但是HBA卡的HBA晶元也是有CPU的,也分為IT模式和IR模式,IT模式下所連接的磁碟對系統是透明的,由系統直接識別和管理,而IR模式下磁碟由HBA控制器控制然後模擬磁碟給系統使用,雖然類似陣列卡(和南橋的raid模式是一個道理),但是不能說是硬陣列卡。IR模式下的HBA卡可以組建raid0,raid1甚至raid5,但是raid5的寫入性能還不如單個硬碟,我一直覺得IR模式的HBA卡就是廢物,基本找不到什麼用途會特別需要這種卡。後來想想應該是廠商拿來騙錢的。 硬陣列卡其實可以看做一個微型計算機系統,陣列卡通過一個ROC(raid-on-chip)晶元來完成對存儲設備的管理,並按需模擬磁碟給計算機使用,存儲設備本身對操作系統不透明,由陣列卡管理。ROC晶元中有通用CPU,一般是mips,powerpc或者arm架構,用來通用計算,還有內存控制器為這個CPU提供內存,還有xor引擎,專門用來加速raid5,raid6等等。 簡單的識別方式就是沒有內存顆粒作為陣列卡緩存的就是HBA卡或者說直通卡,而有內存顆粒作為陣列卡緩存的就是硬陣列卡,做raid5或者raid6速度是有保障的。IR模式的直通卡,即使做raid5,也是聾子的耳朵-擺設,毫無實用價值。