| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「KVM」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の6版が非表示)
1行目: 1行目:
| [[Linux]] | [[CentOS]] | [[Ubuntu]] |
+
| [[Linux]] | [[CentOS]] | [[Ubuntu]] | [[Multipass]] |
  
 
*https://www.redhat.com/ja/topics/virtualization/what-is-KVM
 
*https://www.redhat.com/ja/topics/virtualization/what-is-KVM
109行目: 109行目:
  
 
===外部ネットワークから接続===
 
===外部ネットワークから接続===
 +
====[https://www.typea.info/blog/index.php/2020/08/22/ubuntu-kvm-bridge-network/ Ubuntu KVM に ネットワークブリッジを構成する]====
 +
----
 +
*[https://www.typea.info/blog/index.php/2020/08/22/ubuntu-kvm-bridge-network/ Ubuntu KVM に ネットワークブリッジを構成する]
 +
====[https://www.typea.info/blog/index.php/2021/03/10/create_ubuntu_multipass_kvm_bridge_network/ UbuntuでMultipass(KVM)のブリッジネットワーク環境を構築]====
 +
----
 +
*[https://www.typea.info/blog/index.php/2021/03/10/create_ubuntu_multipass_kvm_bridge_network/ UbuntuでMultipass(KVM)のブリッジネットワーク環境を構築]
 +
 +
====nmcliを使用====
 +
*https://www.cyberciti.biz/faq/how-to-add-network-bridge-with-nmcli-networkmanager-on-linux/
 +
<pre>
 +
$ nmcli con show
 +
NAME          UUID                                  TYPE      DEVICE 
 +
有線接続 1    3ee7bb10-bdc4-3692-9048-1e2f35d06c90  ethernet  enp0s25
 +
ctc-g-d17c80  5105f279-97ae-4a5b-9313-0729a4a8ee35  wifi      wlp10s0
 +
virbr0        8879c8b2-fea9-4a33-b696-04b6a9dc7874  bridge    virbr0 
 +
ctc-a-d17c80  719c99c6-6345-46b7-bd84-aac667d2dfbb  wifi      --     
 +
</pre>
 +
<pre>
 +
$ sudo nmcli con add type bridge ifname br0
 +
接続 'bridge-br0' (1ef72134-e85d-4df5-9ed3-4db1a6bbff39) が正常に追加されました。
 +
</pre>
 +
<pre>
 +
$ sudo nmcli con add type bridge-slave ifname enp0s25 master br0
 +
接続 'bridge-slave-enp0s25' (29740da7-7a63-4d26-8ddc-2007e300d606) が正常に追加されました。
 +
</pre>
 +
 +
<pre>
 +
$ sudo nmcli con up bridge-slave-enp0s25
 +
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/9)
 +
</pre>
 +
 +
[[File:Ubuntu_net_bridge.png|400px]]
 +
[[File:Kvm_net_bridge.png|400px]]
 +
[[File:Kvm_on_remote.png|400px]]
 +
[[File:Kvm_on_remote2.png|400px]]
 +
 +
====設定ファイルを編集====
 
*https://symfoware.blog.fc2.com/blog-entry-2446.html
 
*https://symfoware.blog.fc2.com/blog-entry-2446.html
 
*https://qiita.com/zen3/items/757f96cbe522a9ad397d
 
*https://qiita.com/zen3/items/757f96cbe522a9ad397d
153行目: 190行目:
 
br0 8000.000000000000 no
 
br0 8000.000000000000 no
 
virbr0 8000.525400305a80 yes virbr0-nic
 
virbr0 8000.525400305a80 yes virbr0-nic
</pre>
 
 
====nmcli====
 
*https://www.cyberciti.biz/faq/how-to-add-network-bridge-with-nmcli-networkmanager-on-linux/
 
<pre>
 
$ nmcli con show
 
NAME          UUID                                  TYPE      DEVICE 
 
有線接続 1    3ee7bb10-bdc4-3692-9048-1e2f35d06c90  ethernet  enp0s25
 
ctc-g-d17c80  5105f279-97ae-4a5b-9313-0729a4a8ee35  wifi      wlp10s0
 
virbr0        8879c8b2-fea9-4a33-b696-04b6a9dc7874  bridge    virbr0 
 
ctc-a-d17c80  719c99c6-6345-46b7-bd84-aac667d2dfbb  wifi      --     
 
</pre>
 
<pre>
 
$ sudo nmcli con add type bridge ifname br0
 
接続 'bridge-br0' (1ef72134-e85d-4df5-9ed3-4db1a6bbff39) が正常に追加されました。
 
</pre>
 
<pre>
 
$ sudo nmcli con add type bridge-slave ifname enp0s25 master br0
 
接続 'bridge-slave-enp0s25' (29740da7-7a63-4d26-8ddc-2007e300d606) が正常に追加されました。
 
</pre>
 
 
<pre>
 
$ sudo nmcli con up bridge-slave-enp0s25
 
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/9)
 
 
</pre>
 
</pre>

2021年3月11日 (木) 00:02時点における最新版

| Linux | CentOS | Ubuntu | Multipass |

KVMとは

  • KVM (Kernel-based Virtual Machine)は、Linuxに組み込まれたオープンソースの仮想化テクノロジー
  • 具体的には、KVM を使用すると、Linux をハイパーバイザーすることができる
  • これによりホストマシンは、ゲストや仮想マシンと呼ばれる複数の独立した仮想化環境を稼働させることができる。
  • KVM は Linux の一部です。Linux 2.6.20 以降、KVM が搭載されている

QEMUとは

  • QEMUとは仮想マシン・エミュレータと呼ばれ、KVMなどの仮想マシンとともに利用する場合がある。
  • KVMとの組み合わせにより、それぞれが得意な役割を担うことで、処理速度が向上するなどメリットが生まれる。
  • 具体的には、KVMは仮想CPUを提供する一方、QEMUはメモリや仮想I/Oデバイスを提供。

Ubuntuをホストとしてインストール

ハードウェアの仮想化チェック

  1. $ egrep -c '(vmx|svm)' /proc/cpuinfo
  • 0 : ハードウェア仮想化未サポート
  • 1:以上サポートされているが、有効化の確認が必要
  1. $ lscpu
  2. アーキテクチャ: x86_64
  3. CPU 操作モード: 32-bit, 64-bit
  4. バイト順序: Little Endian
  5. Address sizes: 36 bits physical, 48 bits virtual
  6. CPU: 4
  7. オンラインになっている CPU のリスト: 0-3
  8. コアあたりのスレッド数: 2
  9. ソケットあたりのコア数: 2
  10. ソケット数: 1
  11. NUMA ノード数: 1
  12. ベンダー ID: GenuineIntel
  13. CPU ファミリー: 6
  14. モデル: 42
  15. モデル名: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
  16. ステッピング: 7
  17. CPU MHz: 799.076
  18. CPU 最大 MHz: 3200.0000
  19. CPU 最小 MHz: 800.0000
  20. BogoMIPS: 4993.70
  21. 仮想化: VT-x
  22. L1d キャッシュ: 64 KiB
  23. L1i キャッシュ: 64 KiB
  24. L2 キャッシュ: 512 KiB
  25. L3 キャッシュ: 3 MiB
  26. NUMA ノード 0 CPU: 0-3
  27. Vulnerability Itlb multihit: KVM: Mitigation: Split huge pages
  28. Vulnerability L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
  29. Vulnerability Mds: Mitigation; Clear CPU buffers; SMT vulnerable
  30. Vulnerability Meltdown: Mitigation; PTI
  31. Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  32. Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  33. Vulnerability Spectre v2: Mitigation; Full generic retpoline, IBPB conditional, IBRS_FW, STIBP conditional, R
  34. SB filling
  35. Vulnerability Srbds: Not affected
  36. Vulnerability Tsx async abort: Not affected
  37. フラグ: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
  38. acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pe
  39. bs bts nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_
  40. cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadl
  41. ine_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpr
  42. iority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d

必要パッケージのインストール

  • 18.10 以降
 $ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

ユーザーをグループに追加

$ sudo adduser `id -un` libvirt
ユーザー `piroto' をグループ `libvirt' に追加しています...
ユーザ piroto をグループ libvirt に追加
完了。
$ sudo adduser `id -un` kvm
ユーザー `piroto' をグループ `kvm' に追加しています...
ユーザ piroto をグループ kvm に追加
完了。

インストールの検証

  • インストールが成功したか以下のコマンドで確認
$ virsh list --all
 Id   Name   State
--------------------
  • sock ファイルのパーミッションは以下
$ sudo ls -la /var/run/libvirt/libvirt-sock
srwxrwx--- 1 root libvirt 0  8月 20 22:40 /var/run/libvirt/libvirt-sock
  • 仮想マシンのインストールで問題を感じたらオーナーを以下にしてみる
$ sudo chown root:libvirt /dev/kvm
  • ログインし直すか、リブート

GUIツールのインストール

  • インストール
$ sudo apt-get install virt-manager
  • 起動
$ virt-manager

Virt manager.png

外部ネットワークから接続

Ubuntu KVM に ネットワークブリッジを構成する


UbuntuでMultipass(KVM)のブリッジネットワーク環境を構築


nmcliを使用

$ nmcli con show
NAME          UUID                                  TYPE      DEVICE  
有線接続 1    3ee7bb10-bdc4-3692-9048-1e2f35d06c90  ethernet  enp0s25 
ctc-g-d17c80  5105f279-97ae-4a5b-9313-0729a4a8ee35  wifi      wlp10s0 
virbr0        8879c8b2-fea9-4a33-b696-04b6a9dc7874  bridge    virbr0  
ctc-a-d17c80  719c99c6-6345-46b7-bd84-aac667d2dfbb  wifi      --      
$ sudo nmcli con add type bridge ifname br0
接続 'bridge-br0' (1ef72134-e85d-4df5-9ed3-4db1a6bbff39) が正常に追加されました。
$ sudo nmcli con add type bridge-slave ifname enp0s25 master br0
接続 'bridge-slave-enp0s25' (29740da7-7a63-4d26-8ddc-2007e300d606) が正常に追加されました。
$ sudo nmcli con up bridge-slave-enp0s25
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/9)

Ubuntu net bridge.png Kvm net bridge.png Kvm on remote.png Kvm on remote2.png

設定ファイルを編集

$ sudo vi /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
 version: 2
 renderer: networkd 
 ethernets:
  enp0s25:
   dhcp4: false 
   dhcp6: false
   addresses: [192.168.0.20/24]
   nameservers:
     addresses: [192.168.0.1] 
 bridges:
  br0:
   dhcp4: yes
   dhcp6: yes

$ sudo netplan apply
$ brctl show
bridge name	bridge id		STP enabled	interfaces
virbr0		8000.525400305a80	yes		virbr0-nic
  • 仮想ブリッジに物理NICを接続
$ sudo brctl addbr br0
$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000000000000	no		
virbr0		8000.525400305a80	yes		virbr0-nic