2010年3月18日 星期四

ZFS-NAS測試數據 Part 4 - ZFS異常狀況測試 resilver,scrub和replace指令

ZFS-NAS測試數據 Part 4 - ZFS異常狀況測試 resilver,scrub和replace指令


測試日期20091028

    zpool狀態


    c2t2d0 有接上但系統未使用
    XD
    raidz1
    c2t3d0
    c2t4d0
    c2t5d0
  1. 在zpool正常normal的狀態下(之前scrub完成),改成關機移除c2t3d0後,把c2t3d0格式化
  2. zpool似乎會認得之前的硬碟身份,用格式化後的硬碟似乎還是認得,不知道根據什麼資料
  3. 因為zpool認得同一顆硬碟c2t3d0,所以resilver會自動開始
  4. 奇怪的是resilver會瞬間完成,照理說c2t3d0的資料應該已經被清空了,或是HDTune有問題
  5. 用scrub強制檢查,在完成97%左右會因為too many error的訊息,c2t3d0變成fail,zpool進入degrade狀態
  6. 用replace指令c2t2d0取代c2t3d0會變成
  7. XD degrade
    raidz1

    degrade

    replacing
    degrade


    c2t3d0 degrade


    c2t2d0 online

    c2t4d0
    online
    c2t5d0 online
  8. resilver時,cpu使用率40%,還是會從原本degrade的c2t3d0讀資料重建
  9. 假如故意把c2t3d0用指令offline, resilver就不會從c2t3d0讀資料
  10. 再把c2t3d0重新用指令online,resilver進度百分比和時間會重頭開始算
  11. 把c2t3d0用指令offline,resilver進度百分比和時間一樣會重頭開始算
  12. 但是ZFS只會重建必要的部份,所以進度百分比會重算,但是之前已經resilver完成的部份,似乎不會resilver,會略過
  13. resilver和scrub似乎只要資料是正確的,就不會重新寫入重建的硬碟。
  14. 把degarde的c2t3d0硬碟保留再系統中,另外用replace指令更換上c2t2d0,讓ZFS直接從c2t3d0還有效的資料重建到c2t2d0似乎比較快,resilver剩餘時間比較短
  15. 把degarde的c2t3d0硬碟移除,讓ZFS從c2t4d0和c2t5d0重建到c2t2d0似乎比較慢,resilver剩餘時間比較長
  16. 觀察zpool iostat中的bandwidth項目,再保留c2t3d0的狀態下,resilver中replacing組的c2t3d0可以跑到55MB/sec讀取和c2t2d0可以跑到55MB/sec寫入(一寫一讀)
  17. 同上,狀態正常的c2t4d0和c2t5d0讀取跑到55MB/sec,zpool的總bandwidth跑到110MB/sec,幾乎是極限了。
  18. resilver中replacing底下的寫入和讀取似乎沒有列入zpool的總bandwidth計算
  19. zpool
    狀態
    項目 動作 使用程式或動作 大小
    (GB)
    時間
    (sec)
    速度
    (MB/sec)
    NAS CPU
    使用率(%)
    degrae下
    resilver中
    CIFS 寫入 PC => NAS FastCopy 24.5
    CIFS 讀取 NAS => PC FastCopy 26
     
  20. 觀察resliver中的FastCopy讀寫的網路狀況,從網路監控看到的是很穩定的方波起伏,類似50MB/sec持續2秒,然後0MB/sec持續2秒,然後反覆下去。
  21. 所以以resilver中的fastcopy測試平均落在25MB/sec上下
  22. 和scrub不同的是,跑CIFS測試時,resilver似乎不會暫停,因為resilver只會發生在degrade狀態下,所以重建資料優先嗎?

  23. resilver完成後,再用replace指令把已經格式化過的c2t3d0和c2t2d0交換,重新resilver開始
  24. 沒有發生resilver瞬間完成的狀況,但是resilver剛開始,zppol iostat的總bandwidth的水準只有15MB/sec,之後就跑到110MB/sec水準。
  25. 接著在resilver中進行測試
  26. zpool
    狀態
    項目 動作 使用程式或動作 大小
    (GB)
    時間
    (sec)
    速度
    (MB/sec)
    NAS CPU
    使用率(%)
    degrae下
    resilver中
    resilver 讀取寫入 raidz resilver
    登入
    ZFS-NAS
    寫入 raidz mkfile 10 5m34s 30
    寫入 raidz mkfile 10 7m13s 23
    寫入 raidz mkfile 10 6m55s 24
    讀取 raidz cp test /dev/null 10 1m54s 89
    讀取 raidz cp test /dev/null 10 1m53s 89
  27. resilver中,寫入慢很多,但是讀取卻沒有慢很多?

沒有留言: