第6回:Eucalyptusの設定値について
前回までは駆け足で説明してきたため、設定値の意味や説明などを省いてしまいました。よって今回はEucalyptusの設定値について説明します。
Eucalyptusの設定はWeb管理画面による設定とeucalyptus.confによる設定、管理コマンドによる設定の3種類があります。Web管理画面による設定では、CLC・Walrus・CC・SCの詳細設定を行うことができます。
eucalyptus.confによる設定では、ネットワークモードの設定やNCでの仮想化に関する詳細な設定を行うことができます。管理コマンドによる設定では、euca-describe-propertiesコマンドで閲覧できる設定項目について設定を行うことができます。
Web管理画面の全体 |
■Web管理画面での設定値~CLC、DNS、Walrusに関する設定項目
はじめに、Web管理画面で設定可能なCLCとDNSとWalrusの設定について説明します。
コンポーネント | 設定項目 | 説明 | デフォルト値 |
CLC | Cloud Host | クラウドコントローラのホスト名、もしくはIPアドレスを設定します。本設定値はEucalyptusを利用するクライアント端末から接続可能なホスト名、IPアドレスである必要があります。 | Eucalyptusが検出したCloud ControllerのIPアドレス |
Default kernel | インスタンス起動時に特に指定がない場合に利用されるデフォルトのカーネルイメージのIDを設定します。 | なし | |
Default ramdisk | インスタンス起動時に特に指定がない場合に利用されるデフォルトのラムディスクイメージのIDを設定します。 | なし | |
DNS | Domain name | 後述するeucalyptus.confの設定でDISABLE_DNSにYを設定した場合、DescribeInstancesで表示されるPublicDNS(PublicIPかElasticIP)の部分にIPアドレスではなく、FQDNが表示されるようになりますが、そのFQDNのドメイン部をここで設定します。 | localhost |
Nameserver | 上記と同じくDISABLE_DNSにYを設定した場合、DNSサーバのFQDNを設定します。 | nshost.localhost | |
IP | 上記と同じくDISABLE_DNSにYを設定した場合、DNSサーバのIPアドレスを設定します。 | 127.0.0.1 | |
Walrus | Walrus Host | Walrusのホスト名、もしくはIPアドレスを設定します。本設定値は、Eucalyptusを利用するクライアント端末とNCから接続可能なホスト名、IPアドレスである必要があります。 | euca_confで登録したWalrusのホスト名、もしくはIPアドレス |
Buckets Path | Walrusの動作する物理マシンのどの場所にデータを保存するかを設定します。 | //var/lib/eucalyptus/bukkits | |
Maximum buckets per user | 1ユーザ毎に利用可能なバケットの最大数を指定します。 | 5 | |
Maximum bucket size(MB) | バケットに保存するオブジェクトの合計サイズの最大値を設定します。 | 5120 | |
Space reserved for unbundling images (MB) | アンバンドルされた仮想マシンイメージが使用する容量を設定します。 | 30720 | |
Space reserved for snapshots (GB) | EBSのスナップショットを保存する領域のサイズを設定します。EBSのスナップショットは、SCだけではなくWalrus上にも保存されます。 | 50 |
・CLCに関する設定
CLCに関する設定では、利用者がクライアントからEC2 APIを送信するためのエンドポイントとなるホスト名(あるいはIPアドレス)、インスタンスの起動時に使用されるデフォルトのkernelイメージとramdiskイメージを設定します。
CLCに関する設定の画面 |
・DNSの設定
DNSに関する設定では、インスタンスへのアクセスをIPアドレスだけでなくFQDNでもアクセスできるようにするために、別途用意したDNSサーバに関する情報を設定します。ただし、後述するeucalyptus.confの設定でDISABLED_DNS="Y"にした場合は設定の必要はありません。
DNSに関する設定の画面 |
・Walrusの設定
Walrusに関する設定では、利用者がクライアントからS3 APIを送信するためのエンドポイントとなるホスト名(あるいはIPアドレス)や、Walrusがデータの保存先とするパスの設定や、バケットのサイズなどの値を設定します。
Walrusに関する設定の画面 |
【設定項目中の「unbundling images」について】
本連載第3回で解説したインスタンスの保存において、暗号化し分割したファイルをアップロード後仮想マシンイメージの登録を行いましたが、この分割したファイルをバンドル済みのイメージと呼びます。対して、これらを結合し復号化したイメージをunbundling imageと呼びます。
NCはインスタンスの起動時に、仮想マシンのイメージをWalrusからダウンロードして利用しますが、この際Walrusでは、自動的にunbundling imageを作成しNCに渡しています。このため、Walrusの設定項目にunbundling images用の領域の設定値が存在します。
■Web管理画面での設定値~CC、SCに関する設定項目
続いてCCとSCの設定を説明します。
コンポーネント | 設定項目 | 説明 | デフォルト値 |
CC | Name | CCに任意の名称を設定します。例えば本連載では「cluster0」を使用しています。 | euca_confで登録した際のCCの名称 |
Host | CCのホスト名、もしくはIPアドレスを設定します。 | euca_confで登録した際のCCのホスト名、もしくはIPアドレス | |
Dynamic public IP address assignment | インスタンス起動時にPublicIPを割り当てるかを設定します。「MANAGED」か「MANAGED-NOVALN」モードで有効になります。 | チェック有 | |
Reserve for assignment $X public IP addresses | 上記項目が無効になっている場合、予めPublicIP用に確保されるIPアドレスの数を設定します。 | 10 | |
Maximum of $X public IP addresses per user | ユーザ毎に最大何個までのPublicIPを確保できるかを設定します。 | 5 | |
Use VLAN tags $X through $Y | インスタンスのネットワークに使用するVLANタグのIDを設定します。 | 10 through 4095 | |
SC | Max volume size | 1ボリュームの最大サイズを設定します。 | 10 |
Disk space reserved for volumes | EBSのボリューム用に割り当てる領域のサイズを設定します。 | 50 | |
Zero-fill volumes | ボリューム作成時に指定されたサイズ分をすぐに確保し値「0」で埋めるかを設定します。 | チェック無 | |
Volumes path | SCの動作するマシンのどの場所にボリュームを保存するかを設定します。 | //var/lib/eucalyptus/volumes | |
Storage Interface | SCが提供するストレージを利用するNCを接続するネットワークインターフェイスを設定します。 | eth0 |
・CCの設定
Elastic IPに関する設定とインスタンス用のプライベートネットワークに関する設定を行うことができます。
CCに関する設定の画面 |
・SCの設定
SCが提供するボリュームに関する設定を行うことができます。
SCに関する設定の画面 |
【設定項目中の「Storage Interface」について】
必ずSCとNCを繋ぐネットワークのインターフェイスに設定する必要があります。EBSでiSCSIを使用する場合はlayer2、AoEを使用する場合はlayer3のネットワークを使用するため、他の既存ネットワークやパブリックネットワークと繋がない独立したネットワークを用意して使用することを推奨します。
■Web管理画面での設定値~インスタンスタイプの設定
最後にインスタンスタイプの設定について説明します。インスタンスタイプの設定値を変更することは自由にできますが、インスタンスタイプ自体の名称変更や追加・削除はサポートされていません。
設定項目 | 説明 | デフォルト値 | |
CPUs | インスタンスに割り当てるCPU数を設定します。 | m1.small | 1 |
c1.medium | 1 | ||
m1.large | 2 | ||
m1.xlarge | 2 | ||
c1.xlarge | 4 | ||
Memory (MB) | インスタンスに割り当てるメモリのサイズを設定します。 | m1.small | 128 |
c1.medium | 256 | ||
m1.large | 512 | ||
m1.xlarge | 1024 | ||
c1.xlarge | 2048 | ||
Disk (GB) | インスタンスに割り当てるディスクのサイズを設定します。 | m1.small | 2 |
c1.medium | 5 | ||
m1.large | 10 | ||
m1.xlarge | 20 | ||
c1.xlarge | 20 |
インスタンスタイプに関する設定の画面 |
■eucalyptus.confでの設定値
eucalyptus.confでは、各コンポーネント全般に関する設定や仮想化に関連する設定、ネットワークモードの設定を行うことができます。
eucalyptus.confの設定を変更した場合は、パラメータが対象とするコンポーネントの再起動が必要です。
・Eucalyptus全般やフロントエンドに関する設定
Eucalyptus全般の設定やフロントエンド(CLC、CC、SC、Walrus)に関連する設定は以下のパラメータで設定することができます。
カテゴリ | 設定項目 | 型 | デフォルト値 | 説明 |
Eucalyptus全般 | EUCALYPTUS | 文字列 | / | Eucalyptusのインストール先のルートディレクトリの設定です。RPMパッケージやdebパッケージからインストールした場合は、基本的にデフォルト値の「/」がルートディレクトリとなります。 |
EUCA_USER | eucalyptus | Eucalyptusのプロセスを起動する際のユーザを設定します。RPMパッケージやdebパッケージからインストールした場合は、自動的に「eucalyptus」ユーザが作成されます。 | ||
CLOUD_OPTS | なし | CLCの起動時にCLCに渡す値を指定します。CLCに渡すことができる値についてはeucalyptus-cloud --helpを参照してください。なおEucalyptus 2.0.0~2.0.1では、ここで--log-level=DEBUGを設定しておかないとCLCのログにはTRACEが沢山出力されることになります。 | ||
LOGLEVEL | DEBUG | Eucalyptusが出力するログのレベルを設定します。ただし、2.0.0と2.0.1では上記設定が優先されます。 | ||
EBS | DISABLE_EBS | 文字列 | Y | EBS機能の有効・無効を設定します。 |
DISABLE_ISCSI | N | EBS機能を有効にした場合、iSCSIを利用しないかどうかを設定します。「N」を設定した場合は、iSCSIが有効になり、「Y」を設定した場合は、AoE(ATA over Ethernet)が有効になります。 | ||
DNS | DISABLE_DNS | 文字列 | Y | DNS機能の有効・無効を設定します。 |
CC | CC_PORT | 文字列 | 8774 | CCが使用するTCPのポート番号を設定します。 |
DISABLE_TUNNELING | N | マルチクラスタ構成を使用する場合にCC間の通信をトンネリングするかを設定します。2つのCCが同じネットワークセグメントに存在する場合は、「Y」に設定し無効にする必要があります。 | ||
セキュリティ | ENABLE_WS_SECURITY | 文字列 | Y | Eucalyptusのコンポーネント(CLC、CC、NC)はそれぞれSOAPを使用して通信していますが、SOAPメッセージのセキュリティを強化するWS-Securityの有効・無効を設定します。 |
Eucalyptusのサイトで配布されているパッケージやUbuntu Enterprise Cloudを利用する場合、CLOUD_OPTS以外はこれらのパラメータの値を変更することはあまりありません。
Eucalyptus 2.0.0と2.0.1ではCLCを起動するスクリプト中にてLOGLEVELをTRACEにする指定が記述されているため、eucalyptus.confのLOGLEVELをDEBUGに設定してもログがTRACEまで出力されてしまうという仕様があります。よって、これらのバージョンを使用する場合はCLOUD_OPTSに--log-level=DEBUGを設定する必要があります。
CLOUD_OPTS="--log-level=DEBUG" |
・NCと仮想化に関する設定
NCのコンポーネントに関する設定やハイパーバイザーやインスタンスに関する設定は以下のパラメータで設定することができます。
カテゴリ | 設定項目 | 型 | デフォルト値 | 説明 |
NC | NODES | 文字列 | なし | CCが管理するNCを設定します。euca_confを使用して登録することで自動的に設定値が書き込まれます。 |
SCHEDPOLICY | 文字列 | ROUNDROBIN | インスタンス起動時にどのNCに割り当てるかのポリシーを設定します。「ROUNDROBIN」と「GREEDY」と「POWERSAVE」の3つの設定を選択することができます。ただし「POWERSAVE」はpowernapとpowerwakeというパッケージが必要になるため、Ubuntuでしか動作しません。 | |
POWER_IDLETHRESH | 文字列 | 300 | 上記で「POWERSAVE」を設定した場合、インスタンスが起動していないNCを停止させることができます。NCでインスタンスが起動しておらず、且つここで設定した秒数を超えた場合にはNCのホストを停止します。 | |
POWER_WAKETHRESH | 文字列 | 300 | 上記で「POWERSAVE」を設定した場合、ここで設定した秒数を超えたら停止したNCを起動します。 | |
NC_SERVICE | 文字列 | axis2/services/EucalyptusNC | NCのサービス名を設定します。 | |
NC_PORT | 文字列 | 8775 | NCが使用するTCPのポート番号を設定します。 | |
仮想化 | HYPERVISOR | 文字列 | xen | 利用するハイパーバイザを設定します。 |
USE_VIRTIO_DISK="0" | 文字列 | 0 | インスタンスがEBSボリュームを使用する際にVIRTIOを使用するかどうか設定します。 | |
USE_VIRTIO_ROOT="0" | 文字列 | 0 | インスタンスのディスクにVIRTIOを使用するかどうか設定します。 | |
USE_VIRTIO_NET="0" | 文字列 | 0 | インスタンスのネットワークデバイスにVIRTIOを使用するかどうかを設定します。 | |
MAX_MEM=2048 | 数値 | 2048 | NCが動作するマシンのメモリの内、どれだけの容量をインスタンス用に確保するかを設定します。単位はMBです。 | |
MAX_CORES="2" | 文字列 | 2 | NCが動作するマシンからインスタンスに割り当てる仮想CPUの数を設定します。 | |
MAX_DISK="100" | 文字列 | 100 | NCが動作するマシンのからインスタンスに割り当て可能なディスクのサイズを設定します。単位はGBです。 | |
インスタンス | SWAP_SIZE | 数値 | 512 | インスタンスに割り当てるスワップ領域のサイズを設定します。単位はMBです。 |
CONCURRENT_DISK_OPS | 数値 | 4 | 同一NCにおいて同時に複数台のインスタンス起動が行われた場合、ディスクへのIOを大量に行う処理を並列でいくつまで処理するかを設定します。 | |
MANUAL_INSTANCES_CLEANUP | 数値 | 0 | インスタンスが使用したディスク等は、インスタンス停止時に自動的に削除するかどうかを設定します。デフォルト値の「0」では、自動的に削除を行いますが、「1」に設定した場合は、削除されなくなります。 | |
INSTANCE_PATH | 文字列 | /usr/local/eucalyptus/ | インスタンスのディスク等のファイルを配置する場所を設定します。 | |
NC_CACHE_SIZE | 数値 | 99999 | 仮想マシンイメージのキャッシュを何GBまで保持するかを設定します。 |
Eucalyptusのサイトで配布されているパッケージやUbuntu Enterprise Cloudを利用する場合、NC_CACHE_SIZE以外はこれらのパラメータの値を変更することはあまりありません。
NC_CACHE_SIZEはデフォルト値の場合、99999GB(≒100TB)を超えない限りNCのディスクからEMI、EKI、ERIのキャッシュが削除されないため、NCのハードウェアに100TBを遥かに超えるディスクがない限りはキャッシュがディスクを圧迫してしまい、インスタンスの起動ができなくなったり、NCのOSが正しく動作できなくなる場合があります。
このため、NC_CACHE_SIZEには、環境に合わせた適切な値を設定する必要があります(ただし、値を小さくしすぎるとキャッシュ機構が役にたたなくなるため、最低でもEMIの最大サイズである10GBよりも大きい値を設定するほうが望ましいです)。
・Eucalyptusのネットワークに関する設定
VNET_のプレフィックスが付くパラメータはEucalyptusのネットワークに関する設定になります。以下にVNET_のプレフィックスが付くパラメータについて説明します。
カテゴリ | VNET-MODE | 型 | デフォルト値 | 説明 |
VNET_PUBINTERFACE | 共通 | 文字列 | eth0 | CCでは外部のネットワークと接続するためのネットワークデバイスを指定します。NCではCCと通信するためのネットワークデバイスを指定します。(CLC、SC、Walrusでは設定が不要です) |
VNET_PRIVINTERFACE | 共通 | 文字列 | eth0 | CCではNCと接続するためのネットワークデバイスを指定します。NCでは特に設定する必要はありません(CLC、SC、Walrusでは設定が不要です)。 |
VNET_INTERFACE | 共通 | 文字列 | eth0 | VNET_PUBINTERFACEとVNET_PRIVINTERFACEが同じネットワークデバイスの場合、VNET_INTERFACEでまとめて指定することができます。 |
VNET_BRIDGE | 共通 | 文字列 | xenbr0 もしくは br0 | NCのハイパーバイザーが使用するブリッジを指定します。 |
VNET_DHCPDAEMON | 共通(SYSTEMを除く) | 文字列 | /usr/sbin/dhcpd もしくは /usr/sbin/dhcpd3 | CCで起動するDHCPデーモンのパスを指定します。 |
VNET_DHCPUSER | 共通(SYSTEMを除く) | 文字列 | root もしくは dhcpd | CCでDHCPデーモンを起動するユーザを指定します。 |
VNET_MODE | 共通 | 文字列 | SYSTEM | EucalyptusのネットワークモードをSYSTEM,STATIC,MANAGED,MANAGED-NOVLANの中から選択します。 |
VNET_SUBNET | 共通 | 文字列 | なし | インスタンスに割り当てるPrivateIPのIPアドレス群のサブネットのネットワークアドレスを設定します。 |
VNET_NETMASK | 共通(SYSTEMを除く) | 文字列 | なし | インスタンスに割り当てるPrivateIPのIPアドレス群のサブネットのサブネットマスクを設定します。 |
VNET_BROADCAST | STATIC | 文字列 | なし | VNET_MODEがSTATICの場合、インスタンスに設定するネットワーク情報のブロードキャストアドレスを設定します。 |
VNET_ROUTER | STATIC | 文字列 | なし | VNET_MODEがSTATICの場合、インスタンスに設定するネットワーク情報のルートアドレスを設定します。 |
VNET_DNS | 共通(SYSTEMを除く) | 文字列 | なし | インスタンスがDHCPでネットワーク情報を取得する際に一緒に渡すDNSサーバのアドレス情報を設定します。 |
VNET_MACMAP | STATIC | 文字列 | なし | VNET_MODEがSTATICの場合、インスタンスに設定するIPアドレスとMACアドレスのペアをMAC=IPの形式で指定します。複数の組み合わせを記述するには、スペース区切りで記述します(MAC1=IP1 MAC2=IP2 … MACn=IPn)。 |
VNET_ADDRSPERNET | MANAGED / MANAGED-NOVLAN | 文字列 | なし | セキュリティグループ1つあたりのPrivateIPのサブネットの大きさを設定します。ここで設定した値から2引いた数が実際に使用されるセキュリティグループ毎のPrivateIP数になります。 |
VNET_PUBLICIPS | MANAGED / MANAGED-NOVLAN | 文字列 | なし | ElasticIPとPublicIPで使用するIPアドレスを設定します。複数のIPアドレスを記述するには、スペース区切りで列記するかもしくはハイフンで繋いで 192.168.32.200-192.168.32.210 のように記述します。 |
VNET_LOCALIP | MANAGED / MANAGED-NOVLAN | 文字列 | なし | CCが複数ある場合に、他のCCから到達可能な自クラスタのIPアドレスを設定します。 |
VNET_CLOUDIP | MANAGED / MANAGED-NOVLAN | 文字列 | なし | CLCとCCが別ホストで稼動しているときに、CCから到達可能なCLCのIPアドレスを設定します。 |
Eucalyptus 1.5系まではフロントエンド(CLC、CC)とノード(NC)の通信で使用するネットワークデバイスを指定するためにVNET_INTERFACEというパラメータがありましたが、Eucalyptus 1.6系からはVNET_PUBINTERFACEとVNET_PRIVINTERFACEという2つのパラメータに分離されました(互換性のためにVNET_INTERFACEというパラメータは残っています)。
このパラメータにより、CCでEucalyptus外部のネットワークとEucalyptus内部のネットワークに使用するネットワークデバイスを明示的に指定することができるようになりましたが、やや理解しにくいパラメータになりました。
CCではEucalyptus外部のネットワークと接続するネットワークデバイスをVNET_PUBINTERFACEに設定し、NCと接続するネットワークデバイスをVNET_PRIVINTERFACEに設定します。一方、NCではCCと接続するネットワークデバイスをVNET_PUBINTERFACEに設定します(NCではVNET_PRIVINTERFACEは使用しません)。
以下に、CCとNCでのVNET_PUBINTERFACEとVNET_PRIVINTERFACEについて図で示します。
VNET_PUBINTERFACEとVNET_PRIVINTERFACEについて |
VNET_MODEにSTATICを指定した場合、VNET_SUBNET、VNET_NETMASK、VNET_BROADCAST、VNET_ROUTER、VNET_DNS、VNET_MACMAPの設定が必要になります。VNET_MACMAPはスペース区切りでMACアドレスとIPアドレスの組を記述する必要があります。以下にSTATICモードの設定例を示します。
STATICモードの設定例 VNET_SUBNET="192.168.1.0" VNET_NETMASK="255.255.255.0" VNET_BROADCAST="192.168.1.255" VNET_ROUTER="192.168.1.1" VNET_DNS="192.168.1.1" VNET_MACMAP="AA:DD:11:CE:FF:ED=192.168.1.2 AA:DD:11:CE:FF:EE=192.168.1.3" |
VNET_MODEにMANAGEDかMANAGED-NOVLANを指定した場合、VNET_SUBNET、VNET_NETMASK、VNET_DNS、VNET_ADDRSPERNET、VNET_PUBLICIPSの設定が必要になります。
なお、マルチクラスタ環境を構築する場合はVNET_LOCALIPを設定する必要があり、CLCとCCを別ホストで動かす場合はVNET_CLOUDIPを設定する必要があります。以下にMANAGEDモードやMANAGED_NOVLANモードの設定例を示します。
MANAGEDモードやMANAGED-NOVLANモードの設定例 VNET_SUBNET="10.1.0.0" VNET_NETMASK="255.255.0.0" VNET_DNS="192.168.1.1" VNET_ADDRSPERNET="32" VNET_PUBLICIPS="192.168.1.200-192.168.1.210" VNET_LOCALIP="192.168.1.11" VNET_CLOUDIP="192.168.1.10" |
・eucalyptus.confに載っていないパラメータ
NC_POLLING_FREQUENCY="6"
INSTANCE_TIMEOUT="300"
上記2つのパラメータは、eucalyptus.confには記載されていませんが、内部パラメータとして存在しています。NC_POLLING_FREQUENCYはCCがNCにリソース情報やインスタンス情報を定期的に問い合わせる間隔を秒数で設定でき、INSTANCE_TIMEOUTはCCがNCのインスタンス情報の更新ができなくなった場合にキャッシュからインスタンス情報を削除する期限を秒数で指定します。
デフォルト値では、CCは6秒おきにNCに問い合わせを実施し、もし問い合わせの返答がNCから無い場合、キャッシュ上の各インスタンス情報の更新時刻が現在時刻より300秒以上前であればキャッシュから当該インスタンスの情報を削除します。
■管理コマンドで設定できる内部パラメータ
Web管理画面やeucalyptus.conf以外のパラメータは、Eucalyptus 2.0系から実装されたeuca-describe-propertiesコマンドで各種パラメータを表示でき、euca-modify-propertyでパラメータに値を設定することができます。パラメータは大きくわけて、ゾーン毎のSCの内部設定、CLCの内部設定、Walrusの内部設定があります。以下に各パラメータについて示します。
カテゴリ | 設定項目 | 説明 | デフォルト値 |
SC | ZONE名.storage.majornumber | 最後に作成したEBSボリュームに設定されているAoEデバイスのメジャー番号を示します。(EBSボリュームにAoEを使用する場合のみ) | なし |
ZONE名.storage.maxtotalvolumesizeingb | EBSボリューム全体の最大サイズ(GB)の値を示します。 | 50 | |
ZONE名.storage.maxvolumesizeingb | EBSボリューム1つあたりの最大サイズ(GB)の値を示します。 | 10 | |
ZONE名.storage.minornumber | 最後に作成したEBSボリュームに設定されているAoEデバイスのマイナー番号を示します。(EBSボリュームにAoEを使用する場合のみ) | なし | |
ZONE名.storage.storageinterface | SCが使用するネットワークデバイスを示します。 | eth0 | |
ZONE名.storage.storeprefix | EBSボリューム毎に設定するiSCSIのIQNのプレフィックスを示します。(EBSボリュームにiSCSIを使用する場合のみ) | iqn.2009-06.com.eucalyptus. | |
ZONE名.storage.tid | 次に作成されるEBSボリュームに設定されるiSCSIのターゲットIDを示します。(EBSボリュームにiSCSIを使用する場合のみ) | なし | |
ZONE名.storage.volumesdir | EBSボリュームを格納するパスを示します。 | //var/lib/eucalyptus/volumes | |
ZONE名.storage.zerofillvolumes | EBSボリュームを作成した際にボリュームをゼロ埋めするか否かを示します。 | false | |
system | system.hup | ソフトリセットします。 | 0 |
system.max_outstanding_messages | 同時に処理するメッセージの数を示します。 | 16 | |
www | www.httpproxyhost | http proxyのホストを示します。 | なし |
www.httpproxyport | http proxyのポート番号を示します。 | なし | |
www.https_port | Web管理画面(https)で使用するポート番号を示します。 | 8443 | |
www.http_port | Web管理画面(http)で使用するポート番号を示します。 | 8080 | |
cluster | cluster.num_workers | CCと通信するワーカーの数を示します。 | 8 |
config | config.cloudhost | クラウドコントローラのホスト名、もしくはIPアドレスを設定します。本設定値はEucalyptusを利用するクライアント端末から接続可能なホスト名、IPアドレスである必要があります。 | なし |
config.defaultkernel | インスタンス起動時に特に指定がない場合に利用されるデフォルトのカーネルイメージのIDを示します。 | なし | |
config.defaultramdisk | インスタンス起動時に特に指定がない場合に利用されるデフォルトのラムディスクイメージのIDを示します。 | なし | |
config.dnsdomain | eucalyptus.confの設定でDISABLE_DNSにYを設定した場合、DescribeInstancesで表示されるPublicDNS(PublicIPかElasticIP)の部分にIPアドレスではなく、FQDNが表示されるようになりますが、そのFQDNのドメイン部を示します。 | localhost | |
config.nameserver | 上記と同じくDISABLE_DNSにYを設定した場合、DNSサーバのFQDNを示します。 | nshost.localhost | |
config.registrationid | クラウドの固有IDを示します。 | なし | |
walrus | walrus.storagedir | Walrusの動作する物理マシンのどの場所にデータを保存するかを設定します。 | //var/lib/eucalyptus/bukkits |
walrus.storagemaxbucketsperuser | 1ユーザ毎に利用可能なバケットの最大数を指定します。 | 5 | |
walrus.storagemaxbucketsizeinmb | バケットに保存するオブジェクトの合計サイズの最大値を設定します。 | 5120 | |
walrus.storagemaxcachesizeinmb | アンバンドルされた仮想マシンイメージが使用する容量を設定します。 | 30720 | |
walrus.storagemaxtotalsnapshotsizeingb | EBSのスナップショットを保存する領域のサイズを設定します。EBSのスナップショットは、SCだけではなくWalrus上にも保存されます。 | 50 | |
ws | ws.port | CLCのサービスで使用するポートを示します。 | 8773 |
ws.pipeline_read_timeout_seconds | ソケットの読み込みタイムアウトを示します。 | 20 | |
ws.pipeline_write_timeout_seconds | ソケットの書き込みタイムアウトを示します。 | 20 | |
ws.server_boss_pool_max_mem_per_conn | コネクション毎のセレクタの最大メモリを示します。 | 1048576 | |
ws.server_boss_pool_max_threads | セレクタの最大スレッド数を示します。 | 17 | |
ws.server_boss_pool_total_mem | 全セレクタのメモリの最大合計値を示します。(正しくは17ではなく104857600ですが、表示上のバグの可能性があります) | 17 | |
ws.server_pool_max_mem_per_conn | コネクション毎のワーカーの最大メモリを示します。 | 1048576 | |
ws.server_pool_max_threads | ワーカーの最大スレッド数を示します。 | 17 | |
ws.server_pool_total_mem | 全ワーカーのメモリの最大合計値を示します。 | 104857600 | |
vmstate | vmstate.shut_down_time | CCからの生存報告がないインスタンスについては、この値に設定されている時間(ミリ秒)を超えた場合にはCLCでは停止したインスタンスとして扱います。 | 600000 |
vmstate.bury_time | 停止したインスタンスを「Terminated」として扱い続ける時間を示します。この値に設定されている時間(ミリ秒)を超えた場合には、CLCで管理されているインスタンス情報から削除されます。 | 3600000 |
基本的にこれらのパラメータをeuca-modify-propertyで変更することはあまりないですが、例えばWeb管理画面で設定するよりもeuca-modify-propertyで設定を変更するほうが望ましい、という管理者にとっては有用ですし、Eucalyptusの細かいチューニングを行なうことも可能です。
■パラメータに値を設定する際の参考情報
・インスタンスのディスク構成について
Eucalyptusのインスタンスを構成するディスクは大きく分けて3つの領域があります。1つはOS領域、もう1つはswap領域、もう1つはephemeral(エフェメラルと読み、「一時的な」という意味があります)領域があります。
OS領域は、EKI、ERI、RMIの3ファイルで構成され、swap領域はeucalyptus.confに設定されたSWAP_SIZEかデフォルトの512MBという固定サイズで構成され、残りのephemeralは、VM TypesのDisk(GB)からOS領域とswap領域のサイズを引いたサイズで構成されます。これらの各領域は以下の計算式によって表わすことができます。
インスタンスのディスクを構成する各領域の計算式 |
よって、この計算式によりephemeralに十分なサイズが確保できない(0もしくは負数)場合、インスタンスの起動処理は途中で失敗しエラーとなります。
・インスタンスのネットワーク構成について
VNET_MODEをMANAGEDおよびMANAGED-NOVLANに設定した場合のインスタンスに付与されるLocal IPアドレスは、VNET_SUBNET、VNET_NETMASK、VNET_ADDRSPERNETに設定された値を基に払出されます。
例えば、VNET_SUBNET="10.1.0.0"、VNET_NETMASK="255.255.0.0"、VNET_ADDRSPERNET="64"と設定した場合、各セキュリティグループには10.1.2.0/26、10.1.2.64/26、10.1.2.128/26、10.1.2.192/26などのように割り当てられます。
セキュリティグループとインスタンスのIPアドレスの関係 |
■まとめ
Eucalyptusは、「なるべく最小限の設定で済むように」という思想で設計されていますが、実際にEucalyptusを構築したり運用したりすると、どうしても細部の設定が必要になる場面があります。今回なるべく詳細に説明しましたが、これ以外にもOS側の設定でEucalyptusの構成や挙動に関わるものもありますが、それらについては別の回で触れたいと思います。
次回からは、IaaSの醍醐味でもあるProgrammable InfrastructureとEucalyptusの内部についてを何回かにわけて説明していきます。
羽深 修 | Eucalyptus歴はまだ1年ですが、周囲からはEucalyptus中毒と勘違いされているようです。Japan Eucalyptus User Groupの活動に参加し、オープンソースカンファレンスでネタなどを披露しています。度々Eucalyptusへのパッチも書いてます。ちなみに仕事ではCentOS + Xenという環境でEucalyptusを利用していますが、自宅のEucalyptus環境はGentoo Linux + KVMで動かしています。 |
志田 隆弘 | 主にEucalyptusやクラウドとはあまり関係のない分野でちょこちょこと活動していました。Eucalyptusはバージョン 1.3の頃からいじり始め、かれこれ2年近くEucalyptusに浸かった生活をしています。Eucalyptus 1.4が出たタイミングで、Tanacasinoという名前のGUIクライアントを作ったりしていました。最新のEucalyptusで動作するので、ぜひ使ってみてください。 |
田中 智文 | 志田さんとともに初期の頃からEucalyptusの調査・検証・使用してきました。志田さんの作成したTanacasinoのメンテナンスと機能拡張を行っています。新婚ほやほやなので家でのハック活動時間が少ないですが、Walrus Clientを作ってみたりbotoを使ってEucalyptusを操作して遊んでいます。 |