問題往往出在執行個體內部組態方面的問題。執行個體沒有回應後的復原程序,取決於您所執行的執行個體類型 (EBS 後端或執行個體後端)。
先檢查執行個體的主控台輸出,設法判斷重新開機影響執行個體的原因。主控台輸出資訊提供的詳細資訊,有時足以了解執行個體故障的原因。
從 AWS 管理主控台:
- 選取執行個體。
- 從 Instance Actions 功能表 選取 View System Log。
使用 Amazon EC2 API 工具:
- 執行 ec2-get-console-output 命令。
如果查看主控台輸出無法判斷情況,請閱讀下方關於兩種執行個體類型的資訊。
執行個體後端執行個體
執行個體復原
一般來說,用執行個體後端根設備從 AMI 啟動的執行個體無法開機時,除了啟動替代執行個體外,您沒有其他選擇。進行任何修改後,不妨綁定自訂的 AMI,建立使用中執行個體組態的備份。如果是從 AMI 執行會在開機程序下載指令碼的執行個體,或許能夠以修改指令碼的方式,修正主控台輸出內的任何錯誤。
資料復原
雖然執行個體尚未終止且沒有基本硬體問題時,AWS Support 或許能復原部分資料,但執行個體存放區資料復原通常不可行。不過資料復原這個程序並不保險,而且可能花上好幾天才能完成,因此不要將 AWS Support 復原資料的可能性視為唯一的備份策略。
EBS 後端執行個體
嘗試復原 EBS 後端執行個體前,必須先知道使用的是不是 EBS 後端執行個體中預先連接的執行個體存放區 (又稱為暫時性存放區)。這項資訊之所以重要,是因為如果採取本頁稍後說明的動作,就會遺失這個預先連接的執行個體存放區中的資料。如果使用的是執行個體存放區,請參閱上方章節,進一步了解預先連接的執行個體存放區所儲存資料的復原選項。
執行個體復原
如果執行個體的根設備屬於 EBS 後端磁碟區,嘗試停止再重新啟動執行個體往往能解決問題。如需進一步資訊,請參閱停止再重新啟動執行個體。
未正確開機之 EBS 後端執行個體根磁碟區的錯誤,有時候可以手動修正。手動修正錯誤程序可能繁複,除非您有系統管理的經驗,否則不建議採用。據我們所知,有客戶在分析故障執行個體的主控台輸出後,採用這幾個範例解決方案,包括在磁碟區執行 fsck、停用 SELinux,或是修正 fstab 檔案中的錯誤。
若要停止再重新啟動執行個體:
- 停止無法正確開啟的執行個體 (不要關閉或終止)。
- 分離根 EBS 磁碟區。
- 將磁碟區連接到相同可用區域的現有執行個體,務必使用次要掛載點 (而非根)。
- 修正舊根磁碟區的組態。
- 分離磁碟區後再連接到其原始掛載點的原始執行個體。
- 啟動執行個體。
- 視需要重新連接彈性 IP 地址。
重新啟用 IO
有時候,EBS 磁碟區可能基於安全起見停用了 IO 存取。如果是這個情況:
- 導覽至管理主控台的 EBS 磁碟區。如果磁碟區已停用 IO,磁碟區清單的 "Status Checks" 欄會列為 "Impaired"。
- 您可以在磁碟區細節部分按一下 "Enable Volume IO",用主控台重新啟用 IO。
- 建議您用 fsck 或 chkdsk 這類工具驗證資料是否一致。
- 如果執行個體沒有回應,視作業系統而定,回復 IO 或許能讓執行個體恢復正常。
資料復原
如果執行個體屬於 EBS 後端,因為其內部組態相關問題 (主控台輸出通常會提供詳細資訊) 而故障,而且標準重新開機失敗,不妨採取下列步驟復原資料:
- 停止無法正確開啟的執行個體 (不要關閉或終止)。
- 分離根 EBS 磁碟區。
- 將磁碟區連接到相同可用區域中新的替代執行個體 (最好從先前綁定的 AMI 啟動),而且一定要使用次要掛載點 (而非根)。
- 將資料從磁碟區複製到替代執行個體。
其他資源
客戶如有興趣改善架構、了解最佳實務以及為問題做準備,可以藉助諸多資源。
- 關於執行個體故障架構方式的詳細資訊,請參閱 AWS 雲端白皮書的指定容錯應用程式部分。
- 不妨綁定自訂的 AMI,建立使用中執行個體組態的備份。
- Amazon EC2 使用者指南有 pdf 版的故障後恢復應用程式概念。
基礎主機出問題時,執行個體通常會卡在「停止」狀態。強制停止執行個體應該就能解決。從 EC2 命令列工具或 AWS 管理主控台就能完成。
命令列工具
ec2-stop-instances [您的 id] --force
AWS 管理主控台
用滑鼠右鍵按一下執行個體,在下拉清單選取 "Stop" (應該會出現即將執行強制停止的說明)。
附註:無論是哪一種情況,您可能都必須發兩次強制停止的請求。
如果無法強制停止執行個體,或許能啟動替代執行個體;請參閱停止執行個體疑難排解。如果這個方法不管用,請透過 AWS 論壇或開立 AWS Support 案例通知我們。為加速解決問題,聯絡取得支援時務必附上先前採取的任何步驟。
Amazon EC2 服務內的自動程序,最終會清除長時間處於「關閉」狀態的執行個體。針對執行個體未處於「執行」狀態的執行個體使用時間,我們不會向客戶收取費用。
如無法等執行個體終止,請透過 AWS 論壇或開立 AWS Support 案例讓我們知道。為加速解決問題,聯絡取得支援時務必附上先前採取的任何步驟。