GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04LTSにKVMをインストールして構成する

このステップバイステップガイドでは、KVMとは何か、Ubuntu 20.04サーバーにKVMをインストールして構成する方法、およびVirshプログラムを使用してKVMゲストマシンを作成および管理する方法について説明します。

KVMとは何ですか?

KVM Kの略 ernelベースのV irtual M achineは、カーネルがハイパーバイザーとして機能できるようにするFreeBSDおよびLinuxカーネルモジュールです。カーネルバージョン2.6.20以降、KVMはLinuxカーネルメインラインに統合されています。

KVMを使用すると、Linuxマシンで仮想化環境を簡単にセットアップし、Linux、Windows、BSD、MacOSなどのさまざまなゲストオペレーティングシステムをホストできます。

このガイドでは、Ubuntu20.04ヘッドレスサーバーにKVMをインストールして構成する方法について説明します。また、Virshコマンドラインユーティリティを使用してKVMゲストマシンを作成および管理する方法についても説明します。

前提条件

KVMをインストールする前に、まずシステムのプロセッサがハードウェア仮想化をサポートしていることを確認してください。次のガイドでは、Linuxシステムが仮想化をサポートしているかどうかを識別するためのいくつかの異なる方法を文書化しています。

  • CPUが仮想化テクノロジー(VT)をサポートしているかどうかを確認する方法

システムがハードウェア仮想化をサポートしている場合は、次の手順を続行します。

1。 Ubuntu20.04LTSにKVMをインストールして構成する

このガイドでは、次のシステムを使用します。

KVM仮想化サーバー:

  • OS – Ubuntu 20.04 LTS最小サーバー(GUIなし)
  • IPアドレス :192.168.225.52 / 24

リモートクライアント:

  • OS – Ubuntu20.04GNOMEデスクトップ

まず、UbuntuサーバーにKVMをインストールしましょう。

1.1。 Ubuntu20.04LTSにKVMをインストールする

次のコマンドを使用して、Kvmと必要なすべての依存関係をインストールし、Ubuntu20.04LTSサーバーに仮想化環境をセットアップします。

$ sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils

ここで

  • qemu -汎用マシンエミュレーターおよびバーチャライザー、
  • qemu-kvm -KVMサポート用のQEMUメタパッケージ(つまり、x86ハードウェアでのQEMU完全仮想化)
  • libvirt-clients -libvirtライブラリのプログラム
  • libvirt-daemon-system -Libvirtデーモン構成ファイル
  • virtinst -仮想マシンを作成および複製するプログラム
  • bridge-utils -Linuxイーサネットブリッジを構成するためのユーティリティ。

KVMがインストールされたら、libvertdサービスを開始します(まだ開始されていない場合):

$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd

次のコマンドでlibvirtdサービスのステータスを確認します:

$ systemctl status libvirtd

出力例:

● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-07-04 08:13:41 UTC; 7min ago
TriggeredBy: ● libvirtd-ro.socket
             ● libvirtd-admin.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 4492 (libvirtd)
      Tasks: 19 (limit: 32768)
     Memory: 12.9M
     CGroup: /system.slice/libvirtd.service
             ├─4492 /usr/sbin/libvirtd
             ├─4641 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --l>
             └─4642 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --l>

Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: compile time options: IPv6 GNU-getopt DBus i18n>
Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641]: DHCP, IP range 192.168.122.2 -- 192.168.12>
Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641]: DHCP, sockets bound exclusively to interfa>
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: reading /etc/resolv.conf
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: using nameserver 127.0.0.53#53
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: read /etc/hosts - 7 addresses
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: read /var/lib/libvirt/dnsmasq/default.addnhosts>
Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641]: read /var/lib/libvirt/dnsmasq/default.host>
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: reading /etc/resolv.conf
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: using nameserver 127.0.0.53#53

さて、libvertdサービスが有効になり、開始されました!残りの構成を今すぐ行いましょう。

1.2。 UbuntuでKVMを使用してブリッジネットワークをセットアップする

ブリッジネットワークは、ホストコンピューターの実際のネットワークインターフェイスを他のVMと共有して、外部ネットワークに接続します。したがって、各VMは、物理コンピューターと同じように、使用可能なIPv4またはIPv6アドレスに直接バインドできます。

デフォルトでは、KVMはプライベート仮想ブリッジをセットアップし、すべてのVMがホストコンピューター内で相互に通信できるようにします。ゲストのネットワークを構成するための独自のサブネットとDHCPを提供し、NATを使用してホストネットワークにアクセスします。

「ip」コマンドを使用して、KVMのデフォルトの仮想インターフェースのIPアドレスを確認してください。

