user@HOST:/etc$ cat fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda1 during installation UUID=066a8ceb-edaa-4a40-90ec-b809e327d66e / ext4 errors=remount-ro 0 1 # swap was on /dev/sda2 during installation UUID=670bb0b3-26fd-42fc-b61b-36d20b76c2bf none swap sw 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 user@HOST:/etc$
Xen環境domUの構築
作成日 | : | 2016/07/23 |
---|---|---|
最終更新日 | : | 2020/07/05 |
Xen環境domUの構築
作成日 | : | 2016/07/23 |
---|---|---|
最終更新日 | : | 2020/07/05 |
概要
先日作成したXen環境にdomUを追加します。
fstab
今回はsda3にディスクイメージを作成して使用することにします。 sda3は/usr/local/xen/smallにmountすることにします。
起動時に自動的にmountするために/etc/fstabに情報を記述します。 fstabを確認すると、以下のようになっていました。
デバイスファイルを記述するのではなく、UUIDを指定するようです。 UUIDを調べるにはblkidコマンドを使用します。 以下のコマンドを発行してsda3のUUIDを調べます。
$ sudo blkid /dev/sda3 /dev/sda3: UUID="c151299c-11fd-4655-8c98-729de8ab134c" TYPE="ext4" PARTUUID="90909090-03" $
得られた情報を元にfstabの末尾に追記します。 今回は以下のように追記しました。
# /usr/local/xen/small on /dev/sda3 UUID=c151299c-11fd-4655-8c98-729de8ab134c /usr/local/xen/small ext4 errors=remount-ro 0 0
ディレクトリが無いので、ディレクトリを作成します。
sudo mkdir /usr/local/xen sudo mkdir /usr/local/xen/small
なお、手動でmountするには以下のコマンドを発行します。
sudo mount UUID=c151299c-11fd-4655-8c98-729de8ab134c /usr/local/xen/small
設定完了後再起動します。
sudo reboot
自動でmountされていることをdfコマンドを発行して確認します。
df Filesystem 1K-blocks Used Available Use% Mounted on udev 144540 0 144540 0% /dev tmpfs 32744 2016 30728 7% /run /dev/sda1 20511356 2329104 17117292 12% / tmpfs 163700 0 163700 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 163700 0 163700 0% /sys/fs/cgroup /dev/sda3 41153856 49032 38991288 1% /usr/local/xen/small tmpfs 32744 0 32744 0% /run/user/1000
domUの構築
今回、domUはHDDイメージファイル上に構築することにします。
VMの計画
今回は以下のサイズで生成することにします。
ファイル名 | サイズ | 用途 |
---|---|---|
usr/local/xen/small/sda1.img | 10GB | / |
HDDイメージの生成
以下のコマンドを発行し、HDDイメージを作成します。
cd /usr/local/xen/small sudo dd if=/dev/zero of=./sda1.img bs=4M count=1 seek=2560
domUの設定ファイルの作成
OSのインストール用にdomUの設定ファイルを作成します。 今回はUbuntu 16.04をネットワークインストールしました。 Xen用のカーネルなどが公開されているのでそれを用いてinstallします。
OSのインストールに用いた設定ファイルをリンクします。
domUへのOSのインストール
以下のコマンドを発行しdomUを生成します。 -cオプションを付与するとターミナルがdomUのシリアルコンソールに 接続されます。
sudo xl create -c ./ubuntu-16_04_install.cfg
この状態で、テキストベースのインストーラが起動するのでOSの インストールをします。
domUの停止
OSのインストールが完了するとdomUのシリアルコンソールから抜けます。 この時点でdomUはまだ起動しているので、以下のコマンドを発行して終了 します。
sudo xl shutdown ubuntu-16_04
domUの起動
domUを以下のコマンドを発行してdomUを起動します。 設定ファイルを変更してインストールした環境に入れるようにします。
sudo xl create -c ./ubuntu-16_04.cfg
起動したら、通常のサーバーと同じように環境設定を行います。
エラー対策
以下のログが出力され、domUを起動できませんでした。
[Errno 28] No space left on device Error writing temporary copy of ramdisk libxl: error: libxl_bootloader.c:637:bootloader_finished: bootloader failed - consult logfile /var/log/xen/bootloader.4.log libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: bootloader [7590] exited with error status 1 libxl: error: libxl_create.c:1144:domcreate_rebuild_done: cannot (re-)build domain: -3 libxl: error: libxl.c:1610:libxl__destroy_domid: non-existant domain 4 libxl: error: libxl.c:1568:domain_destroy_callback: unable to destroy guest with domid 4 libxl: error: libxl.c:1495:domain_destroy_cb: destruction of domain 4 failed
どうやら、/runが置かれているtmpfsのサイズが小さいようなので 以下のコマンドを発行し増やしました。domUを数多く立ち上げる 場合にはもっとサイズを大きくする必要がありそうです。
sudo mount -t tmpfs tmpfs /run -o size=100M,mode=1777,remount