[Alibaba Cloud] オンプレミスからVM移行ができるServer Migration Center 触ってみた

## この記事の目的
Alibaba CloudのマイグレーションツールがServerMigrationCenterとして新たにリリースされていたので軽く触ってみました。
CentOSのサーバーのイメージコピーして、Alibaba Cloud環境に移してみます。

## ServerMigrationCenterの概要
- Alibaba Cloudのマネージドサービスの1つ
- `オンプレミス`や`クラウド環境`から複数サーバーをAlibaba Cloud環境に移行するために利用するツール
- 増分移行をサポートしているので、サーバーを停止する必要なく移行が可能
- 複数タスクを同時実行可能（利用シチュエーションは不明）
- ソースディスクのパーティションスキーマを取得してディスクパーティションも複製可`※この際にディスクサイズを指定可`
- SMCのコンソール（https://smc.console.aliyun.com/welcome）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/1202cdee-c221-3811-2bae-fbd045e819c9.png)


## その他の特徴
- 増分データ同期
    - サーバー停止をする必要がない.
    - ソースサーバーの増分データをAlibabaCloudに同期する.

- コンテナレジストリへのデータ移行
    - サーバーをContainerRegistryに移行可能.
    
- マルチスレッドデータ送信
    - マルチスレッドデータ送信をサポート.
    - 高帯域幅が利用可能な場合に帯域幅の使用量と伝送効率が向上
 
- 移行タスクのステータス監視が可能
    - 監視ができるのでエラーを早期に特定しトラブルシューティングが迅速に.

## ローカル作業
- ローカルのMacbookにマイグレーションのエージェントツールをDL
- ダウンロードURL:（https://p2v-tools.oss-cn-hangzhou.aliyuncs.com/smc/Alibaba_Cloud_Migration_Tool.zip?spm=5176.13581910.904.4.72796145SwdqYh&file=Alibaba_Cloud_Migration_Tool.zip）
*エージェントはアップデートされる可能性があるので、最新版はAlibaba CloudのSMCコンソールよりDLが必要

```bash
## マイグレーションツールDL後、対象のディレクトリに移動. 
## llでファイルを確認. 
## 今回はLinux_x86*64bitのエージェントを利用します. 
root@tnoce:~/dev-main/Alibaba_Cloud_Migration_Tool$ ll
total 58968
drwx------@  7 SHU  staff      224 Jan 21 13:22 ./
drwxr-xr-x  25 SHU  staff      800 Jan 21 13:23 ../
-rwxr-xr-x@  1 SHU  staff    21010 Jan 12 15:39 Release Note.txt*
-rwxr-xr-x@  1 SHU  staff  6111564 Jan 18 20:04 go2aliyun_client2.5.2_linux_i386.zip*
-rwxr-xr-x@  1 SHU  staff  6044981 Jan 18 20:04 go2aliyun_client2.5.2_linux_x86_64.zip*
-rwxr-xr-x@  1 SHU  staff  8727685 Jan 12 15:39 go2aliyun_client2.5.2_windows_i386.zip*
-rwxr-xr-x@  1 SHU  staff  9277052 Jan 12 15:39 go2aliyun_client2.5.2_windows_x86_64.zip*

## SFTPで対象マイグレサーバーにログイン
$ sftp -oIdentityFile=`YOUR KEY-PAIR` root@[IPアドレス]

## sftp put -r でマイグレツールのディレクトリをまるごとサーバー側にアップロード.
> sftp put -r /dev-main/Alibaba_Cloud_Migration_Tool/go2aliyun_client2.5.2_linux_x86_64.zip*
```

