Ubuntu Weekly Recipe

第226回 LXCで軽量仮想環境の活用

この記事を読むのに必要な時間:およそ 3 分

特殊な環境を作る

前述のテンプレートを流用すれば,VineやScientific Linuxといった他のLinuxディストリビューションの環境も構築できます。それ以外にも,いくつか特殊な環境の構築方法があるので,ここで紹介しておきます。

既存の環境を流用して一時的な実行環境を作る

lxc-start-ephemeralコマンドを使えば,作成済みの環境を流用して起動し,シャットダウン時に起動後に加えた変更をすべて破棄するような,一時的な実行環境を生成できます。

$ sudo lxc-start-ephemeral -n precise
(ゲストに何がしかの変更を加える)
$ sudo lxc-stop -n precise
(上記で加えた変更点は破棄される)

ARMの実行環境を作る

Ubuntu 12.04 LTSでは,マルチアーキテクチャのサポートが充実したために,LXCを使ってx86マシン上にARM環境を簡単に構築できるようになりました。環境の構築方法は,テンプレートに"-a"オプションでアーキテクチャ(今回はarmhf)を指定するだけです。

$ sudo apt-get install qemu-user-static
$ sudo lxc-create -n armhf -t ubuntu -- -a armhf
$ sudo lxc-start -n armhf

qemu-user-staticパッケージをインストールしていることからわかるように,内部ではQEMUのユーザーモードエミュレーションを使って実行しているだけです。このため,速度はほとんど出ません。

便利な使い方

設定を変更する

LXCは構築時のオプションや設定ファイルを変更することで,さらに便利な使い方ができます。設定は主に次の4つの方法があります。

  • - lxc-create時に設定される,/etc/default/lxcを編集する
  • - lxc-start時に設定される,/etx/lxc/lxc.confを編集する
  • - lxc-start時にゲスト固有で設定される,/var/lib/lxc/ゲスト名/configを編集する
  • - lxc-start時にオプションで指定する

最後の設定方法は次のように-sオプションを使います。

$ sudo lxc-start -n precise -s lxc.network.ipv4=10.0.3.5/24

他の設定については,man lxc.fonfやUbuntuのドキュメントを参照してください。

LVMを使う

lxc-createはファイルシステムを「/var/lib/lxc/仮想環境名/rootfs」以下に作成しますが,"-B"オプションを使えばLVMのボリュームに変更することが可能です。

$ sudo lxc-create -t ubuntu -n precise -B lvm --vgname VolGroup00 --fssize 5G

上記の場合,VolGroup00のグループに仮想環境名と同じな前の論理ボリュームを,サイズ5GB,ファイルシステムext4で作成した上で,そこにルートファイルシステムを構築します。

仮想環境の複製やバックアップ,レストア

仮想環境一式を別の名前で複製する場合は,lxc-cloneを使います。

$ sudo lxc-clone -o precise -n precise2

LVMを使っている場合は,-vや-Lオプションを併用してください。

仮想環境のファイルシステムだけをバックアップするなら,lxc-backupコマンドがあります。

$ sudo lxc-backup precise

-nオプションは「つけない」ことに注意してください。これにより「/var/lib/lxc/仮想環境名/rootfs.backup数字」が生成されます。レストアする場合は,次のコマンドです。

$ sudo lxc-restore precise 数字

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。