仮想機械(virtual machine)を管理するための抽象化ライブラリ。 抽象化しているため、さまざまな仮想機械を制御できるAPIを提供している。現在は、XenとQEMUおよびKVMを制御することが出来る。 また、ライセンスとしては、LGPLで配布される。このため、Xenのパッケージに含まれるソースコードがすべてGPLになっているのにくらべ使いやすい。 また、コマンドラインとしては、virshも同梱されている。これは、Xenのパッケージでは、xmコマンドに相当する。
引用元: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 を利用している製品を先にお読みく…
引用元: linux-kvm.org はじめに LinuxでVMを作るにあたり、KVM (Kernel-based Virtual Machine) を使うことにしました。 ※使い始めた理由については、#(参考) KVMを使い始めた理由に書きました KVMを使ってみると、初期設定時に以下のようなもやもやに当たりました。 導入すべきパッケージがよくわからない (必須のもの、任意のもの、いくつかの選択肢から選ぶものが混在している) KVMの動作要件であるVT-x/AMD-Vが何なのかわからずもやもやする KVM周りのコンポーネントが色々あるが、それぞれ何をしているのかわからずもやもやする 本記事は…
ARMv8から仮想化支援機能が実装されているので、Raspberry Pi 3(Cortex-A53コア)以降はKVMが使用可能とのこと。前々から気になっていたlibvirtのお試しもかねて導入してみました。 HW準備 ラズパイは4まで出ていることはもちろん知っているんですが、昨今の半導体不足もあって入手できておらず。とりあえず家に転がっていた3で試します。 それから、せっかくの機会なのでUSBブートでSSDに置いたOSを起動してみます。今回はバッファロー製のものを使用しました。これも家に転がってた。 OSセットアップ Raspberry Pi OSは64bit版でないとKVM対応していない(…
このブログではKubeVirtについて何度か取り上げていました。 主にkubeadmでクラスターを作って、KubeVirtを導入する手順もご紹介しています。 tech.virtualtech.jp ちなみになぜKubeVirtを頻繁に取り上げるかというと、筆者がKubeVirtに個人的に興味があるからです。 さて今回はMinikubeを使って、KubeVirtの評価ができる環境づくりを試してみようと思います。 Minikubeを利用することにより、KubernetesでKVM VMを利用できるKubeVirtを手軽に試すことができます。 Minikubeで手軽にKubeVirtを利用できるよう…
登録日: 2022-06-05 更新日: 2022-06-12 RHEL クローンで、 最新の「Rocky Linux 8.6」をVirtualBox にインストールして、「Xfce」デスクトップ環境を追加 しました。 - 今回は、 「Rocky Linux」を仮想マシンのホストOS として使えるか、「GNOME Boxes」を使って、確認してみました。 その備忘録です。 - - 使用したPC は「ASUS Chromebox CN60 」で、プロセッサは第4世代の「Intel Celeron 2955U 」です。 「UEFI 立ち上げ」のPC です。 - (注)リンクを戻るときはブラウザの左…
自分はVagrantのProviderにはvagrant-libvirtを使っているのですが、気づくとやたらディスクを使っていることに気づきまして。 ちょっと調べてみると、/var/lib/libvirt/imagesが異様に巨大になっていました。 このディレクトリの中身を見るとわかるのですが、過去のBoxを大量に持っています。 -rwxr--r-- 1 libvirt-qemu kvm 1620508672 7月 22 2021 generic-VAGRANTSLASH-ubuntu2004_vagrant_box_image_3.3.0_box.img -rwxr--r-- 1 libvi…
達成したい目的。 LVM から ext4を取り出して、単独でブートするように作り直したい。 言い換えると ext4 単体で取り出したパーティションを起動するようにしたい。 ディスクイメージからパーティションを作り直したい。 パーティションのりサイズを手動でやりたい。 パーティションなんて、HDDの先頭にセクタ位置を書いてるだけだろ?とおもって調べたらやっぱりそうだった。 準備。 新規インストールで実験環境を整える。 サクッとインストールして、ext4 on LVM を用意する。 ext4 on LVM でインストールしたLinuxを仮想マシンで作成。 sudo virt-install \ -…
1. はじめに 1.1 KVM 2. インストール手順 2.1 仮想化をサポートしているか確かめる 2.2 KVM のインストール 2.3 Virtual Machine Manager 1. はじめに Nessus というツールについて気になることがあったので、その検証のため、仮想環境に実験環境を作ろうとしている。 その第一歩として、ここではUbuntu20.04にKVMを導入する。 1.1 KVM KVM (Kernel-based Virtual Machine) は、Linux に組み込まれた仮想化テクノロジーである。KVMを使用することで、ホストOS (Linux) 内に、複数のVM…
staic に割り当てたい lxbr0 でDHCPから割り当てられるが、固定したい時がある。 デバイスを割り当ててればい lxbr0 の割当をして、固定する。 lxc config device remove eth1 nginx lxc network attach lxdbr0 nginx eth1 eth1 lxc config device set nginx eth1 ipv4.address 10.185.93.4 内部だけどデバイスで割り当てるのは、完全な内部というより外部のブリッジにつなぐだけですね。 lxdbr0 以外にも接続できるなら、libvirt ネットワークやdock…
ansibleのモジュール一覧を見たいときは以下のコマンドを実行 ansible-doc -l または ansible-doc -l -j ちなみにRHEL8 EPEL版のAnsibleでは以下の様にでます。(まだ試してないけどciscoのランニングコンフィグも取れそうな予感) $ ansible-doc -l -j { "a10_server": "Manage A10 Networks AX/SoftAX/Thunder/vThunder devices' server object", "a10_server_axapi3": "Manage A10 Networks AX/SoftAX…
これは、なにをしたくて書いたもの? Linuxのホスト名の変え方を、ちゃんと見てきていなかったので、この機会にちょっと見ておきたいな、と。 hostnamectlかnmcli general hostnameのどちらかを使って変更するのが良いみたいですね。 環境 環境は、Ubuntu Linux 20.04 LTSを使って行います。Vagrantの以下のBoxを使用しました。Libvirt Providerです。 generic/ubuntu2004 確認時点での情報。 $ lsb_release -a No LSB modules are available. Distributor ID:…
やりたいこと Linuxで仮想マシンクラスタを組みたい。 候補 VMWare → 多分王道。ただ、ライセンスが気軽に遊べるお値段ではなさそう。 oVirt @ RHEL or CentOS → 良さそう。ただ、最新CPUを導入予定なので最新カーネルを使いたい気持ちがある。 libvirt(manager, Cockpit) @ Arch Linux → 使い慣れたArchでできたらいいなって。クラスタ化? Arch Linuxで検討 KVMベースでの仮想化は普通にできそう。クラスタ化が問題だが一旦目をつぶってクライアントOSのインストールまでやってみる。 複数ホストはTerraformでの監理…
お伝えしたいこと GNS3上に追加した仮想マシンをlibvirtの仮想ネットワークに接続する方法を紹介します。 仮想マシンは、必ずしもQEMU上で動作している必要はありません。 例えば、VPCSのような仮想マシンではないノードも含めてlibvirtの仮想ネットワークに接続し、DHCPでIPアドレスを付与したり、ホストマシンと通信させることが可能です。 libvirtネットワークに接続することで、ホストマシンからVMへのSSHや、VMからインターネットへのアクセスが可能となります。 お伝えしたいこと 前提条件 (参考) 前提知識 libvirtの仮想ネットワーク GNS3のCloud node …
お伝えしたいこと LinuxをGNS3上で動作させる手順を紹介します。 GNS3上でQEMUベースのLinux VMを登録する手順を扱います。 Linux上でGNS3 Serverを動作させる構成において役に立つと思います。 本記事は、ホストマシンがGNS3とKVM環境をセットアップ済みのLinuxであることを前提にしています。 KVMのセットアップ手順については、KVMの初期設定、及びvirsh, virt-installによるVM作成を参照してください。 お伝えしたいこと Linuxの準備 (参考) Linux VMの作成手順 (任意) シリアルコンソールへの対応 (参考) シリアルコンソ…
qcow2 backing ファイルで複数起動した場合について調べる 今回しらべた構成 d03 の仮想マシン作り、そのイメージから 2つの仮想マシンを差分として起動する。 d03 ─┬ d03.1 └─ d03.2 Backing-fileのBASEが更新されたとき、差分側はどうなるのか d03 の作成 virt-install\ --connect=qemu:///system \ --initrd-inject=/home/takuya/preseed.cfg \ --name d03 \ --ram 8192 \ --disk path=/var/lib/libvirt/images/d…
仮想マシンをシリアルコンソールで起動する Linuxへシリアルコンソールでターミナルを使って接続するには いくつかのポイントで使ってるオプションが違う ブート時点で動いてるモノが違うので、それぞれにシリアルコンソールの設定が必要 grubブート カーネル・ブート linux 起動後 インストール前にインストーラーを起動するとき ISOファイルで起動(grub ブート) カーネル直接起動 インストール後には linux 起動前 grubカーネルオプション指定 linux 起動後 agetty で待ち受けてログイン ということで。 大まかな流れ シリアルコンソールで「grub起動する」 シリアルを…
libvirt で仮想マシンをクローンする sudo virt-clone -o d02 -n d02.1 -f /var/lib/libvirt/images/d02.1.img 仮想マシンをコピーして新規作成する。(クローン) -o d02 元になる -n d02.1 コピー先の名前 -f FILE_NAME ディスクの名前 上記例は、ディスクを1つしか使ってない場合なので、複数ディスクの場合がどうなるかはあとで実験してみよう。 kvm / qemu で clone を実行した場合、 qcow2 ディスクから qcow2 ディスクができた。