10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

皆さんこんにちは。
今回は表題の通り、Azure MigrateでLinuxをLift&Shiftしようとしてコケまくり詰みまくり、それらを解決するまでの道のりを書き残しています。

何をしようとしたのか?

他所のクラウド上で稼働しているLinux(CentOS)をAzureにLift&Shiftしたい
→とりあえず手元のProxmox VEに仮想マシンを建ててマイグレーション出来るかテストしよう!と思い立ち検証を行った

コケポイント・詰みポイントは?

マイグレーション用Windows Serverの言語設定

Azure MigrateにはAzure Migrate:Discovery and Assessment移行およびモダン化ツールの2つのアプライアンスがあり、前述はWindows Server 2016が推奨環境で、日本語環境でもなんの問題もなく動作します。
しかし、後者はWindows Server 2022が推奨されており、言語は英語のみがサポートされています。
その英語というのは、英語版のインストールメディアのみを意味します。
image.png
上記のように、日本語インストールメディアからインストールしたWindows Serverに英語Language Packageを導入して入れ替えてもダメでした。
image.png
しかも、英語版インストールメディアを使用した場合でもキーボード配列は英語しか認めてくれません。
当初はOSのインストール時に毎回日本語106キーボードに変更しており、諦めて英語キーボード設定で再度インストールを行い、作業を継続しました。

Windows Server 2022のIISコンフィグエラー→2012R2を代わりに使う

おそらくProxmox VE上だけの問題かと思われますが、推奨環境であるWindows Server 2022でアプライアンスをセットアップ開始したところ、IISのコンフィグでコケてセットアップに失敗する症状に見舞われました。
image.png
不思議なことに、PowerShell-ISEがないとエラーを吐いて何も進みません。
実はWindows Server 2022ではなく2012R2を代わりに使用することも可能なのでそちらを試した所、一発でインストールに成功しました。
(2022では2番目のConfiguring Internet Infomation Services featuresでエラーが発生してインストールが中断されました)
image.png

Linux用のモビリティサービスエージェントが使えなくなっていた

今回の記事で一番のクソデカ爆弾がこれです。
Microsoft Learnの記事どおりにレプリケーションアプライアンスのWindows Server 2012R2からモビリティサービスエージェントをLinuxに取り込み、解凍して指定通りコマンドを実行しました。
/usr/local/ASR/Vx/bin/UnifiedAgentConfigurator.sh -i <アプライアンスIPアドレス> -P <アプライアンスパスフレーズファイル>

すると…
image.png
Provide Source Config File Path :と要求されます。Microsoft Learnには何かを追加で指定する記述は有りません。

なんだこいつ~!!!!

パスフレーズファイルかな?と思い適当に指定するも謎にAzureRcmCliに渡されておりエラーに…
image.png

ここからどうしようもなくなり、Azure Support Request(SR)に下記の質問をぶん投げました。

下記の公開情報に沿ってエージェントの登録を試みている。
https://learn.microsoft.com/ja-jp/azure/migrate/tutorial-migrate-physical-virtual-machines#install-on-linux
しかし、Provide Source Config File Path: と表示され、何を入れればよいのかが分からない。
具体的にどのようなファイルを指定すれば良いか知りたい。

そこから休みを挟んで4日後…

コマンドは間違ってないように見えるのでコマンドパスとパスフレーズファイルに間違いがないか確認してね!(要約)

と、かなり的外れな解答が返ってきました。
そのファイルは何を指定すればいいのかを教えてくれ~!と返信をぶん投げた所

確認したらバージョン 9.55に起因する不具合に関連してるっぽいので調査中!乞うご期待!!(要約)

とようやく調査が開始し、同時にMicrosoft側のミスであったことが判明しました。

そして最終的にサポートから提示された解決方法は

<エージェントをインストールするコマンド>
sudo ./install -r MS -v VmWare -q -c CSLegacy
 
<エージェントを登録するコマンド>
/usr/local/ASR/Vx/bin/UnifiedAgentConfigurator.sh -i <replication appliance IP address> -P <Passphrase File Path> -c CSLegacy

のように、各コマンドの最後に-c CSLegacyを付与することで問題を回避できるとの事でした。
実際に試した所、当初のMicrosoft Learnの記載通りの動きになり、正しくモビリティサービスエージェントがインストール・動作することを確認しました。

サポート側の解答によると、今回の不具合は

  • ディザスターリカバリーのアップデートにモダンアーキテクチャとクラシックアーキテクチャによる違いが発生した
  • それらの機能を使用したAzure Migrateの改修に情報共有が及ばず、古い情報がMicrosoft Learnに掲載されていた。

ことが原因であり、

  • 現在Linuxの移行にはクラシックアーキテクチャを使用せざるを得ない(モダンアーキテクチャのエージェントベースの移行がサポートされていない)こと
  • クラシックアーキテクチャは2026年3月30日を以てレプリケーションの構成変更が不可能になり、使用できなくなること
    を確認し、それらに対応したアップデートに取り組んでいる。とのことでした。

Azure Linux VM エージェントが動かない

AzureVMにLift&Shiftすることに成功し、VMの状態を確認しようとした所、何も表示されない現象に見舞われました。
確認した所、本来であればマイグレーション時に自動でインストールされるAzure Linux VM エージェントが正しく動作していませんでした。

実はAzure Linux VM エージェントはPython3ベースで動作するソフトウェアで、マイグレーション時に自動でインストール用のシェルが実行されるのですが、その際にPython3がシステムに存在しない場合にそのままエラーで進まなくなる事が判明しました。
(Microsoft Learnを見ればエージェントのインストールに必要な要件にPython3が書いているのでちゃんと読めばいいだけなんですが)

そのため、マイグレーション後に仮想ネットワークゲートウェイを作成し、AzureVPNで接続してSSHし、yum install python3を叩いて再起動することで解決しました。(エージェントがインストールされていない場合、起動毎に試行しているようです)
いちいち後からやるのはとても面倒くさいのでマイグレーション前に各マシンにインストールしておくことをおすすめします。

最後に

多分そんなにいないと思いますがAzureでLinuxをLift&Shiftする方は覚悟の準備をしておいてください!(ワザップジョルノ)
最後までご覧頂き有難う御座いました。

10
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?