「インストール - KVM」の版間の差分
208行目: | 208行目: | ||
* 他、多くのサブコマンドが用意されている。 | * 他、多くのサブコマンドが用意されている。 | ||
sudo virsh --help | sudo virsh --help | ||
<br><br> | |||
== 仮想マシンのバックアップおよび復元 == | |||
ここでは、仮想マシンが以下の情報に基づいているとする。<br> | |||
ドメイン名(仮想マシン名) : SUSE | |||
イメージ名 : SUSE.qcow2 | |||
設定ファイル(XML) : SUSE.xml | |||
バックアップ先 : /run/media/Storage1 (外付けSSD) | |||
<br> | |||
===== 仮想マシンのバックアップ ===== | |||
仮想マシンを停止する。 | |||
sudo virsh shutdown SUSE | |||
<br> | |||
設定ファイルをバックアップする。<br> | |||
sudo virsh dumpxml SUSE > /run/media/Storage1/SUSE.xml | |||
<br> | |||
仮想マシンのイメージをバックアップする。<br> | |||
sudo cp -p /<仮想マシンのイメージがあるディレクトリ>/SUSE.qcow2 /run/media/Storage1/. | |||
<br> | |||
===== 仮想マシンの復元===== | |||
運用しているSSDとは別のSSDで復元する。<br> | |||
ここでは、外付けSSDを/run/media/Storage1にマウントしている。<br> | |||
<br> | |||
バックアップした仮想マシンのイメージを復元する。<br> | |||
sudo cp -p /<仮想マシンのイメージをバックアップしたディレクトリ>/SUSE.qcow2 /<仮想マシンのイメージを保存するディレクトリ>/. | |||
<br> | |||
バックアップした設定ファイルを復元する。<br> | |||
sudo cp -p /run/media/Storage1/SUSE.xml /etc/libvirt/qemu/. | |||
<br> | |||
復元した設定ファイルをKVMに反映する。<br> | |||
sudo virsh define /etc/libvirt/qemu/SUSE.xml | |||
<br> | |||
バックアップに成功すると、以下のようなメッセージが出力される。<br> | |||
ドメイン SUSE が /etc/libvirt/qemu/SUSE.xml から定義されました | |||
<br> | |||
復元されたSUSEを起動する。<br> | |||
sudo virsh start SUSE | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:CentOS]][[カテゴリ:SUSE]] | [[カテゴリ:CentOS]][[カテゴリ:SUSE]] |
2020年7月2日 (木) 15:40時点における版
概要
ここでは、KVM(Kernel-based Virtual Machine)とQEMUのインストールと仮想マシンの設定方法を記載する。
搭載しているCPUが仮想化機構(Intel VTやAMD-V等)を備えている必要がある。
KVMとQEMUのインストール
KVMとQEMUをインストールする。
# CentOS sudo yum install qemu-kvm libvirt virt-install virt-manager # SUSE sudo zypper install qemu-kvm libvirt virt-install virt-manager
モジュールが読み込まれているか確認する。
lsmod | grep kvm
正常に読み込まれている場合は、以下のように表示される。
kvm_intel 241664 0 kvm 704512 1 kvm_intel irqbypass 16384 1 kvm
KVMを起動および自動起動する場合は、以下のコマンドを実行する。
sudo systemctl start libvirtd sudo systemctl enable libvirtd
仮想ネットワークの設定
CentOS
仮想マシンがブリッジ接続できるように、ブリッジネットワークを構成する。
ens2のインターフェース名の部分は環境によって異なるため、自身の環境に読み替えること。
ブリッジbr0を追加する。
nmcli connection add type bridge autoconnect yes con-name br0 ifname br0 Connection 'br0' (a7fa989a-798e-40ac-acc4-3d1733189b82) successfully added.
br0のIPアドレスを設定する。
nmcli connection modify br0 ipv4.addresses 10.0.0.30/24 ipv4.method manual
br0のゲートウェイを設定する。
nmcli connection modify br0 ipv4.gateway 10.0.0.1
br0のDNSを設定する。
nmcli connection modify br0 ipv4.dns 10.0.0.1
既存のインターフェースは一旦削除する。
nmcli connection del ens2
br0のメンバーとして再度追加する。
nmcli connection add type bridge-slave autoconnect yes con-name ens2 ifname ens2 master br0
CentOSを再起動する。
reboot
正常にbr0が起動しているか確認する。
ip a
SUSE
仮想マシンをブリッジ接続する場合は、NetworkManagerをwickedに変更して、ブリッジネットワークを構成する。
sudo mv /etc/sysconfig/network/ifcfg-eth0 /etc/sysconfig/network/ifcfg-br0 sudo vi /etc/sysconfig/network/ifcfg-br0
以下の内容を、/etc/sysconfig/network/ifcfg-br0ファイルに追記する。
# 最終行に追記 BRIDGE='yes' BRIDGE_FORWARDDELAY='0' BRIDGE_PORTS='eth0' BRIDGE_STP='off'
次に、以下の内容を、/etc/sysconfig/network/routesファイルに追記する。
sudo vi /etc/sysconfig/network/routes
# 最終行:br0のデフォルトゲートウェイを追記する default 192.168.1.1 - br0
wickedサービスを再起動する。
sudo systemctl restart wickedd wicked
正常にbr0が起動しているか確認する。
ip a
仮想マシンの作成(CLI)
仮想マシンをインストールして作成する。
ここでは、仮想マシンとしてSUSE Linxu Enterprise Server 15(以降、SUSEという)をインストールする。
取得したSUSEのisoファイルを/tmpディレクトリに配置して、テキストモードでインストールする。
コンソールからでもPutty等のエミュレータ経由からでも実行できる。
初期設定では、仮想マシンの保管場所(ストレージプール)は、/var/lib/libvirt/imagesディレクトリであるが、ここでは、別の場所に新たにストレージプールを作成して進める。
ストレージプールディレクトリの作成
まず、ストレージプールディレクトリを作成する。
sudo mkdir -p /var/kvm/images
仮想マシンの作成とインストール
sudo virt-install \ --name sle15 \ --ram 4096 \ --disk path=/var/kvm/images/sle15.img,size=30 \ --vcpus 2 \ --os-type linux \ --os-variant sle15 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location /tmp/SLE-15-Installer-DVD-x86_64-GM-DVD1.iso \ --extra-args 'console=ttyS0,115200n8 serial' Starting install... # インストールが開始される
上記の例で指定しているオプションの意味を以下に示す。その他多数のオプションは、man virt-install
で確認できる。
- --name
- 仮想マシンの名前を指定する。
- --ram
- 仮想マシンのメモリ容量を指定する。(単位は、M)
- --disk path=xxx ,size=xxx
- [path=]で仮想マシンのディスクの保管場所を指定する。(初期設定では、/var/lib/libvirt/imagesディレクトリ)
- [size=]で仮想マシンのディスク容量を指定する。(単位は、G)
- --vcpus
- 仮想マシンの仮想CPU数を指定する。
- --os-type
- 仮想マシンのOタイプを指定する。
- --os-variant
- 仮想マシンの種類を指定する。
osinfo-query os
で指定可能な種類を確認できる。
- --network
- 仮想マシンのネットワークタイプを指定する。
ここでは、仮想マシンにブリッジ接続させるため、--network bridge=br0
としている。
br0は、上記セクションの[仮想ネットワークの設定]で設定したブリッジインターフェースを指定している。
ホストがNICを複数持っていて、かつ、ブリッジインターフェースを複数設定しており、仮想マシンからも同様に複数のネットワークインターフェースを使用する場合は、改行して複数指定する。
- 仮想マシンのネットワークタイプを指定する。
- --graphics
- グラフィクスを指定する。
none
を指定するとグラフィックスを使用しない。
- グラフィクスを指定する。
- --console
- コンソールタイプを指定する。
- --location
- インストール元を指定する。
- --extra-args
- インストール時にカーネルに渡すパラメータを指定する。
インストーラ起動後は、CLIでインストール作業を進める。CLIもGUIと同様なのでインストール過程は省略する。
インストールが完了すると、一旦再起動がかかり、以下のようにターミナル上に仮想マシンのログインプロンプトが表示される。
Welcome to SUSE Linux Enterprise Server 15 (x86_64) - Kernel 4.12.14-25.25-default (ttyS0). eth0: 10.0.0.204 fe80::5054:ff:feff:cfce linux-6am4 login:
ホストと仮想マシンの切り替え
仮想マシン側からホスト側へのコンソールの切り替えは、[Ctrl]キー + []]キーである。
また、ホスト側から仮想マシン側へのコンソールの切り替えは、virsh console <仮想マシン名>]
と入力して実行する。
仮想マシンの複製
作成した仮想マシンは容易に複製できる。
sudo virt-clone --original sle15 --name template --file /var/kvm/images/template.img Allocating 'template.img' | 30 GB 00:00:02 Clone 'template' created successfully.
# ディスクイメージ ll /var/kvm/images/template.img -rw------- 1 root root 2835087360 Jan 18 19:09 /var/kvm/images/template.img
# 定義ファイル ll /etc/libvirt/qemu/template.xml -rw------- 1 root root 3681 Jan 18 11:09 /etc/libvirt/qemu/template.xml
仮想マシンの作成(GUI)
ここでは、GUIの操作で、仮想マシンを作成およびインストールする。
- ターミナルにて
sudo virt-manager
コマンドを実行して、Virtual Machine Managerを起動する。
左上のPCアイコンまたは[ファイル] - [新しい仮想マシンの作成]を選択して、新規仮想マシン作成ウィザードを開く。 - [新しい仮想マシン]画面が開くので、仮想マシンのインストール元を指定する。
インストールメディアまたはISOファイルとアーキテクチャを選択して、OSのタイプとバージョンを指定する。 - 仮想マシンのメモリ容量と仮想CPU数を指定する。
- 仮想ディスクの場所や容量を指定する。
- 仮想マシン名を入力する。また、これまでの設定内容を確認しておく。
- インストーラが起動するので、画面に従ってインストールする。
KVMの操作方法
Libvirtに含まれるVirshコマンドを使用した仮想マシンの操作方法を記載する。
- 仮想マシンを起動する。
sudo virsh start <仮想マシン名>
- 仮想マシンを起動して同時にコンソールに接続する。
sudo virsh start <仮想マシン名> --console
- 仮想マシンを停止する。
sudo virsh shutdown sle15
- 仮想マシンを強制停止
sudo virsh destroy sle15
- 仮想マシンをシステム起動時に自動起動の設定をする。
sudo virsh autostart sle15
- 仮想マシンの自動起動設定を解除する。
sudo virsh autostart --disable sle15
- 仮想マシンの一覧を表示する。
sudo virsh list
- 全ての仮想マシンを一覧を表示する。
sudo virsh list --all
- コンソールを切り替える。
- 仮想マシン側からホスト側へのコンソールの切り替えは、 [Ctrl]キー + []]キーである。
- ホスト側から仮想マシン側へのコンソールの切り替えは、
sudo virsh console <仮想マシン名>
コマンドを実行する。
- 他、多くのサブコマンドが用意されている。
sudo virsh --help
仮想マシンのバックアップおよび復元
ここでは、仮想マシンが以下の情報に基づいているとする。
ドメイン名(仮想マシン名) : SUSE イメージ名 : SUSE.qcow2 設定ファイル(XML) : SUSE.xml バックアップ先 : /run/media/Storage1 (外付けSSD)
仮想マシンのバックアップ
仮想マシンを停止する。
sudo virsh shutdown SUSE
設定ファイルをバックアップする。
sudo virsh dumpxml SUSE > /run/media/Storage1/SUSE.xml
仮想マシンのイメージをバックアップする。
sudo cp -p /<仮想マシンのイメージがあるディレクトリ>/SUSE.qcow2 /run/media/Storage1/.
仮想マシンの復元
運用しているSSDとは別のSSDで復元する。
ここでは、外付けSSDを/run/media/Storage1にマウントしている。
バックアップした仮想マシンのイメージを復元する。
sudo cp -p /<仮想マシンのイメージをバックアップしたディレクトリ>/SUSE.qcow2 /<仮想マシンのイメージを保存するディレクトリ>/.
バックアップした設定ファイルを復元する。
sudo cp -p /run/media/Storage1/SUSE.xml /etc/libvirt/qemu/.
復元した設定ファイルをKVMに反映する。
sudo virsh define /etc/libvirt/qemu/SUSE.xml
バックアップに成功すると、以下のようなメッセージが出力される。
ドメイン SUSE が /etc/libvirt/qemu/SUSE.xml から定義されました
復元されたSUSEを起動する。
sudo virsh start SUSE