如何跨專案轉移虛擬磁碟(VDS)內的資料

虛擬運算磁碟(VDS)是與虛擬運算個體(VCS)搭配進行使用,提供虛擬運算個體有更多的儲存空間進行資料的擺放。

使用情境

過去有收到用戶反映需要將專案內虛擬磁碟的資料轉移到其他專案使用的情形,可能是因為專案到期需將資料轉移到新的專案或是使用情境上的需求。

目前TWCC尚未提供虛擬磁碟搬移的功能,因此我們建議使用SCP的方式進行資料的轉移,以下就位大家來介紹操作方法與注意事項。

應用情境設計

來源主機(vmscp1)內的檔案test.txt(位置位於exptestscp1資料夾,並已掛載於虛擬磁碟)轉移到目的主機(vmscp2)的資料夾exptestscp2(已掛載於虛擬磁碟)。

實驗規格

均使用TWCC所提供的虛擬運算服務(VCS),規格作業系統如下:

來源主機
  • 虛擬運算個體名稱: vmscp1
  • 位於專案代號: ENT110209
  • 虛擬運算規格: 2 cpu, 16G Memory, 100G System Disk, 10G Data Disk(HDD)
  • 作業系統: (public) Ubuntu 20.04
目的主機
  • 虛擬運算個體名稱: vmscp1
  • 位於專案代號: ENT110209
  • 虛擬運算規格: 2 cpu, 16G Memory, 100G System Disk, 10G Data Disk(HDD)
  • 作業系統: (public) Ubuntu 20.04

操作步驟

創建金鑰與備份金鑰
備份金鑰

為確保兩台虛擬運算主機,可以透過SCP進行資料的傳輸,因此這邊特別建立另外創建一把金鑰,讓兩台虛擬運算個體可以成功連線,先進入來源主機進行金鑰的創見與備份。

cd ~/.ssh
cp authorized_keys backup.txt
vi backup.txt
cd

將authorized_keys內的檔案資料備份到其他檔案,以利後續繼續使用。
確認有正確備份的動作尤為重要,當檔案完成傳輸後,需回覆使用原本金鑰進行連線虛擬運算個體,如未將此份TWCC建立虛擬運算個體的資料保存會,將無法再使用原先建立虛擬運算個體的。
創建金鑰

於來源主機(vmscp1)中,利用ssh-keygen創建scp檔案傳輸的金鑰

ssh-keygen

創建公私金鑰鑰匙對
基本上已經建立完成公鑰與認證方面的資訊了,公鑰是儲存於id_rsa.pub內,接下來的步驟中,該檔案內的資料將是串連兩台虛擬運算個體的關鍵。
詢問儲存的金鑰位置與密碼的設定,可以直接按Enter跳過。

cd ~/.ssh
cp id_rsa.pub authorized_keys
cat authorized_keys

將id_rsa.pub的內容複製到authorized_keys,做為未來SCP傳輸檔案的前置作業。
複製 id_rsa.pub內容,稍後要到目的主機更改authorized_keys檔案內容。

連線進入目的主機(vmscp2),進入~/.ssh內將 authorized_keys 內容進行備份。

cd ~/.ssh
cp authorized_keys backup.txt
vi backup.txt

與處理來源主機(vmscp1)的做法一樣,將authorized_keys內容進行備份,並確認backup.txt內容。
上圖為backup.txt檔案內容,一樣為未來使用scp傳輸完檔案需要更改回來的內容。

開啟目的主機(vmscp2)的authorized_keys,並將來源主機(vmscp1) authorized_keys的內容複製貼上。

將目的主機 (vmscp2)與來源主機 (vmscp1)的 authorized_keys內容同步一致,未來可以直接進行連線並傳輸。

複製完成後請按下Esc,輸入:wq後按下Enter進行存檔。

利用ssh指令測試是否可以進行連線

ssh <name>@<IP>

上圖紅框為 ssh指令,TWCC 虛擬運算個體<name>的部分主要是ubuntu,IP的部分為公用 IP。連線成功後,就會發現使用者名稱的變化,代表您已經連線進入另一台虛擬運算個體。
檔案傳輸

使用SCP指令進行檔案的傳輸

scp /<path>/<file> <name>@<IP>:/path/

scp指令上圖紅框處為指令相關範例,如出現下面進度條代表並顯示進度為100%代表該黨案已經傳輸至另一台虛擬運算個體中

如果需要在更加確認檔案是否有傳輸到另一台虛擬運算個體中,您可以登入目的主機查看檔案是否有存在指令中的目標資料夾。

進入目標主機(vmscp2)查看檔案是否有成功傳入。
金鑰還原

分別進入來源主機(vmscp1)與目標主機(vmscp2)進行金鑰的調整

cd ~/.ssh
cp backup.txt authorized_keys

進入來源主機(vmscp1)將backup.txt資料複製到authorized_keys中,確保可以正常透過原本的金鑰進行連線。
進入來源主機(vmscp1)將backup.txt資料複製到authorized_keys中,確保可以正常透過原本的金鑰進行連線。

注意事項

1. 在使用 scp進行 VDS備份時,務必要將原先的金鑰進行保留。

2. 金鑰更改完後務必確保不要讓使用中的虛擬運算個體斷線,否則將會無法登入原本的虛擬運算個體。

首圖來源: pexels