Migrate for Anthos は、Linux VM ワークロードで実行できるセルフサービス ツールを提供します。このツールを使用すると、コンテナに移行するワークロードの適合性を判定できます。
このツールは、移行前に解決する必要がある問題と、次のいずれかに対する全体的な評価を記述した VM の分析結果を出力するレポートを出力します。
- 適合性優秀。
- 適合性良好、ただし手動作業が必要。
- 移行前に軽微な作業が必要。
- 移行前に中程度の作業が必要。
- 移行前に多くのの作業が必要。
- 適合していない。
ツールの仕組み
Linux 検出ツールは、次の 2 つのフェーズで動作します。
収集フェーズ -
m4a-fit-collect.sh
という名前の bash スクリプトによって移行対象の Linux VM に関する情報が収集され、収集されたデータが tar ファイルに書き込まれます。 移行中に使用されるデータのコピーを VM ファイル システムに残します。分析フェーズ -
m4a-fit-analysis
ツールは、収集フェーズの出力を解析して一連のルールを適用し、適合性評価とツールの検出結果を説明する詳細なレポートを作成します。レポートは、HTML ファイルや JSON ファイルとして表示できます。
データ収集ツールと分析ツールは同じ VM 上で実行できます。ただし、複数の VM がある場合は、それぞれの VM で個別に収集ツールを実行し、各 VM で生成された tar ファイルを 1 台のマシンにアップロードして分析を行うこともできます。m4a-fit-analysis
ツールを使用すると、複数の tar ファイルを同時に処理し、各 VM の評価と分析結果を出力できます。
HTML 出力
次の画像は、my-vm という VM 評価ツールの HTML 出力を示しています。

