QNAP QTS 系統中 Resilio Sync 經常崩潰問題的解決

問題描述

最近的幾個版本 Resilio Sync 在 QNAP QTS 系統中運行時,如果以較快的速度同步大量文件或大文件會導致 Resilio Sync 經常崩潰。

問題解決

在 QNAP 官方論壇中,有位用戶通過禁用 Resilio Sync 的異步 IO 解決了問題。

解決方案大致過程是:修改 Resilio Sync 的配置文件 resilio-sync.conf,在該文件中添加一條"async_io": false鍵值對,重新啟動 Resilio Sync。

具體的操作過程:

  1. 在 QTS 系統的「控制台」 - Telnet/SSH 中開啟 SSH。

  2. 在 QTS 系統的「App Center」中停止 Resilio Sync。

  3. 通過 Terminal 連結到 QNAP NAS,執行 ssh NAS 的用戶名@NAS 的 IP 位址,如ssh [email protected]。按提示輸入密碼等信息。

  4. 在 Terminal 中執行 sudo -i,以切換到 admin 模式。按提示輸入密碼等信息。

  5. 在 Terminal 中執行 cd /share/CE_CACHEDEV1_DATA/.qpkg/ResilioSync,其中 CE_CACHEDEV1_DATA 需要根據實際路徑修改,即 ResilioSync 安裝的卷。

  6. 在 Terminal 中執行 ls,列出 ResilioSync 目錄下的文件,應該會出現 resilio-sync.conf 這一文件,否則上一步cd的路徑不正確。

  7. 執行cp resilio-sync.conf resilio-sync.conf.bak,備份原始的 resilio-sync.conf 文件,防止下一步編輯該文件出錯後恢復原始的文件。

  8. 執行vi resilio-sync.conf,編輯 resilio-sync.conf 文件。將光標通過方向鍵移動到其中的"vendor" : "qnap",這一行下方,接著按i鍵,輸入" "async_io": false, 。輸入完成,按esc鍵,然後輸入:wq

  9. 執行cat resilio-sync.conf,檢查 resilio-sync.conf 文件內容是否與下面提供的一致,其中storage_path的值需要根據實際路徑確定。主要檢查上一步輸入的 "async_io": false 是否正確。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    {
       "check_for_updates" : true,
       "display_new_version": false,
       "use_upnp" : true,
       "storage_path" : "/share/CE_CACHEDEV1_DATA/.qpkg/ResilioSync/storage",
    
       "directory_root" : "/share",
       "directory_root_policy" : "all",
       "vendor" : "qnap",
       "async_io": false,
       "webui" :
       {
           "force_https": true,
           "listen" : "0.0.0.0:14860",
           "allow_empty_password" : false,
           "context":"{\"folder_blacklist\": [\"\/Qsync\", \"\/external\", \"\/HD[A-Z]_\", \"\/MD[0-9]_\"]}"
       }
    }
  10. 在 QTS 系統的「App Center」中開啟 Resilio Sync。

  11. 在 QTS 系統的「控制台」 - Telnet/SSH 中關閉 SSH。

參考文獻

  1. Resilio Sync keeps crashing lately - anyone else having this trouble? - QNAP NAS Community Forum