MFS近期測試遇到故障的總結

         MFS近期測試故障點的總結:

1、  mfs1.5.12的版本中,對大批量的文件傳輸進行了測試,經過反覆的測試測試對於大批量文件傳輸的情況,並跟進資源消耗的情況,但是測試的過程中出現了問題。
          
使用scp指令大批量的圖片時,在mfs客戶端忽然發現沒有了掛載的分區,重新掛載時出現:
      [root@mysqldb log]# mfsmount -h 192.168.5.230 -w /usr/xxtsrc/pic/upload/ 
      fuse: mountpoint is not empty
      fuse: if you are sure this is safe, use the 'nonempty' mount option error in fuse_mount
      
但是查看mfs客戶端的進程是依然存在的。
        
2)查看master上的/va/log/message日誌出現:
     Jan  8 10:10:00 nginx mfsmaster[4845]: chunkservers status:
     Jan  8 10:10:00 nginx mfsmaster[4845]: total: usedspace: 0 (0 GB), totalspace: 0 (0 GB), usage: 0.00%
     
這說明master沒有發現到chunker服務器。
        
3)在chunker上日誌出現如下錯誤:
       Jan  8 10:09:29 chunker1 mfschunkserver[16631]: chunk_before_io_int: file:/usr/xxtdata/5/chunk_000000000004B655_00000001.mfs - open 
error (24:Too many open files)
      Jan  8 10:09:29 chunker1 mfschunkserver[16631]: chunk_before_io_int: file:/usr/xxtdata/5/chunk_000000000004ADE5_00000002.mfs - open 
error (24:Too many open files)
      Jan  8 10:09:29 chunker1 mfschunkserver[16631]: create socket, error: Too many open files
      Jan  8 10:09:43 chunker1 mfschunkserver[16631]: chunk_before_io_int: file:/usr/xxtdata/7/chunk_000000000004B047_00000002.mfs - open 
error (24:Too many open files)
      Jan  8 10:09:43 chunker1 mfschunkserver[16631]: chunk_before_io_int: file:/usr/xxtdata/D/chunk_000000000004B6BD_00000001.mfs - open 
error (24:Too many open files)
      Jan  8 10:09:44 chunker1 mfschunkserver[16631]: 3 errors occurred in 3600 seconds on folder: /usr/xxtdata/
      
根據提示調整了服務器的文件描述的限制,從1024加到最大,可是又發現如下問題:
     Jan  8 10:35:14 chunker1 mfschunkserver[2713]: read_block_from_chunk: file:/usr/xxtdata/C/chunk_000000000004B6BC_00000002.mfs - crc 
error
     Jan  8 10:35:52 chunker1 mfschunkserver[2713]: read_block_from_chunk: file:/usr/xxtdata/B/chunk_000000000004B6BB_00000002.mfs - crc 
error
     Jan  8 10:36:31 chunker1 mfschunkserver[2713]: read_block_from_chunk: file:/usr/xxtdata/A/chunk_000000000004B6BA_00000002.mfs - crc 
error
     Jan  8 10:36:32 chunker1 mfschunkserver[2713]: 3 errors occurred in 3600 seconds on folder: /usr/xxtdata/
     
這說明有壞文件存在,致使校驗沒有通過,根據客戶端的提示:
     Jan  8 10:38:54 nginx mfsmaster[4845]: * damaged file 308729: 2009/blog/gallery_photo_s/1231/01/2009021709270130.jpg
Jan  8 10:38:57 nginx mfsmaster[4845]: damaged chunk 308920 (file: 308810 ; index: 0)
     Jan  8 10:38:57 nginx mfsmaster[4845]: * damaged file 308810: 2009/blog/gallery_photo_s/1231/01/2009101608332432.jpg
Jan  8 10:38:57 nginx mfsmaster[4845]: damaged chunk 308921 (file: 308811 ; index: 0)
      Jan  8 10:38:57 nginx mfsmaster[4845]: * damaged file 308811: 2009/blog/gallery_photo_s/1231/01/2008051310541895.jpg
      Jan  8 10:38:57 nginx mfsmaster[4845]: damaged chunk 308922 (file: 308812 ; index: 0)
      Jan  8 10:38:57 nginx mfsmaster[4845]: * damaged file 308812: 2009/blog/gallery_photo_s/1231/01/2009022508435991.jpg
      Jan  8 10:38:57 nginx mfsmaster[4845]: damaged chunk 308923 (file: 308813 ; index: 0)
      Jan  8 10:38:57 nginx mfsmaster[4845]: * damaged file 308813: 2009/blog/gallery_photo_s/1231/01/2009021512192253.jpg
      Jan  8 10:38:57 nginx mfsmaster[4845]: damaged chunk 308924 (file: 308814 ; index: 0)
      Jan  8 10:38:57 nginx mfsmaster[4845]: * damaged file 308814: 2009/blog/gallery_photo_s/1231/01/2009070309000045.jpg
    