ここで
このテーブルには分析対象の VM ごとに 1 行が割り当てられ、それにはVM の詳細へのリンクが含まれています。
[データ収集日]、[確認済み OS]、[M4A 適合性スコア]、[ワークロードの種類] の各列には、VM と分析の結果についての概要情報が含まれています。
[追加情報] 列には、リスニング ポート、マウント ポイント、NFS マウント ポイントなどの情報を含む各 VM の詳細へのリンクが含まれます。
各ルール列には、VM に対するルールの適用結果が表示されます。以下の値になります。
- [Not Detected] は、ルールで移行に伴う問題が検出されなかったことを意味します。
- [Detected] は、ルールで VM の移行に伴う問題が検出されたことを意味します。[Detected] をクリックして、ルール出力の詳細を表示します。
前提事項
Linux 検出ツールには次の前提条件があります。
評価対象のターゲット VM が実行され、アプリケーション、プロセス、オープンポートが検出可能であること。
分析ツール
m4a-fit-analysis,
を使用するマシンで Linux カーネル バージョン 2.6.23 以降が実行されていること。collect スクリプトを
sudo
として実行する必要があります。
ツールのインストールと実行
収集スクリプトと分析ツールをダウンロードする必要があります。次のいずれかを行います。
- 両方のツールを 1 つの VM にダウンロードする。
- 複数の VM がある場合は、収集スクリプトを各ワークロード VM にダウンロードしてから、収集したデータを 1 台のマシンにアップロードして、分析ツールを実行する。
VM を評価するには:
VM にログインします。
収集スクリプトと分析ツールのディレクトリを作成します。
mkdir m4a
cd m4a
収集スクリプトを VM にダウンロードして実行可能にします。
wget https://anthos-migrate-release.storage.googleapis.com/v1.7.0/linux/amd64/m4a-fit-collect.sh
chmod +x m4a-fit-collect.sh
分析ツールを VM にダウンロードして実行可能にします。
wget https://anthos-migrate-release.storage.googleapis.com/v1.7.0/linux/amd64/m4a-fit-analysis
chmod +x m4a-fit-analysis
VM で収集スクリプトを実行します。
sudo ./m4a-fit-collect.sh
このスクリプトは、
m4a-collect-machinename-timestamp.tar
という名前の tar ファイルを現在のディレクトリと/var/m4a/m4a-collect-timestamp.tar
に出力します。タイムスタンプの形式は
YYYY-MM-DD-hh-mm
です。tar ファイル形式の詳細については、収集スクリプトの処理をご覧ください。注: 1 台のマシンに分析ツールをインストールした場合は、そのマシンに tar ファイルをアップロードします。
tar ファイルに分析ツールを実行します。
./m4a-fit-analysis m4a-collect-machinename-timestamp.tar
このツールは、次のディレクトリに 2 つのファイルを出力します。
analysis-report-timestamp.html
という名前の HTML ファイル。タイムスタンプの形式はYYYY-MM-DD-hh-mm
です。ブラウザでこのファイルを表示し、レポートを確認します。JSON 形式の出力を含む
analysis-report-timestamp.json
という名前の JSON ファイル。このファイルは、データ可視化ツールへの入力として使用できます。
出力ファイルには、適合性評価など、分析に関する情報が含まれています。詳しくは、レポートのファイル形式をご覧ください。
複数の tar ファイルに対して分析ツールを実行するには、次のコマンドを使用します。
$ ./m4a-fit-analysis tarFile1 tarFile2 tarFile3 ...
このツールは、各入力 tar ファイルについて 1 つの行を出力ファイルに出力します。レポートでは、各 VM をホスト名で識別できます。これは、VM で
hostname
コマンドを実行して戻された値です。ツールの出力を制御するには、
--verbosity
オプションを使用します。panic
、fatal
、error
(デフォルト)、warning
、info
、debug
、trace
を使用できます。レポートを表示するには、ブラウザで
analysis-report-timestamp.html
を開きます。ファイル形式の詳細については、分析ツールの処理をご覧ください。
収集スクリプトの処理
収集スクリプトは、一連の Linux コマンドを実行して移行元の VM に関する情報を収集します。また、VM 上の複数のファイルから情報を収集します。
以降のセクションでは、スクリプトの操作について説明します。また、テキスト エディタでスクリプトを調べ、より詳しい情報を確認することもできます。
スクリプト コマンド
このスクリプトは、次の Linux コマンドを実行します。
コマンド | 説明 |
---|---|
netstat -tlnp |
アクティブなリスニング ポートの一覧を取得します。 |
ps -o pid,user,%mem,comm,args -e |
実行中のユーザー プロセスの一覧を取得します。 |
dpkg -l |
インストール済みパッケージの一覧を取得します(debian ベース)。 |
rpm -qa |
インストール済みパッケージの一覧を取得します(rpm ベース)。 |
sestatus |
SELinux のステータスを取得します。 |
lsmod |
読み込まれているカーネル モジュールを取得します。 |
systemctl |
実行中のサービスの一覧を取得します(SystemD baseD)。 |
service --status-all |
実行中のサービスの一覧を取得します(Init.d /Upstart ベース)。 |
lsof /dev / |
オープン ハンドルをファイルやハードウェア デバイスに表示します。 |
docker ps |
実行中の Docker コンテナの一覧を取得します。 |
ip addr |
NIC に割り当てられた IP アドレスを一覧表示します。 |
ifconfig |
NIC 構成と割り当て済みの IP を表示します。 |
blkid |
ブロック デバイス属性を一覧表示します。 |
lsblk --json -p --output NAME,PARTFLAGS,PARTTYPE,UUID,LABEL,FSTYPE" |
ブロック デバイスを一覧表示します。 |
収集されるファイル
このスクリプトが生成した tar ファイルには次のファイルがコピーされています。
パス | 説明 |
---|---|
/etc/fstab |
起動時にマウントされるマウントのリスト。 |
/etc/hosts
|
ホストのエイリアスと DNS データ。 |
/etc/issue
|
Linux ディストリビューションの名前。 |
/etc/network/interfaces
|
構成済みのインターフェース。 |
/proc/cpuinfo |
CPU 情報 |
/proc/meminfo |
VM 上の現在のメモリ使用量 / 合計。 |
/proc/self/mounts |
現在マウントされているデバイス。 |
/etc/exports |
NFS エクスポートのリスト。 |
/opt/IBM/WebSphere/AppServer/properties/version/installed.xml |
WebSphere のバージョン(デフォルトでインストールされている場合)。 |
/opt/IBM/WebSphere/AppServer/properties/version/WAS.product |
WebSphere 情報(デフォルトでインストールされている場合)。 |
調査したディレクトリ
スクリプトは次のディレクトリを深さ 2 まで検索して、ユーティリティとソフトウェアがインストールされているディレクトリを特定します。
/opt/
/usr/share/
/etc/
/usr/sbin/
/usr/local/bin/
tar ファイル形式の収集
m4a-fit-collect.sh
スクリプトは、m4a-collect-machinename-timestamp.tar
という名前の tar ファイルを現在のディレクトリと /var/m4a/m4a-collect-timestamp.tar
に出力します。
必須ではありませんが、次のコマンドを使用して tar ファイルを展開することもできます。
tar xvf m4a-collect-machinename-timestamp.tar
tar ファイルの形式は次のとおりです。
collect.log # Log output of the script files # Directory containing files with their full path from root. For example: |- etc/fstab |- etc/hostname |- etc/network/interfaces |- ... commands # Output of commands run by the script: |- dpkg |- netstat |- ps |- ... found_paths # Text file with the list of installation directories machinename # Text file with machine name ostype # Text file with operating system type (Linux) timestamp # Text file with collection timestamp version # Text file with version number of the script
分析ツールの処理
分析ツールは、VM から tar ファイルの内容を調べ、一連のルールを適用し、適合性評価の結果と分析結果を含む次のレポートファイルを出力します。
analysis-report-timestamp.html
という名前の HTML ファイルを現在のディレクトリに出力します。タイムスタンプの形式はYYYY-MM-DD-hh-mm
です。JSON 形式の出力を含む
analysis-report-timestamp.json
という名前の JSON ファイル。JSON ファイルは、データ可視化ツールへの入力として使用できます。
適合性評価の計算
ツールによって検出されたルール違反は、最終的な適合性評価に影響します。各ルールには、重大度が事前定義されています。たとえば、ツールは SEL01: SELinux enforced
ルールに従い VM で SELinux が有効化されていることを検出します。このルールの重大度は「移行前に中程度の操作が必要」であるため、ツールの最終的な適合性評価は「移行前に中程度作業が必要」となります。
ツールで複数のルールの違反が検出された場合、最も重大度が高いルールのみが最終的な適合性評価に適用されます。たとえば、次の 2 つのルール違反が検出されたとします。
重大度が「適合していない」という
IFS01: incompatible filesystem
ルールで、互換性のないファイル システムが検出され、重大度が「移行の前に中程度の操作が必要」というルールで、SELinux の有効化が検出されました。
このツールは、2つのルールの重大度が大きい方に関連づけられた適合性評価のみを返します。したがって、「適合していない」が返されます。
HTML レポートのファイル形式
この HTML ファイルには、分析対象の VM を示す行と、VM にルールを適用した結果を示す一連の列が含まれています。各ルール列には次のいずれかが表示されます。
[Not Detected] は、ルールで移行に伴う問題が検出されなかったことを意味します。
[Detected] は、ルールで VM の移行に伴う問題が検出されたことを意味します。[Detected] をクリックして、ルール出力の詳細を表示します。
レポートの列
csv ファイルには次の列が含まれます。
列名 | 説明 | 重大度 | 注 |
---|---|---|---|
VM name |
VM の名前。 | ||
Data collection date |
分析のタイムスタンプ。形式は次のとおりです。
|
||
Identified OS |
オペレーティング システム。常に Linux です。 |
||
M4A fit assessment |
適合性評価。 この評価の解釈に関する詳細をご覧ください。 | ||
Workload type |
検出された場合は、IBM WebSphere を表示します。 |
||
Additional info |
VM に関する情報の要約(以下を含む)。
|
||
NET01: Unsupported network mount |
/etc/fstab または /proc/self/mounts にネットワーク マウントがある場合は、CSI ボリュームを移行計画に手動で追加する必要があります。 |
適した用途 | デプロイ YAML に NFS / CIFS ボリュームを接続する方法については、外部ボリュームのマウントをご覧ください。 |
IFS01: Incompatible filesystem |
互換性のないファイル システム。 | 適合していない。 | 互換性のないファイル システムでワークロードを移行することはできません。 |
SEL01: SELinux enforced |
SELinux はネストされたコンテナで機能しません。移行前に無効にすることをおすすめします。 | 中程度の操作が必要。 | 移行前に SELinux を無効にするか、apparmor プロファイルを手動で適用します。 |
FSE*: NFS share exported |
NFS エクスポート ファイルが検出されました。NFS サーバーのカーネル モジュールが読み込まれています。 次の 2 つのルールが適用され、それぞれ異なる重大度を返します。
|
説明をご覧ください。 | NFS サーバーを Cloud Filestore に移行します。 |
LIP*: Found listener on non-0.0.0.0 IP address |
特定のネットワーク インターフェースへのバインディングが検出されました。特定の NIC でリッスンしているポートがある場合(0.0.0.0、* でないか、ループバック)は、通常、マルチ NIC の設定があることを意味します。 3 つのルールが適用され、それぞれのルールで重大度が異なります。
|
説明をご覧ください。 | Migrate for Anthos は NIC を 1 つだけサポートしているため、どの NIC でもリッスンするように VM を更新してください。 |
DBC01: Running DB inside container |
移行に適していないデータベース アプリケーションを確認します。
|
軽微な作業が必要。 | Cloud SQL への移行を検討してください。 |
DR01: Docker running on VM |
コンテナ内での Docker のネストはサポートされていません。 | dockerd が実行されている場合: 適合性良好。 |
Migrate for Compute Engine を使用するか、GKE / Anthos でコンテナを直接実行することを検討してください。 |
SHD01: Usage of static hosts |
/etc/hosts で静的ホスト定義が検出されました。 |
適した用途 | 静的ホストの変更については、HostAlias を使用した Pod /etc/hosts へのエントリの追加をご覧ください。 |
BD01: Open block device |
lsof でオープン ブロック デバイスが検出されました。 |
適合していない。 | Migrate for Anthos と互換性がありません。 |
Migrate for Anthos 1.7 用ツールの変更点
Migrate for Anthos 1.7 リリースでは、新しい機能の追加や、ツールの既存の機能が変更されました。次の表では、これらの変更について説明します。
変更 | 説明 |
---|---|
適合性スコアを削除しました。 | 以前のリリースでは、適合性スコアは 0(適合していない)~ 10(適合性最高)でした。 このスコアは、上記の評価値に置き換えられました。 |
ルールのウェイトはすべて削除されました。 | ルールのウェイトはすべて削除され、評価結果に置き換えられました。 |
CSV ファイル レポート形式を HTML ファイルと JSON ファイルに置き換えました。 | ブラウザでレポートを表示するには HTML ファイルを使用し、データ可視化ツールへの入力として JSON ファイルを使用します。詳しくは、HTML レポートのファイル形式をご覧ください。 |
m4a-fit-collect.sh によって作成された tar ファイルの場所 |
スクリプトは前のリリースと同様に tar ファイルを現在のディレクトリに書き込み、加えて /var/m4a/m4a-collect-timestamp.tar にも書き込むようになりました。 |
m4a-fit-collect.sh によって作成された tar ファイルにバージョン ファイルを追加しました |
ファイルには、スクリプトのバージョンが含まれています。 |
検出されたワークロード タイプ用の新しい列を追加しました。 | 検出された場合は、IBM WebSphere を表示します。 |
レポートの各 VM に新しい概要フィールドを追加しました。 | これらのフィールドには、リスニング ポート、マウント ポイント、NFS マウント ポイントなどが含まれます。 |