Sun Java System Application Server 9.1 高可用性管理指南

在維持可用性的情況下升級應用程式

將應用程式升級至新版本但使用者仍可使用應用程式的作法,即稱為輪替式升級。在升級過程中,小心管理這兩個版本的應用程式,不但可以確保應用程式的目前使用者在無中斷的情況下完成作業,同時可讓新使用者不需設定即可取得新的應用程式版本。使用輪替式升級時,使用者不會察覺正在進行升級。

應用程式相容性

依據兩個應用程式版本之間的變更大小,輪替式升級會造成不同程度的困難。

如果變更很小 (例如對靜態文字和影像的變更),則此應用程式的兩個版本可以相容,並可在相同叢集中同時執行。

相容的應用程式必須︰

您可以在單一叢集或多個叢集中執行相容應用程式的輪替式升級。如需更多資訊,請參閱在單一叢集中升級

如果應用程式的兩個版本不滿足上述所有條件,則應用程式會被視為不相容。在某個叢集中執行不相容的應用程式版本會毀壞應用程式資料,並導致階段作業容錯移轉無法正常執行。該問題取決於不相容性的類型和程度。好的做法是透過建立要向其部署新版本應用程式的「隱式叢集」,來升級不相容的應用程式,然後緩慢靜止舊叢集和應用程式。如需更多資訊,請參閱升級不相容的應用程式

應用程式開發者和管理員是確定應用程式版本是否相容的最佳人選。如有疑問,請假設版本不相容,因為這是最安全的方法。

在單一叢集中升級

如果未與任何其他叢集共用叢集配置,則可以對部署至單一叢集的應用程式執行輪替式升級。

Procedure在單一叢集中升級應用程式

  1. 儲存舊版本的應用程式或備份網域。

    若要備份網域,請使用 asadmin backup-domain 指令。如需有關此指令的更多資訊,請參閱 backup-domain(1)

  2. 關閉叢集的動態重新配置 (如果已啟用)。

    從管理主控台執行此動作:

    1. 展開配置節點。

    2. 按一下叢集配置的名稱。

    3. 在 [配置系統特性] 頁面中,取消核取 [已啟用動態重新配置] 方塊。

    4. 按一下 [儲存]

    或者,使用以下指令︰

    asadmin set --user user --passwordfile password-file cluster-name-config.dynamic-reconfiguration-enabled=false

  3. 將已升級的應用程式重新部署到目標 domain 中。

    如果使用管理主控台進行重新部署,網域將自動成為目標。如果使用 asadmin,請指定目標 domain。由於已停用動態重新配置,因此舊應用程式將繼續在叢集上執行。

  4. 使用 asadmin enable-http-lb-application 為實例啟用已重新部署的應用程式。如需有關此指令的更多資訊,請參閱 enable-http-lb-application(1)

  5. 從負載平衡器靜止叢集中的某個伺服器實例。

    請依照下列步驟執行:

    1. 使用 asadmin disable-http-lb-server 停用伺服器實例。如需有關此指令的更多資訊,請參閱 disable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。

      例如,對於 Sun Java System Web Server,位置為 web-server-install-dir/https-host-name /config/loadbalancer.xml。若要確保負載平衡器載入新的配置檔案,請務必確定已透過在負載平衡器配置中設定 reloadinterval 啟用了動態重新配置。

    4. 請等待,直至逾時值到期。

      監視負載平衡器的記錄檔以確定實例已離線。如果使用者看到重試 URL,請略過靜止期間,並立即重新啟動伺服器。

  6. 在叢集中的其他實例仍處於執行狀態的情況下,重新啟動已停用的伺服器實例。

    重新啟動操作將使伺服器與網域同步,並更新應用程式。

  7. 測試重新啟動的伺服器上的應用程式,以確定應用程式執行正常。

  8. 在負載平衡器中重新啟用伺服器實例。

    請依照下列步驟執行:

    1. 使用 asadmin enable-http-lb-server 啟用伺服器實例。如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將配置檔案複製到 Web 伺服器的配置目錄。

  9. 對叢集中的每個實例重複步驟 5 至 8。

  10. 當所有伺服器實例具有新的應用程式並且這些伺服器實例正在執行時,您可以再次為叢集啟用動態重新配置。

在多個叢集中升級