$ ip a

出力例:

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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.52/24 brd 192.168.225.255 scope global dynamic enp0s3
       valid_lft 39559sec preferred_lft 39559sec
    inet6 2409:4072:6c0f:431d:a00:27ff:fe8a:5294/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe8a:5294/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.60/24 brd 192.168.225.255 scope global dynamic enp0s8
       valid_lft 39559sec preferred_lft 39559sec
    inet6 2409:4072:6c0f:431d:a00:27ff:fe10:7cc1/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe10:7cc1/64 scope link 
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.51/24 brd 192.168.225.255 scope global dynamic enp0s9
       valid_lft 39559sec preferred_lft 39559sec
    inet6 2409:4072:6c0f:431d:a00:27ff:fe5d:6128/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe5d:6128/64 scope link 
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:f1:98:9e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:f1:98:9e brd ff:ff:ff:ff:ff:ff

KVMのデフォルトの仮想インターフェイスIPアドレス

ご覧のとおり、KVMのデフォルトネットワーク virbr0 192.168.122.1/24IPアドレスを使用します。すべてのVMは192.168.122.0/24IP範囲のIPアドレスを使用し、ホストOSは192.168.122.1で到達可能になります。ゲストOS内からホストOS(192.168.122.1)にSSHで接続し、scpを使用してファイルを前後にコピーできるはずです。

ホスト自体から内部のVMにのみアクセスする場合は問題ありません。ただし、ネットワーク内の他のリモートシステムからVMにアクセスすることはできません。

異なるIP範囲、つまり私の場合は192.168.225.0/24を使用しているためです。他のリモートホストからVMにアクセスするには、ホストネットワーク上で実行され、ホストネットワーク上にある外部DHCPサーバーを使用するパブリックブリッジをセットアップする必要があります。

これを簡単に言えば、すべてのVMがホストシステムで使用されるのと同じIPシリーズを使用するようにします。

パブリックブリッジネットワークを設定する前に、 Netfilterを無効にする必要があります パフォーマンスとセキュリティ上の理由 。 Netfilterは現在、デフォルトでブリッジで有効になっています。

netfilterを無効にするには、 /etc/sysctl.d/bridge.confというファイルを作成します :

$ sudo vi /etc/sysctl.d/bridge.conf

次の行を追加します:

net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-arptables=0
ファイルを保存して閉じます。

次に、/etc/udev/rules.d/99-bridge.rulesという別のファイルを作成します :

$ sudo vi /etc/udev/rules.d/99-bridge.rules

次の行を追加します:

ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", RUN+="/sbin/sysctl -p /etc/sysctl.d/bridge.conf"

これにより、システム起動の適切な場所でブリッジのnetfilterを無効にするために必要なフラグが設定されます。ファイルを保存して閉じます。 システムを再起動します これらの変更を有効にします。

次に、KVMがそれ自体にインストールしたデフォルトのネットワークを無効にする必要があります。

「iplink」コマンドを使用してKVMデフォルトネットワークインターフェースの名前を検索します:

$ ip link

出力例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:1f:a2:e7 brd ff:ff:ff:ff:ff:ff
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:1f:a2:e7 brd ff:ff:ff:ff:ff:ff

KVMのデフォルトのネットワークインターフェースを表示する

上記の出力にあるように、エントリ「virbr0」と「virbr0-nic」はKVMネットワークです。

次のコマンドを使用して、デフォルトのKVMネットワークを削除しましょう:

$ virsh net-destroy default

出力例:

Network default destroyed

次のコマンドでデフォルトネットワークの定義を解除します:

$ virsh net-undefine default

出力例:

Network default has been undefined

デフォルトのKVMネットワークインターフェースを削除する

上記のコマンドが何らかの理由で機能しない場合は、次のコマンドを使用して、KVMのデフォルトネットワークを無効にしたり、定義を解除したりできます。

$ sudo ip link delete virbr0 type bridge
$ sudo ip link delete virbr0-nic

次に、「ip link」を再度実行して、virbr0およびvirbr0-nicインターフェースが実際に削除されているかどうかを確認します。

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff

見る? KVMのデフォルトネットワークはなくなりました。

次に、新しいVMを作成するときに使用するKVMパブリックブリッジをセットアップしましょう。

注:

ブリッジにワイヤレスネットワークインターフェイスカードを使用しないでください。ほとんどのワイヤレスインターレースはブリッジングをサポートしていません。シームレスな接続のために、常に有線ネットワークインターフェースを使用してください!

