本篇紀錄我將 G. T. Wang 部落格的 VPS 伺服器從 Linode 的新加坡機房轉移至日本機房的過程,以及保持網站持續服務不斷線的技巧。
最近測試了一下 Linode 新加坡機房與日本第二機房的網路連線速度(ping),發現在台灣不同地方的測試數據會不太一樣,以下是我在台南用中華電信光世代的網路環境測的結果,首先是新加坡機房的數據。
在中華電信網路下,日本第二機房的連線速度比新加坡機房快一些,而且台灣對日本的網路頻寬又比新加坡高,所以如果是針對台灣使用者的伺服器,放在日本會是不錯的選擇。
Linode 的日本機房在前幾年銷售一空,我當時要將 G. T. Wang 部落格搬過來 Linode,亞洲區只剩下新加坡機房可以使用,後來 Linode 又增加了日本第二機房,經過了半年應該是夠穩定了,所以現在決定把 G. T. Wang 部落格轉移過去。
Step 1
首先在 Linode 中新增兩個 VPS,一個放在原本位置的機房(新加坡),另外一個放在新位置的機房(日本),方案就跟原本的伺服器方案即可。
Step 2
機房位置可在「Location」的地方選擇,一個選新加坡,另外一個選日本,不可以選錯。
Step 3
新增完兩個 Linode VPS 之後,檢查一下狀態以及所在地,現在總共應該會有三個 VPS,一個是原本位於新加坡的 VPS,另外兩個是新增的 VPS。
Step 4
從原本新加坡的 VPS 中,在「Backups」籤頁中製作一份最新的備份快照,再利用「Restore to…」的功能複製一份副本。(這個需要啟用 Backups 備份功能才有,如果沒有啟用的人,可以直接啟用後使用,用完再關掉,短期使用費用不高)。
Step 5
選擇回復副本的目的地,請選擇新增的那一個 Linode VPS。
Backups 的 Restore 功能只能回復至本地端的 Linode VPS 中,所以這裡只能選擇新加坡的 Linode VPS。
Step 6
回復完成後,將這台 VPS 開機,然後複製它的 IP 位址。
Step 7
使用本機 hosts
檔案的方式測試副本 VPS 是否正常,接著修改 DNS 紀錄,將所有服務網站的 IP 位址替換為這台副本 VPS 的 IP 位址。(這個步驟跟之前升級 Linode VPS 的時候相同,詳細說明請參考之前的說明)
Step 8
DNS 轉移之後,等待舊的 VPS 網路流量歸零。
Step 9
確認完全沒有網路流量之後,將舊的 VPS 關機。
Step 10
使用 VPS 的「Clone」功能,將舊的 VPS 複製到日本機房,首先選擇舊 VPS 的 Profile,這種設定會將所有設定連同硬碟資料一起搬過去。
Step 11
目的地要選擇日本機房的 Linode VPS(剛剛新增的那一個)。
Step 12
跨資料中心的搬移過程會需要等比較久,我的 VPS 硬碟大小使是 30GB,從新加坡搬到日本大概要等一小時左右。
Step 13
等 VPS 搬移完成後,直接開機。
Step 14
修改 DNS 紀錄,將之前所有舊 VPS 的 IP 位址都改為日本 VPS 的 IP 位址,IPv4 與 IPv6 都要改。
Step 15
修改完 DNS 之後,現在的 VPS 應該是有兩台在跑,一台是位於新加坡的副本 VPS,另外一台則是轉移至日本的 VPS,另外那一台關機狀態的新加坡 VPS 則是最原始的 VPS。
Step 16
等待所有的流量都轉移至日本第二機房的 VPS 之後,其餘的 VPS 就可以刪除了,當然刪除之前請先確認所有的設定都有轉移過來,例如 Backups 的備份時機設定等。
這樣就完成 VPS 的搬遷了,整個遷移過程大約花了三個小時左右。
這是 Pingdom 的 uptime 數據,整個轉移過程網站還是可以維持 100% 的 uptime,而轉移過後伺服器的 response time 明顯變低一些(不確定是為什麼)。
這是幾天之後的 uptime 與 response time 數據,看起來 response time 很明顯有下降。