2010年3月18日 星期四

ZFS-NAS測試數據 Part 5 - ZFS和Zpool的破壞測試,想辦法弄掛ZFS檔案系統就對了

ZFS-NAS測試數據 Part 5 - ZFS和Zpool的破壞測試,想辦法弄掛ZFS檔案系統就對了


測試日期20091101
    zpool組態不變
    XD
    raidz1
    c2t3d0
    c2t4d0
    c2t5d0


    c2t2d0 有接上但系統未使用,非XD pool的成員
  1. 在zpool正常normal的狀態下(之前scrub完成),關機移除c2t3d0後,用HDTune洗白白,全部寫入zero,但不重建MBR
  2. NAS開機進入系統後,zpool sttatus -x 會回報異常,被用HDTune全部寫入zero的c2t3d0,出現CKSUM error的訊息
  3. 但是raidz1 pool 還是維持在正常狀態下,並沒有變成degrade
  4. zpool
    狀態
    項目 動作 使用程式或動作 大小
    (GB)
    時間
    (sec)
    速度
    (MB/sec)
    NAS CPU
    使用率(%)
    normal
    (實際有問題)
    登入
    ZFS-NAS
    讀取 raidz time (cp test /dev/null) 20 6m6s 55
  5. 讀取速度有降下來
  6. zpool sttatus -x 會回報異常,CKSUM error數量增加,zpool維持在online
  7. zpool replace XD c2t3d0 沒有作用
  8. zpool offline XD c2t3d0後,zpool status -x進入degrade狀態
  9. zpool online XD c2t3d0後,zpool status -x 有resilver紀錄,但是瞬間完成,zpool回到online狀態
  10. zpool scrub XD 開始 scrub
  11. scrub中,zpool status -x,cksum error會持續增加,但是系統還是持續online,沒有降到degrade
  12. 完成scrub後,重開NAS,發生意外狀況,c2t3d0掛了unavailable
  13. XD

    degrade

    raidz1
    degrade


    c2t3d0 unavailable


    c2t4d0 online


    c2t5d0 online
     
  14. 再重開機,BIOS中 可以正常看到c2t3d0,但是NAS啟動完成後,zpool中的c2t3d0還是unavailable
  15. 再重開機,並且跟換SATA排線,BIOS中 可以正常看到c2t3d0,但是NAS啟動完成後,zpool中的c2t3d0還是unavailable
  16. 用xpe開機,HDTune下正常,Partion Manager狀態也正常,只有分割type怪怪的。
  17. 再重開機,BIOS中 可以正常看到c2t3d0,但是NAS啟動完成後,zpool中的c2t3d0還是unavailable,zpool仍然degrade
  18. zpool replace XD c2t3d0 c2t2d0把空出來的c2t2d0換上去,zpool開始resilver
  19. 但是resilver進行中還沒完成,zpool status就變成online了,degrade狀態不見了,原本unavailable的c2t3d0也變成online\
  20. 這時XD pool status的CKSUM error也消失了,問題很大,因為現在應該是沒有備援的狀態。
  21. 最後resilver完成,沒有任何異常訊息
  22. 之前重開機,再NAS啟動階段,NexentaCore就有跳出c2t3d0的錯誤訊息了
  23. ZFS和Zpool還是沒有掛,繼續想辦法破壞 zpool組態變成
    XD

    online

    raidz1
    online


    c2t2d0 online


    c2t4d0 online


    c2t5d0 online


    c2t3d0 非XD pool的成員
  24. 改用HDDscan把,c2t3d0和c2t5d0用Erase 清乾淨,看zpool會發生什麼問題,HDDscan erase跑完error是0
  25. NexentaCore開機完,c2t5d0變成unavailable,XD pool變成degrade
  26. XD

    degrade

    raidz1
    degrade


    c2t2d0 online


    c2t4d0 online


    c2t5d0 unavailable
  27. 接著強制replace c2t5d0 c2t3d0,後開始resilver
  28. XD


    degrade

    raidz1

    degrade


    c2t2d0
    degrade


    c2t4d0
    online


    replacing
    degrade



    c2t5d0 unavailable



    c2t3d0 online
  29. resilver中把c2t5d0 offline後再從新online,還是會維持unavailable
  30. resilver中,因為error太多,原本online的c2t2d0和c2t4d0變成degrade,ZFS出現data corruption訊息
  31. 但是resilver會繼續,一直到完成,XD pool會維持degrade狀態,不會因為變成online
  32. XD


    degrade

    raidz1

    degrade


    c2t2d0
    degrade


    c2t4d0
    degrade


    replacing
    online



    c2t5d0 unavailable



    c2t3d0 online
    XD

    degrade

    raidz1
    degrade


    c2t2d0 degrade


    c2t4d0 degrade


    c2t3d0 degrade


    c2t5d0 非XD pool的成員
  33. 而ZFS顯示data corruption的部份也真的讀不出來了(透過CIFS),終於把ZFS和zpool弄到壞了
  34. 手動zpool clear將異常紀錄清除,把c2t2d0和c2t4d0重新online,resilver自動重新再開始



關機後隔天繼續測試
  1. 重開機後,未完成的resilver會重頭開始,(scrub動作則不確定)
  2. 等待resilver完成後,XD pool還是維持degrade,replacing的動作似乎沒有完成
  3. XD degrade
    raidz1

    degrade

    c2t2d0
    degrade

    c2t4d0
    degrade

    replacing
    online


    c2t5d0 unavailable
    c2t3d0 online
  4. 用clear指令清除c2t2d0和c2t4d0的異常狀態,XD zpool 仍然是degrade
  5. detach XD c2t5d0,但是把unavailable的c2t5d0用detach指令移除後,怪事發生了
  6. XD online
    raidz1
    online

    c2t2d0 online

    c2t4d0 online
    c2t3d0 online
  7. 變成online了,好像應該要維持degrade才對
  8. clear XD,resilver從頭來過
  9. 只要zpool的硬碟組態改變,就一定會進行resilver,清除異常紀錄也一樣

沒有留言: