Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

kvm

Backing Fileを持つqcow2イメージを単体のqcow2ファイルにする

Backing Fileを持つqcow2ファイル(差分)を、Backing Fileとマージして一つのファイルにする方法についてのメモ。

Backing FileをA.qcow2, 差分ファイルをB.qcow2とします。単純に差分BをAにマージしたいだけなら

# qemu-img commit B.qcow2

でよいですが、これだとBacking File(ベースとなるイメージ)にBの内容がマージされるため、A自体が書き換わってしまいます。

そのため、BのBacking FileをAからCに変更後、commitします。

まずは、AをCとしてコピーします。

# cp A.qcow2 C.qcow2

BのBacking FileをAからCに変更します。

# qemu-img rebase -b C.qcow2 B.qcow2

変更後、commit します。

# qemu-img commit B.qcow2

これで、C.qcow2 に B.qcow2の内容がマージされますので C.qcow2 を単体のqcow2ファイルとして利用できます。

uvtoolで簡単にクラウドイメージ取得・起動@Ubuntu 14.04 LTS

Ubuntuのサイトにいろいろとクラウド用のイメージがありますが、uvtoolというツールを使うと、これらを簡単に利用できるようなのでやってみました。環境は、Ubuntu 14.04 LTS Desktop版で、作業はrootで実施しています。

まずは、ツールのインストール。KVM関連のパッケージも一緒にインストールされます。 ※ この時に、libvirt グループが作成され、sudoユーザが自動的にlibvirtグループに追加されるため、sudo 可能な一般ユーザでuvtoolを使用する場合は、一旦ログアウトする必要があります。

# apt install uvtool
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  augeas-lenses cgroup-lite cloud-image-utils cpu-checker distro-info
  distro-info-data ebtables euca2ools gawk ipxe-qemu libaio1 libaugeas0
  libboost-thread1.54.0 libfdt1 libnetcf1 librados2 librbd1 libsdl1.2debian
  libseccomp2 libsigsegv2 libusbredirparser1 libvirt-bin libvirt0 libxen-4.4
  libxenstore3.0 libxml2-utils libyaml-0-2 msr-tools python-boto
  python-distro-info python-libvirt python-pyinotify python-requestbuilder
  python-setuptools python-simplestreams python-yaml qemu-keymaps qemu-kvm
  qemu-system-common qemu-system-x86 qemu-utils seabios sharutils socat
  ubuntu-cloudimage-keyring uvtool-libvirt
提案パッケージ:
  augeas-doc shunit2 gawk-doc augeas-tools radvd lvm2 python-pyinotify-doc
  samba vde2 sgabios kvm-ipxe-precise debootstrap bsd-mailx mailx
以下のパッケージが新たにインストールされます:
  augeas-lenses cgroup-lite cloud-image-utils cpu-checker distro-info
  distro-info-data ebtables euca2ools gawk ipxe-qemu libaio1 libaugeas0
  libboost-thread1.54.0 libfdt1 libnetcf1 librados2 librbd1 libsdl1.2debian
  libseccomp2 libsigsegv2 libusbredirparser1 libvirt-bin libvirt0 libxen-4.4
  libxenstore3.0 libxml2-utils libyaml-0-2 msr-tools python-boto
  python-distro-info python-libvirt python-pyinotify python-requestbuilder
  python-setuptools python-simplestreams python-yaml qemu-keymaps qemu-kvm
  qemu-system-common qemu-system-x86 qemu-utils seabios sharutils socat
  ubuntu-cloudimage-keyring uvtool uvtool-libvirt
アップグレード: 0 個、新規インストール: 47 個、削除: 0 個、保留: 2 個。
11.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 58.5 MB のディスク容量が消費されます。

 

次に、クラウド用のイメージをコマンドを使ってダウンロードします。すべてダウンロードすると時間がかかるため、必要な物を指定してダウンロードします。以下では、amd64 の 14.04 LTS (Trusty) をダウンロードしています。ここからは仮想マシンを使う一般ユーザで実施します。

$ uvt-simplestreams-libvirt sync release=trusty arch=amd64

 

