遷移需要多長時間?
遷移前的評估
首先測試源端到目的端服務器的TCP速度。

其中:
T表示遷移時間,單位為h。
C表示源端服務器所有使用數據量,單位為GB。
S表示源端到目的端服務器的TCP速度,單位為Mbit/s。
U表示網絡利用率,與網絡質量(抖動、時延、丟包)有關,通常在50%~80%之間。
例如:遷移源端服務器所有使用數據量為100GB,iperf測試出來的TCP速度為100Mbit/s,網絡利用率為70%,那么遷移時間為:
遷移時間T =100GB * 1000*8 / 100Mbit/s/ 3600 /70%≈ 3.17h
表 遷移時間參考值
| 源端服務器所有使用數據量C(GB) | TCP速度S(Mbit/s) | 遷移時間T(h) |
|---|---|---|
| 10G | ≤1Mbit/s | 不推薦使用主機遷移服務 |
| 10G | 5Mbit/s~500Mbit/s | 6.35h~4min |
| 30G | ≤1Mbit/s | 不推薦使用主機遷移服務 |
| 30G | 5Mbit/s~500Mbit/s | 19.04h~11min |
| 50G | ≤5Mbit/s | 不推薦使用主機遷移服務 |
| 50G | 10Mbit/s~500Mbit/s | 15.87h~19min |
| 100G | ≤10Mbit/s | 不推薦使用主機遷移服務 |
| 100G | 100Mbit/s~500Mbit/s | 3.17h~38min |
| 500G | ≤10Mbit/s | 不推薦使用主機遷移服務 |
| 500G | 100Mbit/s~500Mbit/s | 15.87h~3.17h |
| 1TB | ≤100Mbit/s | 不推薦使用主機遷移服務 |
| 1TB | 500Mbit/s | 6.5h |
| >1TB | - | 不推薦使用主機遷移服務遷移 |
遷移中的評估
剩余時間T(h)=主機數據量C(GB)10008*(80%-當前傳輸進度P)/60%/遷移速度S(Mbit/s)/3600
- 主機數據量指的主機所有數據量。
- 當前數據傳輸進度P可以在主機遷移服務界面查看,如果進度P>80%,說明數據已經傳輸完畢,無需進行剩余時間評估。
- 遷移中的遷移速度S不能使用iperf測試,因為這個時候測試不準。windows請使用以下方式獲取準確的遷移速度,Linux推薦使用sar工具監控,也可以使用
/proc/net/dev命令監控網卡的速度。
如何查看剩余遷移時間?
遷移剩余時間是根據您的剩余數據量與遷移過程中的實際遷移速率計算得來,由于您遷移的過程中的速率存在一定的波動,因此剩余遷移時間無法被準確計算,且會隨之波動。您可參考以下方式查看剩余遷移時間。
- 登錄目的端管理控制臺。
- 單擊“服務列表”,選擇“遷移 > 主機遷移服務”。進入“主機遷移服務”頁面。
- 在左側導航樹中,選擇“遷移服務器”。進入服務器列表頁面。
- 單擊服務器名稱前的按鈕,即可查看預測的剩余遷移時間。
SMS控制臺顯示的遷移速率等數據是如何計算出來的?
名詞解釋
| 遷移過程中指標 | Windows塊級 | Linux文件級 | Linux塊級 |
|---|---|---|---|
| 總共數據量 | 待遷移的所有分區已用空間之和,右鍵點擊“分區>屬性>常規”可以查看 | 待遷移的所有分區已用空間之和,通過df -TH可以查看 | 待遷移的所有分區大小之和,通過 fdisk -lu可以查看 |
| 已遷數據量 | 已遷移的數據塊的大小,只計算分區中已用空間的數據塊 | 已遷移的文件大小 | 已遷移的數據塊的大小,包括分區中的所有數據塊 |
| 已遷移時間 | 開始遷移的時間,從任務開始時間計算 | 開始遷移的時間,從任務開始時間計算 | 開始遷移的時間,從任務開始時間計算 |
| 剩余時間 | (總共數據量-已遷數據量)/遷移速率 | (總共數據量-已遷數據量)/遷移速率 | (總共數據量-已遷數據量)/遷移速率 |
| 遷移速率 | 計算最近5s內遷移數據量。如5s遷移了200MB,則遷移速率200MB*8/5s = 320Mbps;由于遷移數據經過網卡傳輸遷移會被壓縮,因此遷移速率不等于網卡速率。 | 從目的端網卡中獲取,實際遷移速率。 | 最近5s內遷移數據量。如5s遷移200MB,則速率200MB*8/5s = 320Mbps;由于塊級還沒有壓縮,因此遷移速率等于網卡速率。 |
Windows塊級別
Windows塊級遷移速率分為兩種速率:第一種是SMS控制臺顯示的遷移速率,是近5s平均遷移速率。 第二種是遷移占用實際網卡傳輸速率,比第一種速率小,原因是網卡傳輸數據前會先進行壓縮。
- SMS控制臺顯示的遷移率計算方法(壓縮前)
在控制臺頁面上看到的遷移速率是每秒實際傳輸的遷移數據量,是壓縮前的速率。計算方法是求最近5s傳輸的數據量,例如近5s內傳輸的實際數據為200MB,壓縮后為50MB,頁面上查看到的速率是320Mbps ( 200MB**8/5s=320Mb/s*) , 任務管理器占用網卡的速率是80Mb/s(50MB*8/5s=80Mb/s)。
- 遷移實際網卡速率(壓縮后)
Windows 塊級傳輸過程時,Agent會先壓縮數據,然后通過網絡傳輸到目的端,目的端代理再解壓數據后寫入磁盤。通過任務管理器(以Windows Server 2012為例)中可以看到實際遷移網卡速率,這個速率顯示的是網絡帶寬的占用情況(即遷移傳輸速率),可以在源端任務管理器中查看(遷移過程中目的端服務器會自動鎖定,需解鎖后才能查看)。
Linux文件級
Linux文件級遷移沒有壓縮數據,因此Console頁面顯示的遷移速率和網卡傳輸速率一致。
例外場景:Linux文件級遷移在傳輸小文件時效率低,無法充分使用網絡帶寬,因此當系統中存在大量小文件時,遷移速率會遠低于網絡帶寬。
Linux塊級遷移
Linux塊級遷移沒有壓縮數據,因此SMS控制臺頁面顯示的遷移速率和網卡傳輸速率一致。
如何加快遷移速度?
- 需要提升您的網絡速率。如果網絡速率小于500kbit/s,您需要排查以下三個方面:
- 如果源端服務器在數據中心,請您排查源端服務器所在網絡到公網的帶寬、交換設備、路由設備、安全設備(防火墻等)、網絡線路、協議網絡相關因素等是否有限制或者使用不正確。如果有問題,需要您聯系網絡專業人員修復。建議您源端服務器所在網絡到天翼云公網的網絡速率大于10Mbit/s。
- 排查源端出口帶寬和目的端入云帶寬大小,擴大兩者之間較小的帶寬,也可根據需求將兩者同時擴大。
- 確保源端服務器與目的端服務器的OS設置正確。對于Windows系統,您可以使用
perfmon命令調用資源監視器監控網絡;對于Linux系統,推薦使用sar工具監控或者使用/proc/net/dev監控網卡的速度。如果網速較慢,說明您的OS配置可能不正確。需要提醒的是,您的OS服務、進程等不能對網卡做限速。
- 如果您源端服務器有大量的文件(例如50萬個100KB的文件),并且這些文件是殘留的無用數據,請提前刪除再做遷移。
- 請排查您源端服務器的I/O讀寫性能、CPU性能。Windows可以使用
perfmon命令調用資源監視器監控CPU和I/O讀寫性能,Linux使用top/ps和iostat/iotop來監控CPU和I/O性能。如果您的源端I/O讀寫性能、CPU性能差,建議您增加I/O和CPU的資源或者減少服務器運行的負載。
為什么遷移進度條進度時快時慢?
在主機遷移的過程中,除了遷移還包含了模塊初始化、備份、清理等各種操作,這些操作也會推動進度條的增長,而這些操作的用時難以準確預估,因此會導致遷移進度條增速時快時慢。該現象屬于正常現象,請耐心等待遷移完成即可。
Iperf的測試網絡的方法?
前提條件
- 保證源端與目的端網絡連通,以及天翼云上目的端服務器的安全組規則允許Iperf測試端口開放。
- 該測試需要在遷移前進行,而且在源端服務器上運行的業務對網絡影響不大,否則測試數據不準。
測試步驟
-
根據源端服務器的OS類型下載對應iperf版本。
-
在源端服務器和目的端服務器(或者目的端服務器同一Region下的其他彈性云服務器)某一個目錄下解壓iperf工具。例如在Windows操作系統的iperf工具:
-
在目的端服務器上,以命令行方式運行iperf(服務端模式運行,以Windows操作系統為例):
-
執行以下命令,進入iperf目錄。
cd /d path其中,path指2中iperf工具解壓后在目的端服務器中的路徑。
-
執行以下命令,以服務端運行iperf。
iperf3 -p port -s其中,port表示iperf工具的服務端監聽端口,建議Windows操作系統使用8900端口(8900為目的端服務器使用的數據傳輸端口),Linux操作系統使用22端口(22為目的端服務器使用的數據傳輸端口)。您測試的時候也可以使用其他端口,但要保證目的端服務器安全組規則允許開放該TCP或者UDP端口。以Windows操作系統使用8900端口為例,當回顯信息為Server listening on 8900時,表明服務端已經運行就緒。
-
-
在源端服務器上,以命令行方式運行iperf(客戶端模式運行),測試TCP帶寬和UDP的抖動、丟包率和帶寬(以Windows操作系統為例)。
-
執行以下命令,進入iperf目錄
cd /d path其中,path指2中iperf工具解壓后在源端服務器中的路徑。
-
執行以下命令,運行iperf工具,測試TCP帶寬。
iperf3 -c target_IP -p port -t time其中,-c是客戶端模式運行。
target_IP 表示目的端服務器(即以服務端模式運行iperf的服務器)的IP地址。
port表示連接目的端服務器的端口。
time表示測試總時間,默認單位為秒。以Windows操作系統使用8900端口為例,iperf客戶端連接到iperf服務端成功后會進行帶寬(Bandwidth)測試,測試結束后查看結果即可:
-
執行以下命令,運行iper測試UDP的抖動、丟包率和帶寬。
iperf3 -c target_IP -p port -u -t time其中,-u表示測試UDP的抖動、丟包率和帶寬。
target_IP 表示目的端服務器(即以服務端模式運行iperf的服務器)的IP地址。
port表示連接目的端服務器的端口。
time表示測試總時間,默認單位為秒。以Windows操作系統使用8900端口為例,iperf客戶端連接到iperf服務端成功后會測試UDP的抖動(Jitter)、丟包率(Lost/Total Datagrame)和帶寬(Bandwidth),測試結束后查看結果即可。
-
若需要測試網絡時延,可以使用ping命令。
ping target_iPtarget_IP 表示目的端服務器(即以服務端模式運行iperf的服務器)的IP地址。需要配置目的端服務器所在的VPC的安全組規則,允許ICMP協議報文通過。
-
-
執行命令
iperf3 -h,獲取更多的iperf的使用幫助。
遷移中升級帶寬后,遷移使用的是升級前的帶寬還是升級后的帶寬?
升級帶寬后,遷移使用的實際帶寬取決于下面最小的帶寬。升級帶寬后,需要等待5-10分鐘,才可生效,請耐心等待。
- 源端服務器升級后的帶寬。
- 目的端服務器入云帶寬。
- SMS控制臺設置的網速限制。
遷移速度由源端帶寬決定還是目的端帶寬決定?
遷移速度取決于源端的出口帶寬和目的端的入云帶寬。取兩者中較小值進行遷移。
如何判斷遷移任務是不是卡住?
遷移任務如果長時間不動,可能是以下三種情況,需要查看源端Agent日志確定。
- 情況一:遷移任務處于“持續同步”階段。
“持續同步”是主機遷移服務新增的功能,會自動同步源端數據。在配置目的端時,“是否持續同步”選擇“是”,全量復制完成后會自動進入“持續同步”階段。
遷移任務處于“持續同步”階段的時候,遷移并沒有完成,需要手動啟動目的端,因此,在未手動啟動目的端前,遷移任務會一直處于“持續同步”階段。啟動目的端完成后,才算一次完整的遷移。
- 情況二:數據遷移中。
數據遷移進行全量復制時,長時間處于某一進度,可能是由于遷移數據量大,遷移速率慢,導致長時間內進度無明顯變化,需要查看日志進行確認。若遷移速率不為0,已遷移數據量持續增加,則表明遷移正常。
- 情況三:啟動目的端卡住。
1、啟動目的端后任務進度條長時間為0,可能是在執行最后一次同步任務。啟動目的端時會進行一次數據同步,期間進度條無變化,數據同步時間長短由源端數據量決定,如果數據量過大,會導致數據比對時間長,該現象為正常現象。若要確定是否在進行數據同步,可查看sms_Info.log最新日志,若啟動目的端之后未出現error級別日志,則表明任務正常。
2、啟動目的端后任務進度條有進度但長時間無變化,可嘗試暫停任務,再次啟動任務,等待一段時間(10分鐘左右)再次查看是否發生變化。
影響遷移速度的因素有哪些?
可能會導致遷移速度慢、遷移時間長的因素如下表。
| 操作系統 | 影響因素 | 說明 |
|---|---|---|
| - | CPU和內存占用率 | 遷移過程中會占用源端主機的一部分內存和CPU,占用情況根據主機的實際情況有所不同。遷移前確保源端主機CPU和內存占用率不高于75%,實際預留內存不少于520MB。 |
| 網絡帶寬 | 主機遷移對網絡有較為嚴格的要求,需要保證源端和目的端網絡通暢,源端與目的端的網絡延遲不能過高,遷移帶寬取源端和目的端之間較小值。 | - |
| Windows | 磁盤碎片 | Windows是塊級遷移,遷移會讀取磁盤中的有效塊,由于Windows的特性,在日常使用中會產生大量的磁盤碎片,通常Windows使用時間越長,磁盤碎片會越多,從而影響遷移時長。 |
| Linux | 文件過大 小文件過多 |
Linux是文件級遷移,源端小文件過多或者有比較大的文件,都會影響遷移速度。 源端單個文件超過2GB,可能導致遷移時間長。 源端小文件數據量過多,比如有超過一萬個小于20KB的小文件,可能導致遷移時間長 |
可能會導致同步時間長的因素如下表。
| 操作系統 | 影響因素 | 說明 |
|---|---|---|
| - | 源端增量數據較多 源端變化數據較多 |
在同步過程中,如果源端產生的增量數據較多或者源端較多數據發生變化,會導致同步時間較長。 |
| Windows | 碎片文件過多 | 在同步過程中,如果源端產生的碎片文件較多,會導致同步時間長。 |
| Linux | 存在較大的稀疏文件 | 在同步過程中,系統會掃描稀疏文件,但不會遷移稀疏文件,如果源端有較大的稀疏文件,會導致同步時間長。 |
Linux塊遷移,為什么實際遷移速率顯示很低?
Linux塊遷移時,實際遷移速率顯示很低,遠小于寬帶的速率。
出現這種現象的原因,一般但不限于以下場景:
- 磁盤中數據占有率較低。
- 磁盤中存儲了大量的稀疏文件。
Linux塊遷移,在執行遷移的過程中會對數據進行壓縮,當需要遷移的磁盤塊本身存儲數據較少,或者是空的磁盤塊,會導致數據壓縮率很高(如:100M壓縮為5M),而遷移執行過程中傳輸的數據為壓縮后的數據,所以在傳輸這些數據較小的磁盤塊時,顯示的傳輸速率很低。實際上,在這種場景下遷移還在正常快速的執行,網絡連接、帶寬等都是正常的。