CentOS7 上で KVM 仮想化プラットフォームを構築する (3 つの方法)

CentOS7 上で KVM 仮想化プラットフォームを構築する (3 つの方法)

KVM はカーネルベースの仮想マシンの略で、Linux をハイパーバイザーに変換する Linux カーネル モジュールです。これは、2008 年に Red Hat に買収された Quramnet によって開発されました。

KVM の全体的な構造:

GUI から Linux カーネルまで、次の 5 つのコンポーネントが含まれています。

1) 仮想マネージャ

VM を管理するための GUI/CUI ユーザー インターフェイス。libvirt API を使用して VM のさまざまな機能を呼び出します。

2) libvirt

ツールとインターフェースは、より一般的なサーバー仮想化ソフトウェアとして、Xen、VMware ESXi/GSX、そしてもちろん QEMU/KVM をサポートしています。

3) 量子コンピュータ

KVM カーネル モジュールと対話し、I/O などのさまざまなクライアント システム要求を処理するエミュレーター。1 つの QEMU プロセスは 1 つのクライアント システムに対応します。

4) KVMカーネルモジュール

狭義には、KVM は、クライアント システム上で VM 終了を処理し、VM エントリ命令を実行する Linux カーネル モジュールです。

5) Linuxカーネル

QEMU は通常のユーザー プロセスとして実行されるため、対応するクライアント システムのスケジュールは Linux カーネル自体によって処理されます。

すべてのコンポーネントはオープンソースソフトウェア (OSS) です。

KVM のインストール:

環境要件:

1. 物理サーバーの場合は、BIOS で仮想化機能 (Virtualization Technology) をオンにする必要があります。通常、サーバーではこの機能はデフォルトでオンになっています。

楊書凡17.png

2. 実験にVMware Workstationを使用する場合は、作成した仮想マシンのCPUで仮想化機能をチェックして、仮想マシンがKVM仮想化をサポートするようにする必要があります。

楊書凡18.png

インストール方法:

最も簡単なインストール方法は、システムのインストール時に仮想化機能をインストールすることです。ここでは、CentOS7.3 を例に挙げます。インストール パッケージを選択するときは、以下のように「GUI 付きサーバー」を選択し、「仮想化クライアント」、「仮想化ハイパーバイザー」、「仮想化ツール」にチェックを入れるだけです。

楊書凡19.png

システムが最小限インストールされている場合は、次の必須ソフトウェアをインストールする必要があります。

# yum groupinstall "GNOME Desktop" //GNOMEデスクトップ環境をインストールします

CPUがサポートしているかどうかを確認する

# grep -E 'svm|vmx' /proc/cpuinfo

- vmxはIntelプロセッサ用です

- svmはAMDプロセッサ用です

仮想化ソフトウェアをインストールする

# yum install epel-rpm-macros.noarch //epel ソースをインストールします# yum install qemu qemu-img qemu-kvm libvirt libvirt-python libguestfs-tools virt-install

# yum install virt-manager virt-viewer //グラフィカルツールをインストール# systemctl enable libvirtd        

# systemctl libvirtd を起動します

KVMモジュールがインストールされているかどうかを確認する

[root@localhost ~]# lsmod |grep kvm

インテル 174250 0 

kvm 570658 1 kvm_intel

irqバイパス 13503 1 kvm

1. グラフィカルインターフェースを使用して仮想マシンを作成する

1. 仮想マシンを作成する前の準備:

(1)オペレーティングシステムのインストールメディア:ISOファイル、システムイメージファイルを/kvm/isoディレクトリにコピーする

[root@localhost ~]# mkdir /kvm/iso -p     

[root@localhost ~]# /dev/sr0 をアンマウントする

[root@localhost ~]# cp /dev/sr0 /kvm/iso/Centos7.iso

(2)ディスクスペースの準備:

新しいディスクを追加

LVMを作成する

ファイルシステムとマウントポイントを作成し、起動時に自動的にマウントするように設定します。

