Colocation

計劃將伺服器從一處遷移到另一處

  • May 7, 2012

我們對目前的託管服務提供商不太滿意,因此我們希望搬到不同城市的另一家公司。我們的業務是一所可以在全球範圍內訪問的線上學校(這意味著我們的應用程序需要 24x7 的可用性,但最多 1-2 小時的停機時間是可以承受的)。世界各地的學院和大學都將我們的課程作為他們自己的課程提供,因此這些協議的一部分規定,如果他們要向我們付款,我們在任何給定月份的停機時間都不能超過 X。

所以我有一個計劃,但我想把它公開,看看其他人是否看到我可能忽略的任何問題,或者你是否有更好的計劃,你可以提出建議。

我們的設置:英特爾模組化伺服器、帶有 jails 的 FreeBSD、apache、mysql、php。學生登錄的域類似於 portal.mydomain.com

我在想我們可以在站點 B(新站點)上建立我們的伺服器的第二個實例,並給它一個新的域名 (portal1.mydomain.com)。然後,我們可以強制來自 portal.mydomain.com 的所有流量重定向到 portal1.mydomain.com。那時,我們將對原始域名的 DNS 進行更改,以獲得新的 IP 地址。然後我們會給它 48 小時的時間來傳播 DNS 更改。那時,我們只需更改新實例上的 apache 以響應 portal.mydomain.com 而不是 portal1,然後一切都照常進行。

我忽略的這個計劃中是否有任何漏洞?有更好的方法嗎?

為此,您必須絕對確定您的應用程序不依賴於目前域名,並且可以在 portal1.mydomain.com 下執行。

我過去的經驗是,可悲的是,情況並非總是如此。

如果您可以確定域名沒有問題,那麼您的計劃聽起來不錯。

當您切換到新數據中心時,您顯然需要同步 MySQL 數據庫(您在計劃中沒有提到這一點)。

我會將 portal.mydomain.com DNS 記錄的 TTL 設置為較低的值,因此不需要 48 小時即可傳播。

如果您不能確定,我的建議如下:

  • 降低 portal.mydomain.com 的 TTL(5 分鐘)

  • 在新 DC 中設置一個新實例,同時監聽 portal.mydomain.com

  • 保持 MySQL 數據庫從舊 DC 同步到新 DC(複製)

  • 停止舊 DC 中的 Apache

** 等待最後一個數據庫更改複製

** 在新數據庫上停止複制,配置為獨立

** 更改 DNS 記錄portal.mydomain.com 指向新實例的 IP

** 配置舊 Apache 實例以訪問新 DC 中的 MySQL 數據庫

  • 等待,監控舊 Apache 上的請求,不再使用時關閉

  • 將 TTL 設置為又是正常值

這還假設一些事情,例如 DC 之間的 MySQL 連接是可能的。

引用自:https://serverfault.com/questions/386720