CentOS7におけるKVM仮想化の基本管理の詳しい説明

CentOS7におけるKVM仮想化の基本管理の詳しい説明

1. kvm仮想化をインストールする

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
#システムのデフォルトターゲットをgraphical.targetに変更します。このコマンドを実行しないと、再起動時にエラーが発生する可能性があります。

2. インストールが完了したら、システムを再起動し、次のコマンドを実行してシステムをチェックする必要があります。

[root@localhost ~]# cat /proc/cpuinfo | grep vmx        
#Intel の CPU が仮想化をサポートしているかどうかを確認します。AMD の CPU の場合は、「cat /proc/cpuinfo | grep smv」を実行する必要があります。
[root@localhost ~]# lsmod | grep kvm #KVMモジュールがインストールされているかどうかを確認します kvm_intel 170181 0 
kvm 554609 1 kvm_intel
irqバイパス 13503 1 kvm
[root@localhost ~]# systemctl start libvirtd #libvirtd サービスを起動します [root@localhost ~]# systemctl enable libvirtd #サービスが自動的に起動するように設定します

3. コマンドラインモードで仮想マシンを作成する

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
インストールを開始します...
ファイルを検索しています .treeinfo...... | 354 B 00:00   
ファイルを検索中 vmlinuz...... | 5.9 MB 00:00   
ファイル initrd.img を検索しています...... | 50 MB 00:00   
ドメインのインストールはまだ進行中です。コンソールに再接続してインストール プロセスを完了できます。
#上記のプロンプトに従ってグラフィカルコンソールを開きます [root@kvm ~]# virt-manager #コンソールを開きます

コンソールを開くコマンドを入力すると、次のウィンドウがポップアップ表示されます。

「開く」をクリックすると、システムを自分でインストールしたときと同じ次のインターフェースが表示されます(自分でインストールすることもできます)。

この時点で、仮想マシンのコマンドライン作成は完了です。次に、構成ファイルを手動で変更して web01 をクローンし、新しい仮想マシン web02 を生成します (私のブログの前のブログ リンクには、クローン作成専用のコマンド ツールの使用方法が記載されています。これは、仮想マシンの構成ファイルを理解するためだけのものです)

2. 構成ファイルを手動で変更し、web01を複製して、新しい仮想マシンweb02を生成します。

[root@kvm iso]# virsh list --all #クローンする仮想マシンがシャットダウン状態であることを確認します Id Name Status ----------------------------------------------------
 - test01 は閉じています - test02 は閉じています - web01 は閉じています #これはこのマシンのクローンを作成します [root@kvm ~]# cd /kvm/disk/ #仮想マシンの仮想ディスク ストレージ ディレクトリに切り替えます [root@kvm disk]# cp web01.raw web02.raw #クローンを作成する仮想マシン ディスクをコピーし、名前を変更します [root@kvm disk]# cd /etc/libvirt/qemu/ #KVM 仮想マシン構成ファイルのディレクトリに切り替えます [root@kvm qemu]# ls #現在のディレクトリのファイルを表示します networks test01.xml test02.xml web01.xml
[root@kvm qemu]# virsh dumpxml web01 > ./web02.xml 
#dumpxmlツールを使用して、web01の設定ファイルを現在のディレクトリにweb02.xmlとしてバックアップします。
[root@kvm qemu]# ls #バックアップが成功したことを確認する networks test01.xml test02.xml web01.xml web02.xml
[root@kvm qemu]# vim web02.xml #バックアップしたファイルを編集します <domain type='kvm'>
 <name>web02</name> #ここで名前をweb02に変更します
 <uuid>2d6f2a7c-9937-4afb-b8d6-8ef01ca61434</uuid> #競合を防ぐために UUID 設定行を削除します <memory unit='KiB'>1048576</memory>
      .............#一部のコンテンツを省略 <devices> #行ラベルを検索 <emulator>/usr/libexec/qemu-kvm</emulator>
  <ディスクタイプ='ファイル' デバイス='ディスク'>
   <ドライバー名='qemu' タイプ='raw'/>
   <source file='/kvm/disk/web02.raw'/> #ここでcpコマンドでコピーしたweb02.rawファイルへのパスを変更します #変更が完了したら保存して終了します [root@kvm qemu]# virsh define web02.xml #この設定ファイルを定義します #(仮想マシンをロードするという意味になります。このとき、現在の作業パスに注意する必要があります)
ドメイン web02 を定義する (web02.xml から)

[root@kvm qemu]# virsh list --all #クローン作成が成功したかどうかを確認します Id Name Status ----------------------------------------------------
 - test01 が閉じられました - test02 が閉じられました - web01 が閉じられました - web02 が閉じられました #OK!確認後、web02 を自分で実行して正常に動作するかテストすることができます。