將上面的損壞文件刪除再次的重啓之後就恢復了正常。

針對上面的問題,和MFSSA取得聯繫,他們說在開發mfs1.5.12的過程中遇到了此類的問題,並在1.6.x的版本中進行了改進,並完善了文件的修復機制,也是因此將測試從mfs1.5.12轉移到了mfs1.6.11中進行了測試。在後來的反覆測試中,對大批量文件傳輸反覆測試了20餘次沒有遇到類似的問題,而且在mfs1.6.x啓動的過程中也提示MFS也修改了相關的程序。

 

2、對於MFS1.6.x,分別就clientchunkermaster的故障恢復、模擬停電、斷網、關機等環境,進行測試並就出現問題的解決辦法。

           1MFSclient:

                    斷電、斷網對MFS的體系不產生影響。

                    殺掉MFSclient服務會產生

                    df: `/usr/mfstest': Transport endpoint is not connected

                    處理的方式是umount /usr/mfstest,然後再重新掛載就可以了,這種                    情況用戶MFS客戶端出現誤殺的情況。

           2MFSchunker端:

                    斷網、殺掉MFSchunker程序對MFS系統無影響。

                    斷電:

                    #無文件傳輸時,對兩個chunker都無影響;

                   #當有文件傳輸時,但是文件設置存儲一份時,對文件的存儲無影響。

                    #當有文件傳輸,且設置文件存儲多份時:

                             關掉chunker1之後,如果在chunker1恢復正常之前文件已經                                         傳輸完畢,那麼數據將從chunker2同步到chunker1中。

                             ★關掉chunker1之後,如果在 chunker1恢復之後文件尚未傳              輸完畢,那麼文件將一方面繼續傳輸一方面從chunker2中進行                    文件的同步。

                             ★關掉chunker1之後隨即chunker2也掛掉的話就會影響MFS                   的應用,因爲已經沒有了可用的chunker服務器了。

                    綜上可知,只要不是兩個chunker服務器同時掛掉的話,就不會                              影響文件的傳輸,也不會影響服務的使用。

3MFSmaster端:

           斷網、殺掉MFSmaster服務對MFS系統無影響。

           斷電可能會出現以下的情況:

           #當沒有文件傳輸時,可在服務器重啓之後,運行                                                 /usr/local/mfs/sbin/mfsmetarestore –a進行修復,之後                                                   /usr/local/mfs/sbin/mfsmaster start恢復master服務。

#當有文件傳輸時,可能會在/usr/local/mfs/sbin/mfsmetarestore –a進行修           復時可能會出現:

version after applying changelog: 1411141

applying changes from file: /usr/local/mfs/var/mfs/changelog.0.mfs

meta data version: 1411141

           1411142: error: 13 (No such chunk)

           但是使用metalogger進行修復出現:

           version after applying changelog: 1410627
           applying changes from file: /usr/local/mfs/var/mfs/changelog_ml.0.mfs
           meta data version: 1410627
           1411145: version mismatch

           對於這個問題,測試的過程中對MFSmaster主機進行反覆的斷電測試,              偶爾會出現這個情況,也向MFSSA進行請教,但是一直未有回覆。

           遇到上面的MFS遭遇停電的問題確實是比較頭痛的,無法修復無法啓動             master服務。但是我們就真的沒有辦法讓master起來麼?並不是的,我們可以直接將metadata.mfs.back複製成metadata.mfs ,然後再重啓master就可以了。但是這種方式會造成一個小時的數據丟失,而且下次遇到這樣的問題的時候也會出現無法修復的情況,還有就是有可能其他的不知道的問題。在等待一個小時後,在進行修復的話,這個問題就自然的解決了,但是也就是確定了我們將會丟失那些正在傳輸的數據,這也是這種修復方法的一個缺點吧。

 

發佈了52 篇原創文章 · 獲贊 6 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章