ホストにネットワークブリッジを作成するには、 /etc/netplan/00-installer-config.yamlを編集します ファイルを作成し、ブリッジの詳細を追加します。

00-installer-config.yamlのデフォルトの内容は次のとおりです Ubuntu20.04LTSサーバーのファイル。

$ cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: true
    enp0s9:
      dhcp4: true
  version: 2

ご覧のとおり、Ubuntuサーバーには3つの有線ネットワークインターフェイス、つまりenp0s3、enp0s8、enp0s9があります。

このファイルを編集する前に、既存の/etc/netplan/00-installer-config.yamlファイルをバックアップしてください:

$ sudo cp /etc/netplan/00-installer-config.yaml{,.backup}

次に、お気に入りのエディターを使用してデフォルトの構成ファイルを編集します。

$ sudo vi /etc/netplan/00-installer-config.yaml

以下のように追加/変更します:

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: false
      dhcp6: false
    enp0s8:
      dhcp4: false
      dhcp6: false
    enp0s9:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [ enp0s3 ]
      addresses: [192.168.225.52/24]
      gateway4: 192.168.225.1
      mtu: 1500
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: no
      dhcp6: no
  version: 2

ubuntuでネットワークブリッジを作成する

ここでは、ブリッジネットワークインターフェース「br0」がホストのネットワークインターフェース「enp0s3」に接続されています。 br0のIPアドレスは192.168.225.52です。ゲートウェイは192.168.225.1です。 Google DNSサーバー(8.8.8.8および8.8.4.4)を使用してインターネットに接続しています。スペースのインデントが上記とまったく同じであることを確認してください。行のインデントが正しくない場合、ブリッジネットワークインターフェイスはアクティブになりません。ネットワークに一致する上記の値を置き換えます。

ネットワーク設定ファイルを変更したら、保存して閉じます。次のコマンドを実行して、変更を適用します。

$ sudo netplan --debug  apply

次に、IPアドレスがブリッジインターフェイスに割り当てられているかどうかを確認します。

$ ip a

出力例:

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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
    inet6 2409:4072:48b:ab02:a00:27ff:fe10:7cc1/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe10:7cc1/64 scope link 
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff
    inet6 2409:4072:48b:ab02:a00:27ff:fe5d:6128/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe5d:6128/64 scope link 
       valid_lft forever preferred_lft forever
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.52/24 brd 192.168.225.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe8a:5294/64 scope link 
       valid_lft forever preferred_lft foreve

KVMブリッジネットワークのIPアドレスを確認してください

上記の出力にあるように、ブリッジネットワークインターフェイス br0 はIPアドレス192.168.225.52で割り当てられ、enp0s3エントリには「masterbr0」エントリが含まれるようになりました。 enp0s3がブリッジに属していることを意味します。

"brctl"を使用することもできます ブリッジのステータスを表示するコマンド:

$ brctl show br0

出力例:

bridge name    bridge id       STP enabled interfaces
br0     8000.0800278a5294   yes     enp0s3

次に、このブリッジを使用するようにKVMを構成する必要があります。これを行うには、 host-bridge.xmlというXMLファイルを作成します。 :

$ vi host-bridge.xml

次の行を追加します:

<network>
  <name>host-bridge</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>

次のコマンドを実行して、新しく作成されたブリッジを起動し、VMのデフォルトブリッジとして作成します。

$ virsh net-define host-bridge.xml
$ virsh net-start host-bridge
$ virsh net-autostart host-bridge

KVMホストブリッジを開始します

ブリッジがアクティブで開始されているかどうかを確認するには、次のコマンドを実行します:

$ virsh net-list --all

出力例:

Name          State    Autostart   Persistent
------------------------------------------------
 host-bridge   active   yes         yes

KVMホストブリッジのステータスを確認する

おめでとうございます! KVMブリッジのセットアップに成功し、現在アクティブになっています。

関連資料:

  • CentOS8サーバーにKVMをインストールして構成する
  • OpenSUSETumbleweedにKVMをインストールして構成する

2。 Virshを使用してKVM仮想マシンを作成および管理する

"virsh"を使用します 仮想マシンを管理するためのコマンドラインユーティリティ。 virshプログラムは、コマンドラインからVMを作成、一覧表示、一時停止、再起動、シャットダウン、および削除するために使用されます。

デフォルトでは、仮想マシンファイルおよびその他の関連ファイルは / var / lib / libvirt /に保存されます。 位置。 ISOイメージを保存するためのデフォルトのパスは、 / var / lib / libvirt / boot /です。 。もちろん、新しいVMをインストールするときにこれらの場所を変更できます。

2.1。すべての仮想マシンを一覧表示する