[root@kvm qemu]# virsh start web02 #web02を起動します
ドメイン web02 が起動しました [root@kvm qemu]# virsh list --all #OK、実行中!
 ID 名前 ステータス----------------------------------------------------
 3 web02 実行中
     .............#一部のコンテンツを省略

3. web01を自動起動に追加した場合、web02との類似点と相違点は何ですか?

[root@kvm qemu]# virsh dominfo web01 #このコマンドは指定された仮想マシンIDの情報を表示できます: -
名前: web01
識別子: 2d6f2a7c-9937-4afb-b8d6-8ef01ca61434
OSタイプ: hvm
ステータス: シャットダウン CPU: 1
最大メモリ: 1048576 KiB
使用メモリ: 1048576 KiB
永続: はい 自動起動: 無効 #デフォルトでは無効 状態管理の保存: いいえ セキュリティ モード: なし
安全性 DOI: 0

[root@kvm qemu]# virsh autostart web01 #起動時に web01 が自動的に起動するように設定します。ドメイン web01 が自動的に起動するようにマークします。[root@kvm qemu]# virsh dominfo web01 #起動時に自動的に起動するように設定されているかどうかを確認します。Id: -
名前: web01
識別子: 2d6f2a7c-9937-4afb-b8d6-8ef01ca61434
OSタイプ: hvm
ステータス: シャットダウン CPU: 1
最大メモリ: 1048576 KiB
使用メモリ: 1048576 KiB
永続: はい 自動起動: 有効 #OK!
管理保存: いいえ セキュリティモード: なし
安全性 DOI: 0
[root@kvm qemu]# virsh dominfo web02 #起動時にweb02が自動的に起動するかどうかを確認します Id: 3
名前: web02
言語: f554ad15-1b67-4f01-b203-a9d0c3abe192
OSタイプ: hvm
ステータス: 実行中
CPU: 1
CPU時間: 21.4秒
最大メモリ: 1048576 KiB
使用メモリ: 1048576 KiB
永続: はい 自動起動: 無効 # はい 状態管理の保存を無効にする: いいえ セキュリティモード: なし
安全性 DOI: 0
#この時点でホストマシンを再起動し、仮想マシンのステータスを確認できます (起動時に libvirtd サービスのステータスが自動的に開始されることを確認する必要があります。そうでない場合、問題が発生します)

[root@kvm qemu]# init 6 #ホストを再起動します [root@kvm ~]# virsh list #、再起動が完了したら、実行中の仮想マシンのID名ステータスを確認します ----------------------------------------------------
 1 web01 実行中
#この時点ではweb01のみが起動しています。これは起動時に自動的に起動するように設定されているためです。libvirtdサービスは起動時に自動的に起動することを前提として、
#ホストが起動すると開始されます

4. 仮想マシンにリモート接続する 2 つの方法

(1)VNCソフトウェアの使用

VNC のインストールは比較的簡単なので、ここでは詳しく説明しません。

[root@kvm ~]# virsh vncdisplay web02 <!--web02 のリスニング ポートを表示します-->
:0
  <!--
結果は「:0」であり、次のように説明されます。
「:0」はポート5900をリッスンすることを意味します。
「:1」はポート5901でリッスンすることを意味します。
等々...
            -->

接続するには vnc を開きます (ファイアウォール関連の設定に注意してください)。

コンソールを使用した後続の接続を容易にするために、仮想マシン (web02) のカーネル パラメータを次のように調整する必要があります。

[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0" #仮想マシンでこのコマンドを実行します [root@localhost ~]# init 6 #変更を有効にするためにこの仮想マシンを再起動します

(2)コンソールを使ってweb02にログインする

KVMホスト上で以下のコマンドを実行すると正常にログインできます(vncでログインする際にweb02のカーネルパラメータが変更されていることが前提です)

[root@kvm ~]# virsh console web02 #このコマンドを実行してドメインweb02に接続します
エスケープ文字は^]です
#Enterキーを押すCentOS Linux 7 (Core)
x86_64 上のカーネル 3.10.0-862.el7.x86_64

web02 ログイン: root #ログインするには、web02 のユーザー名とパスワードを入力します。
パスワード:
最終ログイン: 10月9日水曜日 21:20:48 tty1
[root@web02 ~]#

5. デフォルトのNATネットワークタイプを使用して、web02が外部ネットワークにpingを実行できるようにします。

ここでは、Baidu で ping テストを実行し、KVM ホストが Baidu に ping できることを確認します。

(1)関連設定を確認する