pvcreate /dev/sdb
vgcreate kvm_vg /dev/sdb
lvcreate -n kvm_lv -L 100G kvm_vg
mkdir /kvm/vfs
/dev/kvm_vg/kvm-lv /kvm/vfs をマウントします

(3)virt-managerグラフィカルインターフェースを使用して作成する

Virt-manager は、libvirt をベースにしたグラフィカルな仮想マシン管理ソフトウェアです。コマンドラインで root として virt-manager コマンドを入力すると、virt-manager 管理インターフェイスが表示されます。

楊書凡20.png

iso という名前のイメージ ストレージ プールを作成し、ディレクトリを /kvm/iso に設定して、将来 KVM 仮想マシンで使用される iso CD イメージ ファイルを保存します。

楊書凡21.png

vfs という名前のストレージ プール (ディレクトリ /kvm/vfs) を作成し、ストレージ ボリューム (実際には KVM 仮想マシンのハード ディスク ファイル) を作成します。

楊書凡22.png

仮想システムマネージャーで、「新しい仮想マシン」を選択し、「ローカルインストールメディア」を選択します。

楊書凡24.png

ISOイメージファイルを選択

楊書凡25.png

メモリサイズとCPUの数を選択する

楊書凡26.png

仮想マシンのディスクファイルを選択する

楊書凡27.png

仮想マシンに名前を付けて、「完了」をクリックします。

楊書凡29.png

楊書凡23.png

「完了」をクリックすると仮想マシンの作成が始まります。その後、

2. コマンドラインモードを使用して仮想マシンを作成する

1. qemu-imgコマンドを使用してディスクファイルを作成する

RAWディスクファイルを作成する

[root@localhost ~]# qemu-img で /kvm/vfs/vm1.raw 20G を作成します

ディスクフォーマットをqcow2に変換する

[root@localhost ~]# qemu-img convert -f raw -O qcow2 /kvm/vfs/vm1.raw /kvm/vfs/vm1.qcow2

qcow2形式でディスクファイルを直接作成する

[root@localhost ~]# qemu-img create -f qcow2 /kvm/vfs/vm1.qcow2 20G

2. virt-installコマンドを使用して仮想マシンを作成します

一般オプション:

-n NAME, --name=NAME 仮想マシン名

-r MEMORY、--ram=MEMORY クライアントイベントに割り当てるメモリ(MB)

--vcpus=VCPUS は、次のように仮想マシンの仮想 CPU (vcpus) の数を構成します。

--vcpus 5

--vcpus 5、最大cpus=10

--vcpus ソケット=2、コア=4、スレッド=2

--cpuset=CPUSET ドメインが使用できる物理 CPU を設定します。

--cpu=CPU CPU モデルと機能、例: --cpu coreduo,+x2apic

--description=DESCRIPTION 生成された XML に保存される、人間が判読できる VM の説明。

--security=SECURITY ドメイン セキュリティ ドライバー構成を設定します。

--numatune=NUMATUNE ドメイン プロセスの NUMA ポリシーを調整します。

インストール方法のオプション:

-c CDROM、--cdrom=CDROM CDROM インストールメディア

-l 場所、--location=場所

