仮想機械(virtual machine)を管理するための抽象化ライブラリ。 抽象化しているため、さまざまな仮想機械を制御できるAPIを提供している。現在は、XenとQEMUおよびKVMを制御することが出来る。 また、ライセンスとしては、LGPLで配布される。このため、Xenのパッケージに含まれるソースコードがすべてGPLになっているのにくらべ使いやすい。 また、コマンドラインとしては、virshも同梱されている。これは、Xenのパッケージでは、xmコマンドに相当する。
やりたいこと 対象 インストール 0. KVM の インストールと設定 LINUX Kernel の設定 1. 環境確認 2. kernel パラメータの調整 (IOMMU を有効化) 参考: オプションの種類を確認する方法 3. kernel モジュールのロード設定 4. grub へ反映 5. 再起動 KVM の設定 6. KVM の hook 設定 VM の設定と起動 7. UEFI 起動を可能にする 8. 対象の VM を設定する 9. GPU を VM に設定する 10. 対象のVMを起動する 参考文献 やりたいこと libvirt で仮想マシンを立てているが、GPU を使いたい 対…
1. Qemuを生で起動 1.1 libvirtからの起動を模擬したい場合 マスターキー Qemuモニター 仮想ネットワーク 1.2 とにかくQemuが使いたい場合 2. Qemuモニター 2.1 HMP (readline) 2.2 QMP (control) 2.3 libvirt配下のQemuに対するモニターコマンド 3. リモートからのvirt-manager 3.1 リモートでvirt-managerを動かす 3.2 リモートvirt-managerを使って、音声を聞く 4. ディスクイメージ操作 4.1 guestfish 4.2 LIO/tcmu-runner 5. その他小ネタ…
引用元:linux-kvm.org 前の記事 本記事では、KVMの初期設定が完了していることを前提としています。 初期設定手順に興味のある方は、以下の記事もご参照ください。 endy-tech.hatenablog.jp virt-manager、Cockpitのセットアップについては、以下の記事をご参照ください。 endy-tech.hatenablog.jp endy-tech.hatenablog.jp お伝えしたいこと KVMの基本操作をケース別に紹介します。 基本はCLIの手順紹介がメインです。 virt-managerとCockpitのスクリーンショットも載せていますが、今後画面の…
libvirtに備わっているネットワークフィルタ機能 (nwfilter) をVMに適用してみる。 libvirtの公式ドキュメントを参考に作業を進める。 nwfilterは(バックエンドがnftablesであっても)iptablesを使ってフィルタリングを行うので、まずはnwfilter未設定時のiptables設定を確認する。 # iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 161 14807 LIBVIRT…
KVMでLVMベースのストレージプールを作ってデフォルトにしてみる。 LVMベースのストレージプールは、基本的に(通常の方法では)シンプロビジョニングは使えないが、性能面では有利らしい。 一番最初に、LVMベースのストレージプールに対応しているか確認。 $ export LIBVIRT_DEFAULT_URI='qemu:///system' $ virsh pool-capabilities | grep "'logical' supported='yes'" <pool type='logical' supported='yes'> 次に、現在定義されているストレージプールを確認。 $ v…
KVMで稼働中のVMにディスクをオンラインで追加してみる。 ディスクのイメージファイルを作成してVMにアタッチする。 host$ dd if=/dev/zero of=vdb.img bs=1M seek=2048 count=0 host$ virsh attach-disk kvmdom --source $PWD/vdb.img --target vdb VM側でディスク追加を確認する。 host$ virsh console kvmdom kvmdom# fdisk -l /dev/vdb Disk /dev/vdb: 2 GiB, 2147483648 bytes, 4194304 …
KVMで最初のディスクドライブ以外からブートさせてみる。 libvirtのドキュメントを参考に、 対象VM(ここではkvmdom)のXMLファイルを書き換える。 $ virsh edit kvmdom <os> <type arch='x86_64' machine='pc-q35-4.2'>hvm</type> - <boot dev='hd'/> </os> ... <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='.../vdb.img'/> <target dev='vdb…
Internal error:Failed to initialize a valid firewall backend というエラーで仮想NATが起動しませんでした 前まではebtablesを入れることで治りましたが 最近公式リポジトリからebtablesが消滅したのでiptables-nftを入れてください sudo pacman -S --needed iptables-nft dnsmasq libvirtdを再起動してください sudo systemctl restart libvirtd https://superuser.com/questions/1063240/libvirt…
前の記事 KVMとlibvirtの初期設定、及びlibvirt CLI (virt-install, libvirt) について基本操作を紹介しました。 endy-tech.hatenablog.jp お伝えしたいこと Cockpit から QEMU+KVM を操作するための初期設定を紹介しつつ、イメージが湧きそうなスクリーンショットを貼りたいと思います。 Cockpit はわかりやすい画面構成なので、細かい使い方については説明不要かなと思います。 使い方で迷った場合は、libvirtの基本として前の記事を参照してみてください。 前の記事 お伝えしたいこと 前提 Cockpit のインストール…
引用元:linux-kvm.org 前の記事 前回はKVM, QEMU, libvirt の概要について紹介しました。 endy-tech.hatenablog.jp お伝えしたいこと 本記事では、KVM+QEMUによる仮想化システムのインストール手順と、libvirt CLI (virt-install, virsh) によるVM作成手順を紹介します。 その後、KVMが本当に正しく構成されているのかを確認する手順と、正しく構成されていなかった場合の対処法について紹介します。 libvirtベースのCLI/GUIツールの概要については、前の記事のlibvirt を利用している製品を先にお読みく…
virt-install コマンドを使用して、仮想マシンを作成し、ゲストOSをインストールします。 ゲストOSは、Ubuntu 22.04.4 server を使用します。 $ sudo virt-install \ --name ubuntu-2204-server \ --vcpus 1 --memory 2048 \ --cpu mode=host-passthrough \ --network network=default,model=virtio \ --location /path/to/ubuntu-22.04.4-live-server-amd64.iso,kernel=ca…
仮想化がサポートされていることを確認 ハードウェアがKVM仮想化をサポートされていることを確認 $ lscpu | grep Virtualization Virtualization: VT-x # 👈 VT-x or AMD-V 出力が空白の場合、BIOS/UEFIで無効になっている可能性があります。 カーネルにKVMモジュールが含まれていることを確認 yまたはmに設定されていれば利用できます。 $ zgrep CONFIG_KVM /boot/config-$(uname -r) CONFIG_KVM_GUEST=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_…
はじめに WindowsでVirtualboxを使って仮想環境を作成していたが、手間だったので、KVM/QEMUで簡易化ができるのではにないかと思い、実施する。 環境 Windows10(ホストOS) WSL2 Ubuntu 22.04.3 LTS(WSL2上) Ubuntu 22.04.3 LTS(KVM上) 構築 KVMのインストール KVMをインストールする $ sudo apt install -y libvirt-clients qemu-utils qemu-kvm libvirt-daemon libvirt-daemon-system 仮想環境が使用するイメージを作成 次に、c…
はじめに こちらの記事を参考にカーネルモジュール自作やってみます カーネルモジュール作成によるlinuxカーネル開発入門 - 第一回 hello world - 覚書 (hatenablog.com) 実行環境 こんな感じ $ uname -aLinux Ubuntu22 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux CPUの仮想化機能、BIOSの仮想化機能が有効になっているかの確認。 1つ目のコマンドは1以上になっ…
はじめに KVMでバックアップと復元を実行した。その備忘録として記載する。 環境 Ubuntu20.04.6 KVM 6.0 バックアップと復元の実行 vm-name という名前のVMを例に記載する。 バックアップ 仮想マシンの現在の設定をXMLファイルにダンプする。 $ virsh dumpxml vm-name > /var/lib/libvirt/backup/vm-name_backup.xml 仮想マシンのディスクイメージをバックアップする。 $ cp /var/lib/libvirt/images/vm-name.qcow2 /var/lib/libvirt/backup/ 復元 …
はじめに Ubuntu上のKVMを使って、新たにUbuntuの仮想マシンを立ててcloud-initで初期化する手順を記載します。 環境 Ubuntu20.04(ホストOS) Ubuntu20.04(ゲストOS) KVMはインスール済 環境構築手順 Cloud Imageをダウンロードする rootになり、ダウンロード先のフォルダを作成する $ sudo -i # mkdir -p /var/lib/libvirt/images # cd /var/lib/libvirt/images 次に Cloud Imageをダウンロードする。 バージョンの確認方法は次のリンクを参考に実施する。 ino…
Operation not permittedと表示されている方,Detailsを見てみるとlibvirt.libvirtError: internal error: Unable to add port vnet13 to OVS bridge ovsbr0のような出力がありませんか? sudo cat /var/log/*.log | grep ovsと叩いたときにapparmor="DENIED"と表示されていれば,apparmorが弾いています. 以下の記事の要領で無効化すれば無事起動してくれるようになります. tamasan238.hatenablog.com
先日、VMwareでCentOS7の仮想マシンを作成した後に、ステータスをチェックしていたらIPアドレスが2つあるように表示されていました。 そのアドレスは、virbr0に振られていて、192.168.~始まるアドレス。以下は実機で確認したifconfigの結果です。 ---[root@CentOS74 ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.9.131 netmask 255.255.255.0 broadcast 192.168.9.255ether 00:0c:2…
以下のインストールするためのシェルスクリプトを作成する。 vim create-vpn2.sh #!/bin/bash VMNAME=vpn2 IMAGE_FILE=/var/lib/libvirt/images/${VMNAME}.qcow2 CIDATA_FILE=$PWD/cidata-${VMNAME}.iso if [ ! -r $CIDATA_FILE ]; then echo "error: $CIDATA_FILE not found" exit 1 fi if [ ! -r $IMAGE_FILE ]; then echo "error: $IMAGE_FILE not fo…
登録日: 2023-12-12 更新日: 2024-03-14 「Xubuntu 22.04 LTS」および「Windows11」(22H2) の「VirtualBox 7.0」の仮想マシンに、色々なLinux ディストリビューションをインストールして、自分に最適なものはないか試しています。 開発環境では、それらの仮想マシン(ボックス)の管理に「Vagrant」(ベイグラント) というツールが、よく使われています。 - (実践編1): 今回は「Xubuntu 22.04.3 LTS」の「VirtualBox 7.0.10」にて、「Vagrant」を使えるようにした後に、 「Vagrant」で実…
これは天久保 Advent Calendar 2023の6日目の記事です(遅刻。 天久保には居住していませんが「天久保」は町域とは関係ありませんので書きます。 Linux Gaming とその方法 Linux 環境でゲームをプレイすることは「どのように Linux 上で Windows のプログラムを動作させるか?」という問題と同じと言ってもよいでしょう *1。 なぜならほとんどの PC 向けのゲームは Windows のみにしかリリースされないからです *2。 この互換性問題を解決するため、大きく分けて2つのアプローチが存在します。 *1:これは Windows ではない環境全て、例えば m…
登録日: 2023-12-01 更新日: 2024-03-14 「Xubuntu 22.04 LTS」および「Windows11」(22H2) の「VirtualBox 7.0」の仮想マシンに、色々なLinux ディストリビューションをインストールして、自分に最適なものはないか試しています。 それらの仮想マシン(ボックス)の管理で手間を減らすツールとして、開発環境では「Vagrant」(ベイグラント) というソフトがよく使われるようです。 - 「Vagrant」について学ぶため、色々と作業時に参考にできそうな項目を書き出しました。 確認が不十分だし勘違いもありそうです。 確認が取れたらその都度…
Red Hat のテクニカルサポートエンジニアの田中です。 ここしばらくのバージョンの Red Hat OpenStack Platform(以降 RHOSP)では Director を使用して OpenStack クラスタをデプロイします。 Director は Upstream では TripleO(OpenStack-On-OpenStack)と呼ばれており、まずアンダークラウドと呼ばれる1台構成の OpenStack クラスタを作り、アンダークラウドの Heat や Ironic、Neutron といった機能と Ansible/Puppet などの構成管理ツールを活用してオーバークラウ…
※2023年12月8日追記 記事タイトルに番号を振りました。 OpenShift Virtualization ( Kubevirt ) でVM管理もCloud Nativeに (1) <= 本記事 OpenShift Virtualization ( Kubevirt ) でVM管理もCloud Nativeに (2) こんにちは、Red Hatでソリューションアーキテクトをしている石川です。 今回はOpenShift上でVMを構築し管理するOpenShift Virtualizationについて紹介したいと思います。 OpenShift VirtualizationはOSSのKubevir…
はじめに pocketに記事を突っ込んで入るけど突っ込みっぱなしになっていることが多いのでアーカイブ作業がてらブログにも何か残しておこうと思う。別にハイライト機能を使って線を引いてコメントを書いてもいいけどなんとなくオンラインの媒体に残しておくのが気が引き締まっていいんじゃないかと勝手に思っている アーカイブ https://kumagi.hatenablog.com/entry/write-beautiful-code リポジトリ内にメモ帳としてのマークダウンの断片的なファイルを用意しておいて、コードからドキュメントへのリンクを貼っておく まとまりや関連があるものはまとめるなり参照なりしてお…