これを実行すると、一時的に /tmp 領域にファイルがダウンロードされ、ダウンロード完了後、/var/lib/uvtool/images ディレクトリに移動されます。また、/usr/share/uvtool/libvirt/ には、VM起動に使うための設定ファイル(xml)のテンプレートが置かれますので、これを修正すれば、作成するVMの構成を変更することもできそうです。

VMを起動した後にsshログインできるように、sshキーを作成していない場合は作成しておきます。ここで作成した ~/.ssh/id_rsa.pub が自動的にVMに挿入されます。

$ ssh-keygen -t rsa

 

では、実際にダウンロードしたイメージからVMを作成してみます。

$ uvt-kvm create hana release=trusty

 

すべて、libvirtライブラリを使っているので、virt-managerを使えば、作成したVMを見ることも可能です。

uvt-virt-manager

もちろん、virshコマンドも使えます。

$ virsh list
 Id 名前 状態
----------------------------------------------------
 4 hana 実行中

 

IPを調べてSSHログインしてもよいですが、ツールを使えばsshで簡単にログインもできます。

$ uvt-kvm ssh hana --insecure

 

参考 : uvtoolでKVM/libvirt向け仮想マシンをお手軽に構築する

KVMのコンソールに接続する@RHEL6 on Fedora14 KVM

KVM上で仮想OSを動かしている場合、コンソールに接続するには、少し設定を変更する必要があります。

ここではゲストOSにRHEL6を使っている場合の設定方法を紹介します。

まず、通常通り仮想OSを起動し、ssh等でログインします。そして、grub.confを以下のように、serialとterminalの行を追加し、kernelの行にconsoleからを追加します。

# vi /boot/grub/grub.conf
~ 省略 ~
hiddenmenu
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
title ・・・・
kernel /vmlinuz-2.6.32-71.29.1.el6.x86_64 ro root=UUID=88f55e81-83b9-406c-b9f6-d10f52d309ff
 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd    _NO_DM LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106
 crashkernel=auto rhgb quiet console=tty0 console=ttyS0,115200n

で、仮想OSを再起動するだけです。

あとは、ホストOS上で、

# virsh console  KVMゲスト名

とすれば接続できます。シリアルコンソールから抜けるには、Ctrl + ]  です。

Oprofile @ RHEL5.5 on KVM

システムのプロファイルに役に立つOpfofileですが、KVM上でOprofileを実行しても、CPUのカウンタが利用できないため、通常何も取得できません。

こういうときは、opfofile 使用前にモジュールのオプションで、

# modprobe oprofile timer=1

としてあげると、取得できるようです。

すでにモジュールが動いている場合は、

# opcontrol --deinit

で停止させることができます。

KVMを使ってみる@CentOS 5.4

RHEL 5.4からKVMが使えるようになり、それに伴いCentOS 5.4でも使えるようになりました。Xenは使ったことがあるのですが、KVMは使ったことなかったので早速使ってみました。

前提ですが、 CentOSは仮想化のパッケージをインストールしておきます。

Gnomeのメニューのアプリケーション→システムツール から 仮想マシンマネージャ(virt-manager)を起動します。localhostというのがありますので、これを右クリックして、新規を選択します。

monitor01.jpg

後は、ウィザード(ほぼ英語)に従って仮想マシン(ゲストOS)を作成していくだけです。いくつかマシン作成でのポイントを書いておきます。

  • CPUには仮想化に対応した機能(AMD-V や Intel-VT)が必要。 (だと思う)
  • 完全仮想化しかない。
  • ホストがx86_64の場合ゲストOSは32bit, 64bitどちらでも動作可能。
  • OSインストールはDVD/CD-ROMドライブやISOイメージを使用可能。
  • ゲストOSは、ファイルとして保存もできるしパーティションを直接使用することも可能。
  • マシン作成時に、ゲストOSがWindowsなのかLinuxなのかSolarisなのかといった選択項目が出てくるが、選んだ場合にKVMの何の設定が変わるかは未調査。

試しにWindows7の64bit版をインストールしてみた。

が、、、、IntelのCPUは動くらしいが、AMDは動かないとか・・・・ インストーラーが途中で止まりました orz

ちなみにVmware 上では動きました。

このブログについて
プライバシーポリシー・お問い合わせ等
購読する(RSS)
記事検索
アーカイブ
カテゴリー
  • ライブドアブログ