インストール ソース (例: nfs:host:/path、http://host/path、ftp://host/path)

--pxe PXEプロトコルを使用してネットワークから起動します

--import クライアントをディスクイメージにビルドする

--livecd CD-ROM メディアを Live CD として扱う

-x EXTRA、--extra-args=EXTRA

--location で起動したカーネルに追加するパラメータ

--os-type=ディストリビューションタイプ

オペレーティング システムの種類、「linux」、「unix」、「windows」

--os-variant=ディストリビューションバリアント

オペレーティング システムのバージョン (例: 'fedora6'、'rhel5'、'solaris10'、'win2k')

--boot=BOOTOPTS オプションの設定後のインストール起動順序、メニュー、永続的なカーネル起動など。

ストレージ構成:

--disk=DISKOPTS さまざまなオプションでストレージを指定します。元。

--disk パス=/my/existing/disk

--disk path=/my/new/disk、format=qcow2、size=5、sparse (GB単位)

--disk vol=プール名:volname,デバイス=cdrom,バス=scsi,...

--nodisks このクライアントにディスクを設定しません。

--filesystem=ファイルシステム

ホスト ディレクトリを仮想マシンに渡します。例えば:

--filesystem /my/source/dir,/dir/in/guest

--filesystem テンプレート名,/,タイプ=テンプレート

ネットワーク構成:

-w ネットワーク、--network=ネットワーク

顧客のネットワーク インターフェイスを構成します。元:

--ネットワークブリッジ=mybr0

--network ネットワーク=my_libvirt_virtual_net

--network ネットワーク=mynet、モデル=virtio、mac=00:11...

--nonetworks このゲストのネットワーク インターフェイスを作成しません。

グラフィック構成:

--graphics=グラフィックス

仮想マシンの表示設定を構成します。例えば:

--グラフィックスvnc

--graphics spice、ポート=5901、tlsport=5902

--グラフィックスなし

--graphics vnc、パスワード=foobar、ポート=5910、キーマップ=ja

--noautoconsole クライアントコンソールへの接続を自動的に試行しない

装備オプション:

--serial=SERIALS 仮想マシンのシリアルポートデバイスを設定します

--parallel=PARALLELS 仮想マシンのパラレルポートデバイスを構成する

--channel=CHANNELS 仮想マシンの通信チャネルを構成する

--console=CONSOLES 仮想マシンとホスト間のテキストコンソール接続を構成する

--host-device=HOSTDEVS クライアントに接続された物理ホストデバイスを設定します

--soundhw=SOUNDHW クライアントのサウンドデバイスエミュレーションを構成する

--watchdog=WATCHDOG 仮想マシンのウォッチドッグデバイスを設定します

--video=VIDEO 仮想マシンのビデオ ハードウェアを構成します。

--smartcard=SMARTCARD 仮想マシンのスマート カード デバイスを構成します。

例: --smartcard-mode=passthrough

--redirdev=REDIRDEV ゲストリダイレクトデバイスを設定します。

例: --redirdev usb,type=tcp,server=192.168.1.1:4000

仮想化プラットフォームのオプション:

-v, --hvm クライアントは完全に仮想化されたクライアントである必要があります

-p, --paravirt このクライアントは準仮想化クライアントです

--container このゲストはコンテナゲストである必要があります

--virt-type=HV_TYPE 使用するハイパーバイザーの名前 (kvm、qemu、xen)

--arch=ARCH シミュレートされた CPU アーキテクチャ

--machine=MACHINE エミュレートするマシンタイプ

--noacpi 完全に仮想化されたゲストの ACPI を無効にします (os-type/os-variant db の値を上書きします)

-u UUID、--uuid=UUID クライアント UUID。

その他のオプション:

--autostart ホストの起動時にドメインを自動的に起動します。

--print-xml 仮想マシンを定義する代わりに、生成されたドメインの XML を出力します。

--print-step=XMLSTEP 詳細なインストール手順を出力します

--noreboot インストール完了後に仮想マシンを起動しません。

--wait=WAIT 待機時間(分単位)

--dry-run インストール手順を完了しますが、デバイスを作成したり仮想マシンを定義したりはしません。

--force アプリケーションのプロンプトに対して「はい」の回答を強制し、他のプロンプトを終了します。

-q, --quiet はサイレント出力を無効にします

--prompt あいまいな場合や必須オプションの場合はユーザー入力を要求する

-d, --debug トラブルシューティング情報を入力します

3. 純粋なコマンドラインを使用して仮想マシンをインストールする

[root@localhost ~]# qemu-img create -f qcow2 /kvm/vfs/vm2.qcow2 20G

[root@localhost ~]# virt-install -n vm2 \ 仮想マシン名を定義する

> -r 1024 \ メモリサイズ

> --vcpus 1 \ CPUの数

> -l /kvm/iso/Centos7.iso \ ISO の場所

> --disk path=/kvm/vfs/vm2.qcow2,format=qcow2 \ ディスクファイルの場所とフォーマット

> --nographics \ グラフィックスを使用せずにインストールする

> -x console=ttyS0 は、コンソール端末を使用して仮想マシンにログインすることを許可する

コマンドを実行してオペレーティング システムをインストールし、必要に応じて次の構成パラメータを調整します。

楊書凡30.png

4. VNCを使用して仮想マシンシステムを作成する

[root@localhost ~]# qemu-img create -f qcow2 /kvm/vfs/vm3.qcow2 20G

[root@localhost ~]# virt-install -n vm3 \ 仮想マシン名を定義する

> -r 1024 \ メモリサイズ

> --vcpus 1 \ CPUの数

> -l /kvm/iso/Centos7.iso \ ISO の場所

> --disk path=/kvm/vfs/vm3.qcow2,format=qcow2 \ ディスクファイルの場所とフォーマット

> --graphics vnc,listen=0.0.0.0,port=5924, \ vnc インストール、ポート 5924 を使用

> --noautoconsole \ クライアントコンソールへの接続を自動的に試行しない

> --accelerate \ インストールを高速化

> --autostart ホストの起動時にドメインを自動的に起動する

[root@localhost ~]# firewall-cmd --add-port=5924/tcp vnc接続を許可する

vncクライアントソフトウェアを使用して接続しインストールする

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

以下もご興味があるかもしれません:
  • 仮想化技術QEMU-KVMの導入の詳細説明
  • CentOS 7 で KVM 仮想化プラットフォームを構築する方法と手順
  • KVM仮想化学習ノート(I)KVM仮想化環境のインストール手順
  • KVM 仮想化のインストール、展開、管理のチュートリアル

<<:  JavaScriptはeコマースプラットフォームの製品詳細を実装します

>>:  UbuntuからMySQLを削除して再インストールする方法

推薦する

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修...

UnityはMySQLに接続し、テーブルデータの実装コードを読み取ります

表は以下のとおりです。 Unity が読み取って呼び出すときのコード: データベース内の別のテーブル...

JavaScript における正規表現の実際的な応用の詳細な説明

実際の業務では、JavaScript の正規表現が依然として頻繁に使用されます。したがって、この部分...

MySql エラー 1698 (28000) の解決策

1. 問題の説明: MysqlERROR1698 (28000) の解決方法、新しくインストールされ...

Oracle10パーティションとMySQLパーティションの違いの詳細な説明

一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...

Bash で山括弧を使用するその他の方法

序文この記事では、山括弧のその他の用途をさらに詳しく見ていきます。前回の記事では、山括弧 (<...

Linuxファイルシステム操作の実装

この読書ノートでは、主にファイルシステムに関連する操作を記録します。ディスクとディレクトリの容量ディ...

mysql8.0.18 で winx64 をインストールするための詳細なチュートリアル (画像とテキスト付き)

MySQLデータベースをダウンロードするには、https://dev.mysql.com/down...

MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.17ワークベンチのインストールと設定方法を参考までに紹介します。具...

Vue+Vantはトップ検索バーを実装します

この記事では、参考までに、Vue+Vant のトップ検索バーを実装するための具体的なコードを紹介しま...

マーキー要素は、スクロールするフォントや画像などの効果を実装します。

マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...

ページのキャッシュを防ぐソリューション

解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...

入力スクリプトなしでタイプ拡張を使用する方法

序文JS の型付けが弱く、記述基準が緩く、開発ツールのサポートが弱いため、前任者のコードをメンテナン...

VMware に Linux システム (Redhat8) と仮想マシンのネットワーク構成をインストールする方法

目次1. VMwareをインストールする1.1 VMwareworkstationsをダウンロードし...

フレームセットを使用してワイドスクリーンを中央に配置するためのヒントを共有する

コードをコピーコードは次のとおりです。 <フレームセット cols="*,1280,...