## サーバー作業
```bash
## sshでログイン.
## llでsftpでputされたディレクトリが存在するか状態確認
[root@eigo-split go2aliyun_client2.5.2_linux_x86_64]# ll
total 5208
drwxr-xr-x 3 root root    4096 Jan  8 17:32 Check
-rw-r--r-- 1 root root    6357 Jan  6 17:51 client_data
-rw-r--r-- 1 root root   20169 Jan  6 17:51 EULA
drwxr-xr-x 2 root root    4096 Jan  6 17:55 Excludes
-rwxr-xr-x 1 root root 5289072 Jan 18 19:56 go2aliyun_client
-rw-r--r-- 1 root root     100 Jan 21 12:31 user_config.json

## vimでACK, ACK-Sを編集
[root@eigo-split go2aliyun_client2.5.2_linux_x86_64]# vim user_config.json
{
        "access_id" : "YOUR ACK-ID INPUT HERE",
        "secret_key" : "YOUR ACK-SECRET-KEY INPUT HERE"
}

## chmodでアプリケーションに実行権限を付与
[root@eigo-split go2aliyun_client2.5.2_linux_x86_64]# chmod +x go2aliyun_client

## ./go2aliyun_clientでアプリケーションの実行
[root@eigo-split go2aliyun_client2.5.2_linux_x86_64]# ./go2aliyun_client
[2021-01-21 12:34:23] [Info]  ========= Goto Aliyun Client 2.5.2. =========
[2021-01-21 12:34:24] [Info]  =========   Run In Daemon Mode   =========
[2021-01-21 12:34:24] [Info]  Goto Aliyun Begin...
[2021-01-21 12:34:24] [Info]  Load User Config...
[2021-01-21 12:34:24] [Info]  Load Client Data...
[2021-01-21 12:34:24] [Info]  Check System Info [CentOS x86_64]...
OS Info: CentOS Linux 7 (Core) (3.10.0-1062.18.1.el7.x86_64)
CPU Info: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
CPU Usage: 2 Cores (1.01%) Memory Usage: 1.81GB/4.00GB (45.25%)
Hostname: eigo-split IP Address: 10.68.30.177 Mac Address: 00163E004478
[2021-01-21 12:34:25] [Info]  Verify User Account...
You Have Not Created ServiceLinkedRole For SMC:
When you import source server for the first time, a service linked role is automatically created for you to use relevant features.
Role Name: AliyunServiceRoleForSMC
Role Policy: AliyunServiceRolePolicyForSMC
Role Description: By default, SMC assumes this role to access your resources in other Alibaba Cloud services, such as ECS, VPC, and RAM.
Documentation: https://help.aliyun.com/document_detail/122993.html
Do You Want To Created It and Continue? (yes/no): yes
[2021-01-21 12:34:29] [Info]  Generate SSH Key...
[2021-01-21 12:34:29] [Info]  Import Source Server...
[2021-01-21 12:34:31] [Info]  Import Source Server [s-bp13vdcjxh8tg0y9eyj4] Successfully!
[2021-01-21 12:34:32] [Info]  Check Source Server Status...
[2021-01-21 12:34:33] [Info]  Check Replication Job Status...
Please Goto SMC Console To Create New Job, time: 2m30s    \
```

## Alibaba Cloud作業
- SMCコンソールで移行ソースが作成されているのを確認
- 移行タスクの作成に進む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/a6410974-0234-8ff6-07a6-2c3e1bfdc288.png)

- 基本セッティング
    -  Target Region：イメージをコピーするターゲットリージョン
    -  Task name：移行タスクの名前
    -  Description：移行タスクの説明
    -  Target Disk Size (GiB)：ターゲットのディスクサイズ
    -  Resource Type：ECSイメージかコンテナイメージ
    -  Image Name：イメージの名前
    -  许可证类型：ICPの取得

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/d4861c75-9f09-d7e6-2ef0-4baeca3927f3.png)

- タグ&ネットワーク（オプション）
    - Migration Task Tag：タグ付け（任意）
    - Network Type：Public Network OR VPC ⇒　VPCは閉域接続かVPN接続が必要
- アドバンス設定（オプション）
    - Transmission speed limit (KB/S)：
    - Compression Level：コンプレッションレベルを上げると伝送効率は上がるが、CPU負荷が上がる
    - Checksum：チェックサム機能（*ファイルデータの整合性を高めますが、移行速度は落ちる）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/9e631471-b4a6-0998-2fda-2867837e7214.png)

- 移行タスクを作成すると以下のように`preparing`の状態になりますので、気長に待ちます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/55e1b1fa-16cf-89a3-0daf-8beacd595df0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/960eb464-5360-bae1-2293-ff0c3d43e0ac.png)

- タスクが完了したようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/9f42d154-483a-38ca-3ee1-7de1768d6f95.png)


- Imageができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/b12c5c0e-d13e-3f2b-dd7e-bcf08056337c.png)


## イメージからECSの作成
- CreateInstanceから作成
- いつもどおりECSの購入を進めていく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/5e7bd090-6e79-0ed9-ab9e-20d744f8f7d7.png)

## イメージから作成したインスタンス
問題なく同一のディレクトリ構造を持ったVMが作成されました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/d8d0eb9c-00ba-6212-1372-7dee5271bd12.png)


## まとめ
マイグレーションに時間はかかりましたが、シンプルでわかりやすく使えました。
あとは、速度を速めたい場合はオプション値の設定も有効かなと。
イントラ経由でVMイメージの移行もできるようなので、VPCモードを試してみる価値はありそうです。


## 追記
- Migrationツールの新しいバージョンがリリースされていた場合、アプリケーション実行前に聞いてくれる仕様を確認しました。

```bash
[root@squid-zyoui go2aliyun_client2.5.2_linux_x86_64]# ./go2aliyun_client
[2021-02-18 11:19:23] [Info]  ========= Goto Aliyun Client 2.5.2. =========
********** Current Version [2.5.2] **********
********** ! New Version [2.5.3] Found ! **********
  * Release Date: 2021-02-04
  * Update Log:
    1. Optimized for breakpoint continuation.
    2.Optimized for sync progress report issue.
    3. Fixed other known issues.
  * Download Url Saved To [/root/Alibaba_Cloud_Migration_Tool/go2aliyun_client2.5.2_linux_x86_64/new_version_url.txt].
********** ! New Version [2.5.3] Found ! **********
Exit To Update New Version? (yes/no): yes
Enter any key to exit...
```
- コンソールからタスク開始の時間予約が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274358/96a18210-cd62-9e4f-5751-a3aef469859d.png)