KVMでVM立ち上げやバックアップをする


あらすじ

前回、「Packstackを使ってCentOS7.7にOpenstack SteinのAll in One環境を立ててみる」という記事を書いた時ですが、VMware Player上にCentOSを立ち上げOpenStackをインストールしました。
その後ですが、好き勝手にあれやこれやと設定を弄っているうちに、再起不能な状態になってしまいました。
バックアップを取りながら作業をしなかった自分が悪いのですが…。

定期的にバックアップを取ることと、qcow2ファイルでOSを管理したいという目的から、KVMを間に挟むことにしました。

今回はKVMを立ててqcow2ファイルのバックアップをとることを目的とします。

目次

  • 環境
  • KVM用CentOSのインストール作業
  • KVM操作

環境

前:Windows10(VMWare) → CentOS7(OpenStack)
後:Windows10(VMWare) → CentOS7(KVM) → CentOS7(OpenStack)

という構成にすることを考えました。

KVM用CentOSのインストール作業

VMwarePlayerの仮想マシン設定で、「Intel VT-x/EPTまたはAMD-V/RVIを仮想化」「CPUパフォーマンスカウンタを仮想化」の2つにチェックを入れます。

これを忘れるとKVM上でVMが動かないと思われます。
その他設定は今回はデフォルトで行いました。

CentOSのインストールに進みます。
CentOSのインストール時にソフトウェアを選択します。
KVMはGUIでの操作も考えます。サーバー(GUI使用)をベース環境として選び、仮想化クライアント、仮想化ハイパーバイザー、仮想化ツールのアドオンを選択しておきます。

これで、インストール直後からKVMの機能が使えます。

KVM操作

「アプリケーション」→「システムツール」→「仮想マシンマネージャ」でKVMを操作することができます。

マシンを新規作成する時は、いくつかの方法があります。

私はisoファイルをWinSCPで転送し、ローカルでインストールしました。

環境構成の設定は、ほとんどの内容は後から変えられるので、大まかな値でも構いません。
ストレージファイルは、フォーマットはqcow2を選択し、任意の場所と容量を選択します。

そのあとはまたインストール作業です。

インストールが完了したら、VMをシャットダウンさせます。

デフォルトだと、/var/lib/libvirt/imagesの配下に作成したqcow2ファイルがあります。

# ls
centos7.0.qcow2

これをコピーして、qcow2ファイルを他へ転送したり管理することができます。
とりあえず、また壊す前にバックアップを。

# cp -p centos7.0.qcow2 centos7.0.qcow2_bk1

VMが起動している状態だとファイルに書き込みが発生している場合があるので、ファイルに不整合が生じる可能性があります。

CUIでは、virshコマンドで操作をします。

# virsh list --all
 Id    名前                         状態
----------------------------------------------------
 -     centos7.0                      シャットオフ

virsh editで、マシン環境を編集することができます。
CPUやメモリ量の調整はここで行えます。ネットワークI/Fの数も増やすことができます。

# virsh edit centos7.0

  <domain type='kvm'>
   <name>centos7.0</name>
   <uuid>f09026ca-7060-4879-a22d-bc337c2cd074</uuid>
   <memory unit='KiB'>8290304</memory>
   <currentMemory unit='KiB'>8290304</currentMemory>
   <vcpu placement='static'>6</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>
   ~(略)~

/etc/libvirt/qemu配下には、初回にマシンを立ち上げるときに読み込むXMLファイルがあります。

# pwd;ls
/etc/libvirt/qemu
centos7.0.xml  centos7.0.xml_bk1  networks

こちらも念のためバックアップをとりました。
VM名や指定するqcow2ファイル、NWなどの内容を少し書き換え、UUIDやMACアドレスを消したxmlを用意し、virsh defineすることで似た構成のVMを作ることもできます。

これで、HOST・GUEST共にバックアップを取れる環境を作りました。
今後失敗することがあってもある程度は安心です。