デバイス | サイズ | タイプ | 用途 |
---|---|---|---|
/dev/sda1 | 20GB | Linux | dom0環境用 |
/dev/sda2 | 2GB | swap | dom0用swap |
/dev/sda3 | 40GB | Linux | domU用 |
/dev/sda4 | 拡張領域 | ||
/dev/sda5 | 40GB | Linux | domU用 |
/dev/sda6 | 40GB | Linux | domU用 |
/dev/sda7 | 80GB | Linux | domU用 |
/dev/sda8 | 80GB | Linux | domU用 |
/dev/sda9 | 残り | Linux | 共用 |
Xen環境dom0の構築
作成日 | : | 2016/07/10 |
---|---|---|
最終更新日 | : | 2020/07/05 |
Xen環境dom0の構築
作成日 | : | 2016/07/10 |
---|---|---|
最終更新日 | : | 2020/07/05 |
概要
子供用のPC(とはいってもRaspberry Piですが)を設置するにあたり自宅のネットワークの見直しをしつつサーバー環境をメンテナンスすることにしました。 サーバー環境は仮想化していますが、以下の順番で変遷してきました。
- PC実機数台構成
- FreeBSD jailによる仮想化
- VirtualBoxによる仮想化
今回、Xenを導入してみることにしました。 必要があれば、Xenの上でVirtualBoxを動かしたり、FreeBSD jailによる仮想化をおこないたいと考えています。
Xenとは
Xenはハイパーバイザ型の仮想化環境です。 準仮想化も完全仮想化も可能です。
Xenの管理用に導入するOSをdom0と呼び、Xenに導入するゲストOSをdomUと呼びます。
dom0
今回、dom0はUbuntu Serverを選定しました。
Interop Tokyo 2016でマーク・シャトルワース氏の基調講演を聴講したところ、Ubuntuがクラウド上で採用されるOSで70%のシェアを獲得しているようです。 サーバー環境も数年に1度再構築しているので、LTSな16.04を用いれば、Ubuntu Serverを選択しても特に問題はなさそうに感じています。
HDDのフォーマット
UbuntuでXenを利用する場合、HDDをGPT+UEFIでパーティションを作成してはいけません。 これはリリースノートにも記載されています。
Ubuntu ServerをそのままインストールするとGPT+UEFIでパーティションを切るので、 Ubuntuのインストールメディアを使用して先にHDDのパーティションを切ります。
今回、1TBのHDDを使用するので以下のように切ることにします。
パーティションを切り終えたら再起動し、Ubuntu Serverのインストールメディアに入れ替え起動します。
Ubuntu Server 16.04のインストール
言語選択
言語選択が出ます。 今回はサーバー用途で使用するのでEnglishを選択します。
F3キーを押下し、Keymapの選択を呼び出します。 Japaneseを選択します。
必要に応じて他のオプションを変更します。 上記以外はそのままで問題ないかと思います。
Install Ubuntu Serverを選択します。
Select a language
言語設定の画面が開きます。 先ほどと同じく英語を選択します。
Select your location
地域の設定をします。 表示されている項目にないのでotherを選択します。 Asiaを選択します。 Japanを選択します。
Configure locales
システムのデフォルトの言語設定をします。 United States - en_US.UTF-8のままで良いかと思います。 エラーメッセージの調査をするときに英語で出力されるほうが情報を集めやすいので、 日本語にしないほうが良いかと思います。
その後、一見ハングアップしたような状態になりますがハングアップしたわけではないので根気よく待ちます。
Counfiguration the network
ホスト名の設定をします。 サーバー機のホスト名を入力してEnterキーを押します。
Set up users and passwords
サーバー機にログインするためのユーザ名のFull nameを入力します。 ユーザー名を入力します。 パスワードを入力します。 パスワードを再入力します。 homeディレクトリを暗号化するか聞かれるので No を選択します。
Configure the clock
タイムゾーンを確認されます。 Asia/Tokyoで良いか聞かれるので Yes を選択します。
Partition disks
パーティションの設定をします。 既にパーティションは作成しているのでManualを選択し手動で設定します。 各パーティションはフォーマットしていないのですべてフォーマットしていきます。
#N(Nは任意の整数)の行を選択します。 それぞれ、以下のように設定します。 設定が終わったら Go Back を選択します。
- #1
- Use as
- Ext4 journaling file system
- Mount point
- /
- Bootable flag
- on
- Use as
- #2
- Use as
- swap area
- Use as
- #3
- Use as
- Ext4 journaling file system
- Use as
- #5
- Use as
- Ext4 journaling file system
- Use as
- #6
- Use as
- Ext4 journaling file system
- Use as
- #7
- Use as
- Ext4 journaling file system
- Use as
- #8
- Use as
- Ext4 journaling file system
- Use as
- #9
- Use as
- Ext4 journaling file system
- Use as
完了したら、Finish partitioning and write change to diskを選択します。 #3から#9についてはmount pointの設定をしていないので警告がでますが、Noを選択します。
確認画面が出力されるのでYesを選択し、パーティションテーブルを確定します。 その後、インストールが開始されます。
Configure the package manager
HTTPプロキシの設定をします 。 HTTPプロキシを使用する場合は指示されたフォーマットに従って設定します。 HTTPプロキシを使用しない場合は空欄のままcontinueを選択します。
Configuring tasksel
自動アップデートの設定をします。 それぞれ意味は以下になります。
- No automatic update
- 自動アップデートしない
- Install security updates automatically
- セキュリティアップデートを自動的にする
- Manage system with Landscape
- Landscapeを使用する
サーバー管理者としては意図しないアップデートが行われないようNo automatic updateを 選択すべきかと思いますが、自宅サーバーなのでメンテナンスの手間を省くためにInstall security updates automaticallyを選択することにします。
Software selection
サーバーにインストールするソフトウェアを選択します。 現段階ではOpenSSH serverを追加するに留めます。
OpenSSHの行を選択し、Spaceキーを押すと行頭にがつきます。 この時点でstandard system utilitiesとOpenSSH serverにがついているかと思います。 確認後Continueを選択します。
Install the GRUB boot loader on a hard disk
ブートローダーであるGRUBをMBRにインストールして良いか聞かれます。 今回、MBRにインストールするのでYESを選択します。
Finish the installation
インストールが完了しインストールメディアが排出されます。 インストールメディアを抜き取り、Continueを選択すると再起動します。
初期設定
特に問題がなければ、Ubuntuが起動します。 ログインプロンプトが表示されるので、設定したユーザ名でログインします。
ソフトウェアの更新
以下のコマンドを発行してソフトウェアを更新します。
sudo apt-get update sudo apt-get upgrade
後ろのコマンドを発行すると処理を続けてよいか聞かれるのでYを選択します。 インストール完了後、一旦再起動します。
sudo reboot
ホスト名の変更
/etc/hostname を変更します。
sudo vi /etc/hostname
また、/etc/hosts の現在のホスト名が書かれている箇所を変更したいホスト名に修正します。
sudo vi /etc/hosts
設定完了後再起動します。
sudo reboot
固定アドレスの設定
Ubuntu serverをインストールすると、標準状態ではDHCPで動的にIPアドレスを取得する設定になります。サーバー機として使用する場合には静的にIPアドレスを指定し、固定するほうが使い勝手が良いので設定を変更します。
/etc/network/interfaces を変更します。設定変更前に元のファイルを複製しておきます。 今回設定変更するインタフェースはenp2s0になります。
sudo cp /etc/network/interfaces /etc/network/interfaces.org sudo vi /etc/network/interfaces
例えば、以下のように書き換えます。
auto enp2s0 iface enp2s0 inet static address IPアドレス network ネットワークアドレス netmask サブネットマスク broadcast ブロードキャストアドレス gateway ゲートウェイのIPアドレス
設定を変更したら以下のコマンドでIPアドレスの変更を適用します。
sudo service networking restart
ifconfigで設定変更を確認します。
user@HOST:~$ ifconfig enp2s0 enp2s0 Link encap:Ethernet HWaddr QQ:QQ:QQ:QQ:QQ:QQ inet addr:XXX.XXX.XXX.XXX Bcast:YYY.YYY.YYY.YYY Mask:ZZZ.ZZZ.ZZZ.ZZZ inet6 addr: fe80::TTTT:TTTT:TTTT:TTTT/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1315 errors:0 dropped:0 overruns:0 frame:0 TX packets:915 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:122176 (122.1 KB) TX bytes:156504 (156.5 KB) user@HOST:~$
IPアドレスを静的に指定した場合にはDNSサーバーも静的に設定します。 /etc/resolvconf/resolv.conf.d/baseを編集します。
sudo cp /etc/resolvconf/resolv.conf.d/base /etc/resolvconf/resolv.conf.d/base.org sudo vi /etc/resolvconf/resolv.conf.d/base
/etc/resolvconf/resolv.conf.d/baseの中身は空のはずなので以下の様に記述します。
nameserver DNSサーバーのIPアドレス
設定を変更したら以下のコマンドでDNSサーバーの変更を適用します。
sudo service networking restart
DNSサーバーの設定ファイルを確認し設定が変更されたか確認します。
user@HOST:~$ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver XXX.XXX.XXX.XXX user@HOST:~$
Xenのインストール
初期設定が完了したら、以下のコマンドを発行してXenをインストールします。
sudo apt-get install xen-hypervisor
続いて、/etc/default/grubを編集してdom0に割り当てるメモリを設定します。
sudo cp /etc/default/grub.d/xen.cfg /etc/default/grub.d/xen.cfg.org sudo vi /etc/default/grub.d/xen.cfg
例えば、以下のように書き換えます。今回はdom0に512MBのメモリを割り当てることにします。 GRUB_CMDLINE_XEN_DEFAULTは#でコメントアウトされているので、#を削除して値を記述します。
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=512M"
設定を変更したら以下のコマンドでブートローダであるGRUBの設定変更を適用します。
sudo update-gurb
終了時にdomUの状態を保持しないようにxendomainsの設定を以下のように変更します。
sudo cp /etc/default/xendomains /etc/default/xendomains.org sudo vi /etc/default/xendomains
例えば、以下のように書き換えます。
XENDOMAINS_SAVE="" XENDOMAINS_RESTORE=false
設定完了後再起動します。
sudo reboot
標準状態ではdomUのためのネットワーク設定が無効化されているので ブリッジモードで動作するように設定します。
sudo cp /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.org sudo vi /etc/xen/xend-config.sxp
(network-script network-bridge)は#でコメントアウトされているので外します。
(network-script network-bridge)
設定を変更したらxendを再起動します。
sudo service xend restart
Bridgeの設定
domUで同じインタフェースを共有できるようにBridgeの設定をします。
固定アドレスの設定の項で以下のようにIPアドレスの設定をしました。
auto enp2s0 xenbr0 # ここにxenbr0を追加 iface xenbr0 inet static # enp2s0をxenbr0に変更 address IPアドレス network ネットワークアドレス netmask サブネットマスク broadcast ブロードキャストアドレス gateway ゲートウェイのIPアドレス bridge_ports enp2s0 # enp2s0にブリッジする iface enp2s0 inet manual # 物理インタフェースにIPアドレスを振らない
設定完了後再起動します。
sudo reboot