[root@kvm ~]# virsh net-list --all <!--現在のネットワーク設定を確認します-->
 名前のステータスが自動的に維持され始めます--------------------------------------------------------
 デフォルトのアクティビティは [root@kvm ~]# ifconfig <!--現在のネットワークインターフェースを確認します-->
     .............<!--一部省略-->
virbr0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500
    inet 192.168.122.1 ネットマスク 255.255.255.0 ブロードキャスト 192.168.122.255
        <!--
virbr0 は、ホスト仮想マシン サポート モジュールがインストールされたときに生成される仮想ネットワーク インターフェイスです。
また、スイッチとブリッジとして機能し、各仮想マシンにコンテンツを配信する役割も担います。
virbr0 は、ネットワーク 192.168.122.* に送信されるすべてのものを受信するブリッジです。
これは次のコマンドで確認できます: -->
[root@kvm ~]# brctl 表示
ブリッジ名 ブリッジID STP対応インターフェース
virbr0 8000.525400a8bf19 はい virbr0-nic
                                   vnet0
[root@kvm ~]# ルート
カーネル IP ルーティング テーブル
宛先ゲートウェイ Genmask フラグ メトリック参照 Iface の使用
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

(2)次にNATネットワークの設定を開始する

[root@kvm ~]# virsh net-define /usr/share/libvirt/networks/default.xml 
#上記でファイルが指定されていない場合は、このコマンドを使用して仮想ネットワークを定義するか、ファイルを変更して独自の仮想ネットワークを作成できます [root@kvm ~]# virsh net-autostart default #ネットワークのデフォルトは自動起動としてマークされています [root@kvm ~]# virsh net-start default #ネットワークを起動します。すでに起動されている場合は、ここでエラーが報告されます [root@kvm ~]# vim /etc/sysctl.conf #この構成ファイルを変更します............ #一部のコンテンツを省略 net.ipv4.ip_forward=1 #IP 転送を許可するには、ファイルの最後にこの行を追加します [root@kvm ~]# vim /etc/libvirt/qemu/web02.xml 
        ............#一部のコンテンツを省略 <interface type='network'>
   <mac アドレス = '52:54:00:24:9d:24' />
   <ソースネットワーク='デフォルト'/>
   <モデルタイプ='virtio'/>
   <アドレス タイプ = 'pci' ドメイン = '0x0000' バス = '0x00' スロット = '0x03' 機能 = '0x0'/>
  </インターフェース>
#キーワード「インターフェース」を見つけて、上記のコンテンツが存在することを確認します............#一部のコンテンツを省略します

(3)仮想マシンweb02に接続し、ネットワークカードの構成を変更します。

