オペレーティングシステムカーネルがvirtioドライバーをサポートしているカスタムイメージのみをAlibaba Cloud Elastic Compute Service (ECS) にインポートし、起動可能なECSインスタンスの作成に使用できます。 ソースサーバーのデータに基づいてカスタムイメージを作成するとき、またはカスタムイメージをインポートするときは、virtioドライバーがイメージにインストールされ、一時ファイルシステムに追加されていることを確認してください。 virtioドライバがインストールされていない場合は、ドライバをインストールします。
次の手順を実行して、ソースサーバーのオペレーティングシステムカーネルがvirtioドライバーをサポートしているかどうかを確認し、チェック結果に基づいてアクションを実行できます。
チェック結果に基づいて次の操作を実行します。
ソースサーバーのオペレーティングシステムカーネルがvirtioドライバーをサポートしているかどうかを確認する
次のコマンドを実行して、ソースサーバーのオペレーティングシステムカーネルがvirtioドライバーをサポートしているかどうかを確認し、カスタムイメージ用のvirtioドライバーをインストールするか、一時ファイルシステムにドライバーを追加するかを判断します。
grep -i virtio /boot/config-$(uname -r)
コマンド出力を表示します。
コマンド出力のCONFIG_VIRTIO_BLKおよびCONFIG_VIRTIO_NETパラメーターの値を確認します。
パラメーター値が両方ともyの場合、virtioドライバーは正しくインストールされています。 このトピックの [次の操作] セクションで説明されている操作を実行します。
パラメーターが存在しない場合、virtioドライバーはインストールされません。 ドライバをインストールする必要があります。 詳細については、このトピックの「virtioドライバーのインストール」をご参照ください。
パラメーター値が両方ともmの場合、virtioドライバーがサポートされます。 次のコマンドを実行して、ドライバが一時ファイルシステムに追加されているかどうかを確認します。
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
virtioドライバーが一時ファイルシステムに追加された場合、前の図に示すようなコマンド出力が返されます。 この場合は、このトピックの「次の操作」セクションで説明している操作を実行します。
それ以外の場合は、virtioドライバーを一時ファイルシステムに追加します。 詳細については、このトピックの「一時ファイルシステムへのvirtioドライバーの追加」をご参照ください。
virtioドライバーを一時ファイルシステムに追加する
ソースサーバーのオペレーティングシステムカーネルがvirtioドライバーをサポートしているが、virtioドライバーが一時ファイルシステムに追加されていない場合は、一時ファイルシステムにドライバーを追加します。 移行元サーバーのオペレーティングシステムに基づいて、次のコマンドを1つ実行します。
CentOS 6、Anolis OS 7、AlmaLinux 8、またはFedora 33
オペレーティングシステムのバージョンがCentOS 6、Anolis OS 7、AlmaLinux 8、Fedora 33以降で、カーネルのバージョンが2.6.24以降の場合は、次のコマンドを実行して一時ファイルシステムを修復します。 uname -r
コマンドを実行して、カーネルのバージョンを確認できます。
次のコマンドを実行して、dracut.confファイルを開きます。
vim /etc/dracut.conf
Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。
add_drivers +="virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
Escキーを押して :wqと入力し、enterキーを押して変更を保存して終了します。
次のコマンドを実行してinitrdを再生成します。
dracut -f
説明Red HatおよびCentOS 5では、virtioドライバーをインストールする前に、カーネルバージョンを5.11にアップグレードすることをお勧めします。
DebianまたはUbuntu
次のコマンドを実行して、modulesファイルを開きます。
vim /etc/initramfs-tools/modules
Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。
virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio
Escキーを押して :wqと入力し、enterキーを押して変更を保存して終了します。
次のコマンドを実行してinitrdを再生成します。
update-initramfs -u
SUSEまたはopenSUSE
SUSE 12 SP1またはopenSUSE 13より前のバージョン
次のコマンドを実行して、カーネルファイルを開きます。
vim /etc/sysconfig/kernel
Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。
INITRD_MODULES="virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
Escキーを押して :wqと入力し、enterキーを押して変更を保存して終了します。
次のコマンドを実行してinitrdを再生成します。
update-initramfs -u
SUSE 12 SP1、OpenSUSE 13以降
次のコマンドを実行して、dracut.confファイルを開きます。
vim /etc/dracut.conf
Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。
add_drivers +="virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
Escキーを押して :wqと入力し、enterキーを押して変更を保存して終了します。
次のコマンドを実行してinitrdを再生成します。
dracut -f
一時ファイルシステムが修復された後、必要に応じてAlibaba Cloudにイメージファイルをインポートできます。
virtioドライバーのインストール
手順1: カーネルインストールパッケージのダウンロード
この例では、linux-4.4.24.tar.gzのカーネルインストールパッケージが使用されています。 オペレーティングシステムのカーネルバージョンに基づいてコマンドを変更する必要があります。
次のコマンドを実行して、カーネルのコンパイルに必要なコンポーネントをインストールします。
yum install -y ncurses-devel gcc make wget
次のコマンドを実行して、オペレーティングシステムのカーネルバージョンを照会します。 この例では、カーネルのバージョンは4.4.24-2.al7.x86_64です。
uname -r
Index of /pub/linux/kernel/ ページに移動して、カーネルバージョンリポジトリのダウンロードURLを照会します。
この例では、次の図に示すように、linux-4.4.24.tar.gzのダウンロードURLが
https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz
されています。次のコマンドを実行して、ディレクトリを切り替えます。
cd /usr/src/
次のコマンドを実行して、インストールパッケージをダウンロードします。
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz
次のコマンドを実行して、インストールパッケージを解凍します。
tar -xzf linux-4.4.24.tar.gz
以下を実行してシンボリックリンクを作成します。
ln -s linux-4.4.24 linux
次のコマンドを実行して、ディレクトリを切り替えます。
cd /usr/src/linux
ステップ2: カーネルのコンパイル
次のコマンドを順番に実行して、カーネルをコンパイルします。
make mrsupric symvers_path=$(find /usr/src/ -name "Module.symvers") test -f $symvers_path && cp $symvers_path. cp /boot/config-$(uname -r) 。/.config make menuconfig
説明make menuconfigコマンドの実行時にエラーメッセージが表示された場合は、そのメッセージに基づいて問題をトラブルシューティングできます。 たとえば、ncurses-devel、bison、およびflexコンポーネントがインストールされていない場合は、次のコマンドを順番に実行してインストールできます。
yum ncurses-develをインストールする yumインストールバイソン yumインストールフレックス
次のページが表示されたら、virtio関連の設定を行います。
説明アスタリスク (*) を含む設定を選択すると、virtioドライバーがカーネルにコンパイルされます。 mを含む構成を選択した場合、virtioドライバーはモジュールにコンパイルされ、ドライバーの起動時にモジュールがカーネルに挿入されます。
仮想化オプションを設定します。
スペースバーキーを押して仮想化を選択し、Enterキーを押してオプションのリストを表示します。
カーネルベースの仮想マシン (KVM) サポートオプションが選択されていることを確認します。
プロセッサの種類と機能のオプションを設定します。
メインメニューに戻り、上下の矢印キーを押してプロセッサの種類と機能を選択し、Enterキーを押してオプションのリストを表示します。
スペースバーキーを押してParahivalized guest supportを選択し、Enterキーを押してオプションのリストを表示します。
KVM準仮想化クロックおよびKVMゲストサポートオプションが選択されていることを確認します。
デバイスドライバーオプションを設定します。
メインメニューに戻り、上下の矢印キーを押してデバイスドライバを選択し、Enterキーを押してオプションのリストを表示します。
スペースバーキーを押してデバイスをブロックを選択し、Enterキーを押してオプションのリストを表示します。
Virtio block driverオプションが選択されていることを確認します。
[デバイスドライバー] オプションのリストに戻り、上下の矢印キーを押して [ネットワークデバイスのサポート] を選択し、[入力] キーを押してオプションのリストを表示します。
Virtio network driverオプションが選択されていることを確認します。
[Esc] キーを押してカーネル構成ウィンドウを終了し、を保存するプロンプトで [はい] を選択します。ファイルを設定します。
virtio関連の設定が完了しているかどうかを確認します。
詳細については、このトピックの「ソースサーバーのオペレーティングシステムカーネルがvirtioドライバーをサポートしているかどうかの確認」をご参照ください。
(オプション) virtio関連の設定が完了していない場合は、次のコマンドを順番に実行してを編集します。configファイル:
make oldconfig 準備する スクリプトを作成する 作る インストールする
次のコマンドを実行して、virtioドライバーがインストールされているかどうかを確認します。
find /lib/modules/"$(uname -r)"/ -name "virtio *" | grep -E "virtio *" grep -E "virtio *" < /lib/modules/"$(uname -r)"/modules.builtin
virtioドライバーがインストールされている場合、次の図に示すように、コマンド出力の1つにvirtio関連のファイル (virtio_blk、virtio_pci、virtio_consoleなど) のリストが含まれます。
次のステップ
virtioドライバーのインストール後、次の操作を実行できます。