まず、仮想マシンが存在するかどうかを確認しましょう。

使用可能なすべての仮想マシンのリストを表示するには、次を実行します。

$ sudo virsh list --all

出力例:

virshを使用して仮想マシンを一覧表示する

ご覧のとおり、既存の仮想マシンはありません。

2.2。 KVM仮想マシンを作成する

2 GBのRAM、1つのCPUコア、10GBのハードディスクを備えたUbuntu18.04仮想マシンを作成してみましょう。これを行うには、次を実行します:

$ sudo virt-install --name Ubuntu-18.04 --ram=2048 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntu-18.04-vm1,size=10 --cdrom /home/ostechnix/ubuntu18.iso --network bridge=br0 --graphics vnc

上記のコマンドを分解して、各オプションの機能を見てみましょう。

  • -名前Ubuntu-18.04 :仮想マシンの名前
  • -ram =2048 :2GBのRAMをVMに割り当てます。
  • -vcpus =1 :VM内のCPUコアの数を示します。
  • --CPUホスト :ホストのCPU構成をゲストに公開することにより、VMのCPUプロパティを最適化します。
  • -hvm :完全なハードウェア仮想化をリクエストします。
  • -ディスクパス=/var / lib / libvirt / images / ubuntu-18.04-vm1、size =10 :VMのhddを保存する場所とそのサイズ。この場合、10GBのhddサイズを割り当てました。
  • -cdrom /home/ostechnix/ubuntu18.iso :実際のUbuntuインストーラーISOイメージがある場所。
  • -network bridge =br0 :ブリッジネットワークを使用するようにVMに指示します。ブリッジネットワークを構成していない場合は、このパラメーターを無視してください。
  • -graphics vnc :リモートクライアントからVMへのVNCアクセスを許可します。

上記のコマンドの出力例は次のとおりです。

WARNING Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING No console to launch for the guest, defaulting to --wait -1

Starting install...
Allocating 'ubuntu-18.04-vm1'                                                                                                                      |  10 GB  00:00:06     
Domain installation still in progress.
Waiting for installation to complete.

このメッセージは、VNCアプリケーションを介してリモートシステムからVMに接続し、OSのインストールが完了するまで表示され続けます。

KVMホストシステム(Ubuntuサーバー)にはGUIがないため、ゲストOSのインストールを続行できません。そこで、GUIを備えた予備のマシンを使用して、VNCクライアントを使用してゲストOSのインストールを完了します。

ここでUbuntuサーバーを使用しました。次の手順は、クライアントシステムで実行する必要があります。

2.3。 VNCクライアントを介してリモートシステムから仮想マシンにアクセスする

グラフィカルデスクトップ環境を備えたリモートシステムに移動し、VNCクライアントアプリケーションがまだインストールされていない場合はインストールします。 Remminaを備えたUbuntuデスクトップを持っています リモートデスクトップクライアントがインストールされています。

KVMホストシステムへのSSH接続:

$ ssh [email protected]

ここで

  • ostechnix KVMホスト(Ubuntu 20.04サーバー)のユーザーの名前です
  • 192.168.225.52 KVMホストのIPアドレスです。

次のコマンドを使用して、実行中のVMが使用するVNCポートを検索します。

$ sudo virsh dumpxml Ubuntu-18.04 | grep vnc

「Ubuntu-18.04」をVMの名前に置き換えます。

出力例:

<graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>

VNCポート番号は5900

端末から次のSSHポート転送コマンドを入力します。

$ ssh [email protected] -L 5900:127.0.0.1:5900

VNCクライアントアプリケーションを起動し、「VNC」プロトコルを選択してから、「localhost:5900」と入力します。 アドレスバーで最後にEnterキーを押します:

Remminaリモートデスクトップクライアントを使用してリモート仮想マシンに接続する

VNCアプリケーションは、推測OSインストールウィンドウを表示します。

VNCクライアントを介してリモートシステムから仮想マシンにアクセスする

ゲストOSのインストールを続行するだけです。インストールが完了したら、VNCアプリケーションウィンドウを閉じます。

2.4。実行中のVMのリスト

「virtlist」コマンドを実行して、実行中のVMのリストを表示します。

$ sudo virsh list

出力例:

 Id   Name           State
------------------------------
 2    Ubuntu-18.04   running

ご覧のとおり、Ubuntu 18.04 VMは現在実行中であり、そのIDは2です。

2.5。 VMを起動します

VMを起動するには、次を実行します:

$ sudo virsh start Ubuntu-18.04

VMのIDを使用して開始することもできます:

$ sudo virsh start 2

2.6。 VMを再起動します