[root@web02~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 #ネットワークカードの設定ファイルを編集する

ネットワーク カードを変更したら、保存して終了します。

[root@web02~]# systemctl restart network #web02仮想マシンのネットワークサービスを再起動します

ping テストを実行するには:

静的 IP を使用する場合は、構成ファイルを次のように変更できます (変更が完了するとネットワーク カードが自動的に再起動し、DNS 構成を追加できます)。

6. KVM仮想マシン管理コマンドの概要

[root@kvm ~]# virsh start virtual machine name#仮想マシンを起動します[root@kvm ~]# virsh list #実行中の仮想マシンのリストのみを表示します[root@kvm ~]# virsh list --all #すべての仮想マシンのリストを表示します[root@kvm ~]# virsh shut down virtual machine name#仮想マシンを通常どおりシャットダウンします[root@kvm ~]# virsh destroy virtual machine name#仮想マシンを強制的にシャットダウンします (電源プラグを抜くのと同様)
[root@kvm ~]# virsh dumpxml 仮想マシン名> /root/test01-dum.xml #仮想マシンのバックアップ [root@kvm ~]# virsh undefine 仮想マシン名 #仮想マシンの削除 (注: 定義解除後、ディスク ファイルを手動で削除する必要があります)
[root@kvm ~]# virsh define backup .xml virtual machine file#仮想マシンを復元[root@kvm ~]# virsh edit virtual machine name#仮想マシン構成ファイルを編集[root@kvm ~]# virsh domrename 変更する元の名前# 例: ([root@kvm ~]# virsh domrename test01 test03) 仮想マシン名の変更[root@kvm qemu]# virsh dominfo test02 #仮想マシンの詳細情報の表示[root@kvm ~]# virsh autostart test02 #起動時に仮想マシンが自動的に起動するように設定[root@kvm ~]# virsh autostart --disable test02 #起動時に自動的に起動しないようにキャンセル[root@kvm ~]# virsh vncdisplay test02 #対応する VNC 接続ポート番号の表示。デフォルトの最初のポート番号は 5900 (":0" で示されます) です。
[root@kvm ~]# virsh suspend test02 #仮想マシンをサスペンドする[root@kvm ~]# virsh resume test02 #仮想マシンのサスペンドを取り消す[root@kvm ~]# virsh console test02 #仮想マシンのコンソールにログインする[root@kvm ~]# qemu-img info /kvm/disk/test01.raw #仮想マシンのディスク情報を表示する[root@kvm disk]# qemu-img create test.raw 2G #仮想マシンが使用するディスクを作成する[root@kvm disk]# qemu-img create -f qcow2 21.qcow2 2G #qcow2 形式で仮想マシン ディスクを作成する[root@kvm disk]# qemu-img convert -f raw -O qcow2 test.raw test.qcow2 #test.raw ディスクの形式を raw から qcow2 に変換する
[root@kvm qemu]# virsh snapshot-create test02 #仮想マシンのスナップショットを作成[root@kvm disk]# virsh snapshot-list test02 #仮想マシンのスナップショットを表示[root@kvm disk]# virsh snapshot-revert test02 1570692304 #スナップショットを復元[root@kvm disk]# virt-clone --auto-clone -o test01 -n クローンする名前を指定します (オプション) #仮想マシンを自動的にクローンします[root@kvm disk]# virt-clone -o test01 -n test04 -f /kvm/disk/test04.qcow2 #手動クローン#上記はすべて完全なクローンです。
[root@kvm ディスク]# qemu-img create -f qcow2 -b test01.qcow2 lktest01.qcow2
# -f: クローンするディスク形式を指定します。
# -b: 変換するソース ファイルとターゲット ファイルを指定します。# 上記のコマンドは、仮想マシンのディスク ファイルのクローンを作成するために使用されます。
  • RAW: 生の形式。より大きなスペースを占有し、パフォーマンスが向上しますが、スナップショット機能はサポートされていません。
  • qcow: コピーオンライト(コピーオンライトメカニズム)。
  • qcow2: RAW よりも占有スペースが少なく、パフォーマンスは若干劣りますが、スナップショット機能をサポートしています。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • CentOS 7 で KVM 仮想化プラットフォームを構築する方法と手順
  • 仮想化技術QEMU-KVMの導入の詳細説明
  • KVM仮想化学習ノート(I)KVM仮想化環境のインストール手順
  • KVM仮想化(I) - KVM仮想マシンの紹介と簡単な使い方
  • virt-manager の使用と KVM 仮想化プラットフォームのネットワーク モデルの紹介
  • KVM 仮想化テクノロジー: Qemu-kvm を使用して仮想マシンを作成および管理する方法

<<:  Mysql の 2 つのテーブル間の結合クエリの 4 つの状況の概要

>>:  React における同期および非同期 setState の問題のコード分析

推薦する

MySQL binlog_ignore_dbパラメータの具体的な使用法

序文:前の記事を読んだ後、binlog はデータベースで実行されたすべての DDL および DML ...

海外のウェブページのカラーマッチング事例20選共有

この記事では、優れた Web ページのカラー マッチングの事例を 20 件集めて紹介します。これらの...

MySQL の基本クイックスタート知識のまとめ (マインドマップ付き)

目次序文1. データベースの基礎知識1. データベースとは何ですか? 2. データベースの分類3. ...

mysql は sql ファイルを実行し、エラーを報告します エラー: 不明なストレージ エンジン 'InnoDB' ソリューション

問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...

HTML チュートリアル: 順序なしリスト

<br />原文: http://andymao.com/andy/post/102.h...

Vue における ref と $refs の紹介と使用例

序文JavaScript では、document.querySelector("#demo...

ウェブデザインで注意すべき検索最適化の知識

1. 新サイトホームページのリンクレイアウト1. リンク配置の位置:リンク配置の位置によって、リンク...

Zabbix動的実行監視収集スクリプトの実装原理

Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...

CSS ワールド - コード実践: 画像の Alt 情報の表示

ただし、デフォルトの src を持つ <img> 要素を使用してスクロール読み込み効果を...

DockerのTLS(SSL)証明書の有効期限の問題を解決する

問題現象: [root@localhost ~]# docker イメージをプル xxx.com.c...

デザイン参考 WordPressウェブサイト構築成功事例

これら 16 のサイトはそれぞれ注意深く読む価値があり、どのサイトでも推奨されている Web サイト...

HTML タグのリストと使用方法

HTMLタグのリストマークタイプ名前または意味効果述べるファイルのタグ付け<HTML> ...

ウェブサイトのデザインを改善するための役立つ提案を提供します

<br />ウェブサイトを科学的にデザインする: アイトラッキング研究から学ぶ 23 の...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

Vue.jsは画像切り替え機能を実装する

この記事では、画像切り替え機能を実装するためのVue.jsの具体的なコードを参考までに共有します。具...