2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

今回の記事は、VMwareからAWS EC2に移行する場合の Linux(本記事ではRocky 8で実機検証)の移行前後で比較するべきポイントを記載した記事です。

比較すべき主要ポイント

  • ディスク構成(lsblk, fdisk, fstab)
  • ハードウェアリソース(CPU, メモリ, NIC)
  • OS/カーネル/ブートモード
  • サービス・デーモンの有効化状況
  • パッケージ一覧
  • ログ・セキュリティ設定

以下はAWS上のマーケットプレイスのAMIから作成したRocky 8について実際に確認した例です。

1.ディスクについて

fdisk -l

fdiskとは、コンピューターのハードディスクなどのストレージを「パーティション」と呼ばれる論理的な区画に分割・管理するためのコマンドです。

20251124-05.png

ここで Device が /dev/nvme0n1p1 のようにNVMe(※Non-Volatile Memory Expressの略で、SSDをはじめ、不揮発性メモリを使用したフラッシュストレージのために最適化された通信プロトコルを採用したストレージデバイスになっていることに注意です。
レガシーのデバイスでは、SCSIディスクで /dev/sda1 のようになっている場合、オンプレミス環境のVMWareから AWS EC2にそのままExport/Importで移行できない場合があります。

lsblk

lsblkとは、Linuxでブロックデバイスの情報を表示するために使用されます。
実行すると以下のような結果が出力されます。

NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0   8G  0 disk
├─nvme0n1p1 259:1    0   1M  0 part
└─nvme0n1p2 259:2    0   8G  0 part /
df -h

現在使用中のファイルシステムの全体の大きさ、使用可能な大きさ、使用率、ファイルシステムとマウントポイント情報などを調べます。以下出力例。

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        340M     0  340M   0% /dev
tmpfs           372M     0  372M   0% /dev/shm
tmpfs           372M  5.1M  367M   2% /run
tmpfs           372M     0  372M   0% /sys/fs/cgroup
/dev/nvme0n1p2  8.0G  2.7G  5.4G  34% /
tmpfs            75M     0   75M   0% /run/user/1000

2.ハードウェリソースについて

実行コマンド

 lscpu

実行結果(例)

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  2
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
BIOS Vendor ID:      Intel(R) Corporation
CPU family:          6
Model:               85
Model name:          Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
BIOS Model name:     Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
Stepping:            7
CPU MHz:             2500.006
BogoMIPS:            5000.01
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            1024K
L3 cache:            36608K
NUMA node0 CPU(s):   0,1
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke

実行コマンド

free -h

実行結果(例)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4071206/bdeae24e-824e-4b14-b674-36f342bdb779.png)
              total        used        free      shared  buff/cache   available
Mem:          742Mi       112Mi       497Mi       5.0Mi       132Mi       517Mi
Swap:            0B          0B          0B

→ vCPU 数やメモリ容量が変わっていないか確認。

実行コマンド

ip addr show

実行結果(例)

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 06:56:74:47:89:55 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.31.43.246/20 brd 172.31.47.255 scope global dynamic noprefixroute eth0
       valid_lft 2279sec preferred_lft 2279sec
    inet6 fe80::456:74ff:fe47:8955/64 scope link
       valid_lft forever preferred_lft forever

→ VMware の仮想 NIC と AWS の ENA/Nitro NIC の違いを確認。

3. OSカーネル情報

実行コマンド

cat /etc/os-release

実行結果(例)

NAME="Rocky Linux"
VERSION="8.10 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.10 (Green Obsidian)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2029-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8"
ROCKY_SUPPORT_PRODUCT_VERSION="8.10"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.10"

→ Rocky Linux のバージョンやカーネルが一致しているか。

実行コマンド

 uname -r

実行結果(例)

4.18.0-553.76.1.el8_10.x86_64

実行コマンド

[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

実行結果(例)

BIOS

※Rocky 8ではBIOSでしたが、Rocky 9からはUEFIとなっているようです
→ UEFI/BIOS の違い、Secure Boot 有効/無効を確認。

4. サービス・デーモンの有効化状況

実行コマンド

systemd 

※出力例は割愛。
→ 移行前後で有効化されているサービスが一致しているか。

5. パッケージ一覧

実行コマンド

systemctl list-unit-files --state=enabled

※出力例は割愛。
→ 移行前後で差分を取ると、足りないパッケージが分かる。

6.ログ・セキュリティ設定

SELinux 状態の確認コマンド

getenforce

→ 移行後にポリシーが変わっていないか確認。

AWS VMimport(ec2 importimage)の対応可否

以下の公式ドキュメントの記載にありますが、Rocky8の場合は、VMimport方式での移行は未サポートとなります(Rocky 9からの公式サポート)。
https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/prerequisites.html
実際に試してみましたが、Client error grub.cfgが見つからないのエラーとなりec2 importimageは失敗します。

代替移行方法

VMware の仮想サーバーを「テンプレートとしてエクスポート」したovf形式ファイルおよびVMDKファイルが正しく出力されている前提で以下の移行方法があります。

vmdk は「仮想ディスクファイル」 なので、通常の Linux 環境から直接マウントすることができます。つまり、vmdk をマウントして中のファイルを中身を取り出して Marketplace AMI に反映するという方法です。
vmdk を S3 にアップロードし、S3経由でEC2 インスタンスにダウンロードしてマウントし、ブートローダーgrub.cfgや設定ファイルを書き換えて再起動するという方法論になります。

最後に

VMWare環境の仮想サーバーをAWSへの移行する場合は、AWS Application Migration Service(MGN) 方式での移行も検討してみたほうがいいでしょう。

2
0
0

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?