さくらインターネットの「専用サーバ」で始めよう、XenServerによる仮想サーバー環境構築入門 3ページ
ネットワークの設定
「専用サーバ」では、標準ではサーバー1台につき1個のグローバルIPアドレスが付属する。しかしXenServerを利用する場合、このIPアドレスはXenServerが使用するため、XenServer上の仮想マシンに割り当てることはできない。そのためXenServer上でルーティングの設定を行い、仮想マシンが独自のローカルIPアドレス、もしくは別途追加したグローバルIPアドレスを使用できるようにあらかじめ設定しておく必要がある。
XenServerでは仮想マシンごとに「仮想ブリッジ」が作成され、この仮想ブリッジ経由で仮想マシンとのネットワーク通信を行う(図10)。「専用サーバ」の場合、外部に接続されているサーバーのネットワークインターフェイス(eth0)はXenServer上で仮想ブリッジ「xenbr0」に直結されているものとして認識され、このxenbr0に対しサーバーに付属するIPアドレスが付与される。また、仮想マシンを起動すると自動的にその仮想マシンの仮想ネットワークインターフェイスに対応する仮想インターフェイスが作成され、仮想ブリッジに接続される。
このように、XenServerのデフォルト設定では仮想マシンの仮想ネットワークインターフェイスとサーバーの物理ネットワークインターフェイスがブリッジ経由で接続される形となる。しかし、この場合仮想マシンのネットワークインターフェイスは物理サーバーと同じサブネットに存在する形となるため、自由にIPアドレスを設定することができない。そこで、XenServer上に新たな仮想ブリッジを作成して別のサブネットを作成し、XenServer上でルーティングを行うことで任意のIPアドレスを利用できるように設定する(図11)。
このような構成を取る場合、ネットワークアドレスおよびゲートウェイとなる仮想ブリッジ、ブロードキャストアドレスに1つずつのIPアドレス割り当てが必要となる。そのため、仮想マシンにグローバルIPアドレスを割り当てる場合は利用したい仮想マシン数+3個のIPアドレスが必要となる。たとえば「203.0.113.0/29」(203.0.113.0~203.9.113.7)という8つのIPアドレスが割り当てられている場合、「203.0.113.0」をネットワークアドレス、「203.0.113.1」をゲートウェイアドレス、「203.0.113.7」をブロードキャストアドレスとして利用するのが一般的だ。この場合、仮想マシンに割り当てて利用できるIPアドレスは「203.0.113.2」~「203.9.113.6」の5つとなる。
このルーティング設定についてはGUIによる設定は行えず、XenCenterもしくはSSHを使用したコンソールからの操作を行うこととなる。まず、XenServerの/etc/sysconfig/network-scriptディレクトリに「ifcfg-xenbr0:1」という設定ファイルを作成し、次のように記述する。
DEVICE=xenbr0:1 ONBOOT=yes BOOTPROTO=none NETMASK=<使用するネットマスク> IPADDR=<ブリッジに割り当てるIPアドレス>
たとえば「203.0.113.0/29」というIPアドレスが利用できる場合、ネットマスクは「255.255.255.248」、ブリッジに割り当てるIPアドレスは「203.0.113.1」となる。
続いて、/etc/sysctl.conf内の「net.ipv4.ip_forward」行を「net.ipv4.ip_forward = 0」から「net.ipv4.ip_forward = 1」に変更し、IPパケットのフォワーディングを有効にする。
net.ipv4.ip_forward = 1
また、ファイアウォール(iptables)の設定を仮想ブリッジをパケットが通過できるように変更しておく。これは、「/etc/sysconfig/iptables」ファイルに「-A RH-Firewall-1-INPUT -i xenbr0 -o xenbr0 -j ACCEPT」という1行を追加すればよい(リスト1)。
リスト1 「/etc/sysconfig/iptables」に太字で記述されている行を追加する
# Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -i xenbr0 -o xenbr0 -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT COMMIT
グローバルIPアドレスではなくプライベートIPアドレスを使用する場合は同じく「/etc/sysconfig/iptables」ファイルの末尾に次の3行を追加しておく。
*nat -A POSTROUTING -o xenbr0 -j MASQUERADE COMMIT
以上の設定が完了したら、次のようにして設定を反映させる。
# sysctl -p # ifup xenbr0:1 # service iptables restart
インストール用ISOイメージの準備
仮想マシン上にOSをインストールする際は、通常はCD-ROMやDVD-ROMといったインストールメディアを利用することが多い。しかし、専用サーバー型サービスの場合サーバー本体は遠隔地にあるのが一般的であるため、メディアを利用することは物理的にできない。そのため、インストールメディアのISOイメージファイルをアップロードするためのストレージサービスが提供されている。
ストレージサービスはサーバー本体とは別に用意されており、サーバーの設定完了時に送信されたメール内にホスト名およびユーザー名、初期パスワードが記載されているので、まずはパスワードを変更しておく。たとえばストレージサービスのホスト名が「osn-nas1.sakura.ad.jp」の場合、「https://osn-nas1.sakura.ad.jp:20000/」にアクセスする(図12)。ログイン画面が表示されるので、ユーザー名とパスワードを入力して「ログイン」をクリックする。パスワードの変更画面が表示されるので、現在のパスワードと新たに設定したいパスワードを入力して「変更する」をクリックする。
ストレージ領域へのアクセスにはFTPを使用する。適当なFTPクライアントでストレージにアクセスし、インストールに使用するISOイメージをアップロードすればよい(図13)。
最後に、XenCenterを用いてストレージをXenServerへ登録する。対象とするXenServerを選択し、「ストレージ」メニューの「新規ストレージ」をクリックすると「新規ストレージリポジトリ」画面が表示されるので、「Windowsファイル共有(CIFS)」を選択し、「次へ」をクリックする(図14、15)。
続いて、ストレージ名と共有名、接続に使用するユーザーアカウントを設定する。「名前」は適当な名称でかまわない。「共有名」には「\\<ストレージサーバー名>\<ユーザー名」を指定する。「異なるユーザー名を使用する」にチェックを入れ、「ユーザー名」および「パスワード」を入力して「完了」をクリックすれば設定が完了する(図16)。
以上で対象のXenServerに設定したストレージ領域が追加され、利用可能となる(図17)。