linux:kvm
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
linux:kvm [2020/08/11 11:33] – Wiki Editor | linux:kvm [2022/01/06 09:59] – [ゲストOS] Wiki Editor | ||
---|---|---|---|
行 28: | 行 28: | ||
< | < | ||
[*]IGMP/MLD snooping | [*]IGMP/MLD snooping | ||
+ | |||
+ | macvtapを利用する(後述) | ||
+ | | ||
+ | Device Drivers | ||
+ | [*] Network device support | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
KSM (複数のVM間でメモリを共有する) | KSM (複数のVM間でメモリを共有する) | ||
行 41: | 行 50: | ||
==== ネットワーク設定 ==== | ==== ネットワーク設定 ==== | ||
+ | === macvtapを利用する場合 === | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ネットワークに関して当初は以下のようにしていたが、macvtapで物理NICに直接接続する方法もある。NICが複数ある場合は、余計なブリッジを構成しなくてよいので、こちらの方が便利かもしれない。ただし、いまのところGentooではmacvtapを起動スクリプトで扱えないので、仮想マシンを起動する時などにインタフェースを構成する必要がある。また、Qemuからも直接扱えないので、ネットワークデバイスに関するパラメータも少し変更が必要になる。 | ||
+ | |||
+ | 既にnetifrcパッケージに修正がなされつつあるようなので、Gentooの起動スクリプトでmacvtapが扱えるようになったら設定を見直そう。 | ||
+ | |||
+ | macvtapデバイスの構成 | ||
+ | |||
+ | 以下は、/ | ||
+ | |||
+ | # 「macvtap0」という名前でmacvtapデバイスを作成し、物理NICの「enp8s0f0」に接続 | ||
+ | # modeはpassthruとする。1つのVMで1つのNICを使うので今回は何でもよい | ||
+ | # 複数VMが物理NICを共有する形で構成される場合、modeによってVM同士の通信の仕方が変わる。 | ||
+ | ip link add link enp8s0f0 name macvtap0 type macvtap mode passthru | ||
+ | # 作成したインタフェースを起動 | ||
+ | ip link set macvtap0 up | ||
+ | # Qemuは今のところ/ | ||
+ | # / | ||
+ | chown root:kvm / | ||
+ | chmod 660 / | ||
+ | |||
+ | Qemuのネットワークインターフェースのパラメータ | ||
+ | # Qemu側からはインターフェースを直接利用できないのでtapのファイルディスクリプタを指定する | ||
+ | # fd=3は適当な番号(3未満は標準入出力で利用されている?) | ||
+ | # / | ||
+ | -netdev tap, | ||
+ | | ||
+ | # macアドレスをHostのmacvtapインターフェースとゲストで一致させないと通信できない | ||
+ | # たぶん、物理NICを直接VMに接続するイメージなので、macアドレスが一致していないと通信できない | ||
+ | # macvtapを構成する際に指定してもよいが、自動的に付与されたものを利用する | ||
+ | # macvtapに割り当てられたmacアドレスは/ | ||
+ | -device virtio-net, | ||
+ | |||
+ | === tap + bridgeで構成する場合 === | ||
+ | |||
Guest用に使う物理NICを増設したので、Host側のNICはHost専用で利用する。HostとGuestが別のネットワークに接続されることを前提に、両者の通信用に内部でローカルネットワークを構成する。QEMUでuserモードのネットワークデバイスを使うこともできるが、Guest側からもHostの物理NICが接続しているネットワークに接続する可能性を考えて、Bridgeを用意する(nftablesなどでフォワード、マスカレードすることもできるが、設定が面倒なので使わないことにする)。 | Guest用に使う物理NICを増設したので、Host側のNICはHost専用で利用する。HostとGuestが別のネットワークに接続されることを前提に、両者の通信用に内部でローカルネットワークを構成する。QEMUでuserモードのネットワークデバイスを使うこともできるが、Guest側からもHostの物理NICが接続しているネットワークに接続する可能性を考えて、Bridgeを用意する(nftablesなどでフォワード、マスカレードすることもできるが、設定が面倒なので使わないことにする)。 | ||
行 117: | 行 164: | ||
-drive file=exam_vm_raw.img, | -drive file=exam_vm_raw.img, | ||
-boot c \ | -boot c \ | ||
- | -netdev tap, | + | -netdev tap, |
- | -netdev tap, | + | |
- | -monitor unix:/ | + | -netdev tap, |
+ | | ||
+ | -monitor unix:/ | ||
+ | -serial unix:/ | ||
-display none \ | -display none \ | ||
-daemonize \ | -daemonize \ | ||
行 158: | 行 208: | ||
* 上記コマンドにパイプでモニタコマンドを与えてやると直接モニタを操作できる。例えば「echo " | * 上記コマンドにパイプでモニタコマンドを与えてやると直接モニタを操作できる。例えば「echo " | ||
* telnetの場合は「-monitor telnet: | * telnetの場合は「-monitor telnet: | ||
+ | * -serial unix:/ | ||
+ | * LinuxやGrubのコンソールを出すためのシリアルポートを仮想マシン上に作成し、その出力をUNIXドメインソケットとして/ | ||
* -display none | * -display none | ||
* 本番でサーバ運用の場合はディスプレイは不要なのでnone。 | * 本番でサーバ運用の場合はディスプレイは不要なのでnone。 |
linux/kvm.txt · 最終更新: 2022/01/06 10:40 by Wiki Editor