Procedure若要在兩個或更多叢集中升級相容的應用程式,請執行以下步驟︰

  1. 儲存舊版本的應用程式或備份網域。

    若要備份網域,請使用 asadmin backup-domain 指令。如需有關此指令的更多資訊,請參閱 backup-domain(1)

  2. 關閉所有叢集的動態重新配置 (如果已啟用)。

    從管理主控台執行此動作:

    1. 展開配置節點。

    2. 按一下一個叢集配置的名稱。

    3. 在 [配置系統特性] 頁面中,取消核取 [已啟用動態重新配置] 方塊。

    4. 按一下 [儲存]

    5. 對其他叢集重複此程序

    或者,使用以下指令︰

    asadmin set --user user --passwordfile password-file cluster-name -config.dynamic-reconfiguration-enabled=false

  3. 將已升級的應用程式重新部署到目標 domain 中。

    如果使用管理主控台進行重新部署,網域將自動成為目標。如果使用 asadmin,請指定目標 domain。由於已停用動態重新配置,因此舊應用程式將繼續在叢集上執行。

  4. 使用 asadmin enable-http-lb-application 為叢集啟用已重新部署的應用程式。如需有關此指令的更多資訊,請參閱 enable-http-lb-application(1)

  5. 靜止負載平衡器中的某個叢集

    1. 使用 asadmin disable-http-lb-server 停用叢集。如需有關此指令的更多資訊,請參閱 disable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。

      例如,對於 Sun Java System Web Server,位置為 web-server-install-dir/https-host-name /config/loadbalancer.xml。必須為負載平衡器啟用動態重新配置 (透過在負載平衡器配置中設定 reloadinterval),以便能夠自動載入新的負載平衡器配置檔案。

    4. 請等待,直至逾時值到期。

      監視負載平衡器的記錄檔以確定實例已離線。如果使用者看到重試 URL,請略過靜止期間,並立即重新啟動伺服器。

  6. 在其他叢集仍處於執行狀態的情況下,重新啟動已停用的叢集。

    重新啟動操作將使叢集與網域同步,並更新應用程式。

  7. 測試重新啟動的叢集上的應用程式,以確定應用程式執行正常。

  8. 在負載平衡器中啟用叢集︰

    1. 使用 asadmin enable-http-lb-server 啟用叢集。如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將配置檔案複製到 Web 伺服器的配置目錄。

  9. 對其他叢集重複步驟 5 至 8。

  10. 當所有伺服器實例都具有新的應用程式並且這些伺服器實例正在執行時,您可以為所有叢集再次啟用動態重新配置。

升級不相容的應用程式

如果新版應用程式與舊版不相容,請使用下列程序。有關應用程式相容要素的相關資訊,請參閱應用程式相容性。此外,您必須在兩個或更多叢集中升級不相容的應用程式。如果您僅有一個叢集,請為升級建立「隱式叢集」,如下所述。

升級不相容的應用程式時,請︰

Procedure透過建立第二個叢集來升級不相容的應用程式

  1. 儲存舊版本的應用程式或備份網域。

    若要備份網域,請使用 asadmin backup-domain 指令。如需有關此指令的更多資訊,請參閱 backup-domain(1)

  2. 在相同或不同的一組機器上建立「隱式叢集」,將其做為現有叢集。如果您已經有第二個叢集,請跳過這個步驟。

    1. 使用管理主控台建立新叢集並參照現有叢集的已命名配置。

      在每個機器上為新實例自訂連接埠,以避免與現有使用中連接埠衝突。

    2. 對於與叢集相關聯的所有資源,使用 asadmin create-resource-ref 將資源參照增加至新建的叢集中。如需有關此指令的更多資訊,請參閱 create-resource-ref(1)

    3. 使用 asadmin create-application-ref,從新建的叢集中,建立對部署至該叢集的所有其他應用程式 (目前重新部署的應用程式除外) 的參照。如需有關此指令的更多資訊,請參閱 create-application-ref(1)

    4. 使用 asadmin configure-ha-cluster 將叢集配置為具有高可用性。如需有關此指令的更多資訊,請參閱 configure-ha-cluster(1)

    5. 使用 asadmin create-http-lb-ref 在負載平衡器配置檔案中建立對新建叢集的參照。如需有關此指令的更多資訊,請參閱 create-http-lb-ref(1)

  3. 為應用程式的新版本指定與舊版本不同的名稱。

  4. 透過將新叢集做為目標來部署新應用程式。使用不同的一個或多個環境根目錄。

  5. 使用 asadmin enable-http-lb-application 為叢集啟用已部署的新應用程式。如需有關此指令的更多資訊,請參閱 enable-http-lb-application(1)

  6. 在其他叢集仍處於執行狀態的情況下,啟動新的叢集。

    啟動操作將導致叢集與網域同步,並使用新應用程式進行更新。

  7. 測試新叢集上的應用程式,以確定其是否正常執行。

  8. 使用 asadmin disable-http-lb-server 從負載平衡器停用舊叢集。如需有關此指令的更多資訊,請參閱 disable-http-lb-server(1)

  9. 為延遲階段作業存在的時間設定逾時。

  10. 使用 asadmin enable-http-lb-server 從負載平衡器啟用新叢集。如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

  11. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

  12. 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。

    例如,對於 Sun Java System Web Server,位置為 web-server-install-dir /https-host-name /config/loadbalancer.xml。必須為負載平衡器啟用動態重新配置 (透過在負載平衡器配置中設定 reloadinterval),以便能夠自動載入新的負載平衡器配置檔案。

  13. 在逾時時間過期後,或舊應用程式的所有使用者結束後,停止舊叢集並刪除舊應用程式。