実行中のVMを再起動するには、次の手順を実行します。

$ sudo virsh reboot Ubuntu-18.04

または、

$ sudo reboot 2

2.7。 VMを一時停止

実行中のVMを一時停止するには、次の手順を実行します。

$ sudo suspend Ubuntu-18.04

または、

$ sudo suspend 2

2.8。 VMを再開する

中断されたVMを再開するには、次の手順を実行します。

$ sudo virsh resume Ubuntu-18.04

または、

$ sudo resume 2

2.9。 VMをシャットダウンする

実行中のVMの電源をオフにするには、次の手順を実行します。

$ sudo virsh shutdown Ubuntu-18.04

または、

$ sudo shutdown 2

2.10。 VMを削除する

VMを完全に削除するには、次の手順を実行します。

$ sudo virsh undefine Ubuntu-18.04
$ sudo virsh destroy Ubuntu-18.04

Virshにはたくさんのコマンドとオプションがあります。それらすべてを学ぶには、virshヘルプセクションを参照してください:

$ virsh --help

3。 KVMゲストをグラフィカルに管理する

すべてのvirshコマンドを覚えておくことはほぼ不可能です。 Linux管理者を始めている場合、コマンドラインからすべてのKvm管理操作を実行するのは難しいかもしれません。心配ない! KVMゲストマシンをグラフィカルに管理するために利用できるWebベースのツールがいくつかあります。次のガイドでは、CockpitとVirt-managerを使用してKvmゲストを管理する方法について詳しく説明しています。

  • コックピットWebコンソールを使用してKVM仮想マシンを管理する
  • Virt-Managerを使用してKVM仮想マシンを管理する方法

4。仮想マシンのVirshコンソールアクセスを有効にする

KVMゲストを作成した後、SSH、VNCクライアント、Virt-viewer、Virt-manager、Cockpit Webコンソールなどを介してアクセスできるようになりました。しかし、「virshconsole」コマンドを使用してアクセスできませんでした。 「virshconsole」を使用してKVMゲストにアクセスするには、次のガイドを参照してください。

  • KVMゲストのVirshコンソールアクセスを有効にする方法
その他のKVM関連ガイド
  • LinuxでQcow2イメージを使用してKVM仮想マシンを作成する
  • LinuxでVirtualboxVMをKVMVMに移行する方法
  • LinuxでKVM仮想マシンのUEFIサポートを有効にする
  • LinuxのKVMでネストされた仮想化を有効にする方法
  • LinuxでVirt-topを使用して仮想化システムの統計を表示する
  • KVM仮想マシンのIPアドレスを見つける方法
  • KVMゲスト仮想マシンの名前を変更する方法
  • Libguestfsを使用して仮想マシンのディスクイメージにアクセスして変更する
  • Virt-builderを使用して仮想マシンイメージをすばやく構築する
  • Virt-rescueを使用して仮想マシンをレスキューする方法
  • LinuxでKVM仮想マシンのディスクサイズを拡張する方法
  • KVMホストとゲストの間に共有フォルダーを設定する
  • KVMLibvirtのデフォルトのストレージプールの場所を変更する方法
  • [解決済み]ストレージファイルにアクセスできません、KVMLibvirtでアクセスが拒否されましたエラー
  • LinuxでKVM仮想マシンをエクスポートおよびインポートする方法

結論

このガイドでは、Ubuntu20.04LTSサーバーエディションにKVMをインストールして構成する方法について説明しました。

また、virshを使用してコマンドラインからKVM仮想マシンを作成および管理する方法についても説明しました。 ツールとGUIツールの使用コックピットとVirt-manager。

最後に、KVM仮想マシンのvirshコンソールアクセスを有効にする方法を確認しました。この段階では、Ubuntu20.04サーバーで完全に機能する仮想化環境が整っているはずです。


Ubuntu
  1. Ubuntu18.04LTSサーバーにKVMをインストールして構成する方法

  2. Ubuntu18.04LTSにAnsibleをインストールして構成する方法

  3. Ubuntu 20.04 LTS に Fail2ban をインストールして構成する方法

  1. Ubuntu 18.04 LTSにKubernetes(k8s)をインストールして設定する方法

  2. Ubuntu18.04LTSにGitLabをインストールして構成する方法

  3. Ubuntu18.04LTSにKubernetesとDockerをインストールして設定する方法

  1. Ubuntu16.04LTSにKolabグループウェアをインストールして構成する

  2. Ubuntu16.04LTSにMongoDBをインストールして構成する方法

  3. Ubuntu18.04LTSにVSFTPDサーバーをインストールして構成する