第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、DNS、Walrusに関する設定項目】
コンポーネント設定項目説明デフォルト値
CLCCloud Hostクラウドコントローラのホスト名、もしくはIPアドレスを設定します。本設定値はEucalyptusを利用するクライアント端末から接続可能なホスト名、IPアドレスである必要があります。Eucalyptusが検出したCloud ControllerのIPアドレス
Default kernelインスタンス起動時に特に指定がない場合に利用されるデフォルトのカーネルイメージのIDを設定します。なし
Default ramdiskインスタンス起動時に特に指定がない場合に利用されるデフォルトのラムディスクイメージのIDを設定します。なし
DNSDomain 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
WalrusWalrus HostWalrusのホスト名、もしくはIPアドレスを設定します。本設定値は、Eucalyptusを利用するクライアント端末とNCから接続可能なホスト名、IPアドレスである必要があります。euca_confで登録したWalrusのホスト名、もしくはIPアドレス
Buckets PathWalrusの動作する物理マシンのどの場所にデータを保存するかを設定します。//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とSCに関する設定項目】
コンポーネント設定項目説明デフォルト値
CCNameCCに任意の名称を設定します。例えば本連載では「cluster0」を使用しています。euca_confで登録した際のCCの名称
HostCCのホスト名、もしくは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
SCMax volume size1ボリュームの最大サイズを設定します。10
Disk space
reserved for volumes
EBSのボリューム用に割り当てる領域のサイズを設定します。50
Zero-fill volumesボリューム作成時に指定されたサイズ分をすぐに確保し値「0」で埋めるかを設定します。チェック無
Volumes pathSCの動作するマシンのどの場所にボリュームを保存するかを設定します。//var/lib/eucalyptus/volumes
Storage InterfaceSCが提供するストレージを利用するNCを接続するネットワークインターフェイスを設定します。eth0

・CCの設定
Elastic IPに関する設定とインスタンス用のプライベートネットワークに関する設定を行うことができます。

CCに関する設定の画面

・SCの設定
SCが提供するボリュームに関する設定を行うことができます。

SCに関する設定の画面

【設定項目中の「Storage Interface」について】
 必ずSCとNCを繋ぐネットワークのインターフェイスに設定する必要があります。EBSでiSCSIを使用する場合はlayer2、AoEを使用する場合はlayer3のネットワークを使用するため、他の既存ネットワークやパブリックネットワークと繋がない独立したネットワークを用意して使用することを推奨します。

 

Web管理画面での設定値~インスタンスタイプの設定

 最後にインスタンスタイプの設定について説明します。インスタンスタイプの設定値を変更することは自由にできますが、インスタンスタイプ自体の名称変更や追加・削除はサポートされていません。

【インスタンスタイプに関する設定項目】
設定項目説明デフォルト値
CPUsインスタンスに割り当てるCPU数を設定します。m1.small1
c1.medium1
m1.large2
m1.xlarge2
c1.xlarge4
Memory (MB)インスタンスに割り当てるメモリのサイズを設定します。m1.small128
c1.medium256
m1.large512
m1.xlarge1024
c1.xlarge2048
Disk (GB)インスタンスに割り当てるディスクのサイズを設定します。m1.small2
c1.medium5
m1.large10
m1.xlarge20
c1.xlarge20
インスタンスタイプに関する設定の画面

 

eucalyptus.confでの設定値

 eucalyptus.confでは、各コンポーネント全般に関する設定や仮想化に関連する設定、ネットワークモードの設定を行うことができます。

 eucalyptus.confの設定を変更した場合は、パラメータが対象とするコンポーネントの再起動が必要です。

・Eucalyptus全般やフロントエンドに関する設定

 Eucalyptus全般の設定やフロントエンド(CLC、CC、SC、Walrus)に関連する設定は以下のパラメータで設定することができます。

【Eucalyptus全般やフロントエンドに関する設定】
カテゴリ設定項目デフォルト値説明
Eucalyptus全般EUCALYPTUS文字列/Eucalyptusのインストール先のルートディレクトリの設定です。RPMパッケージやdebパッケージからインストールした場合は、基本的にデフォルト値の「/」がルートディレクトリとなります。
EUCA_USEReucalyptusEucalyptusのプロセスを起動する際のユーザを設定します。RPMパッケージやdebパッケージからインストールした場合は、自動的に「eucalyptus」ユーザが作成されます。
CLOUD_OPTSなしCLCの起動時にCLCに渡す値を指定します。CLCに渡すことができる値についてはeucalyptus-cloud --helpを参照してください。なおEucalyptus 2.0.0~2.0.1では、ここで--log-level=DEBUGを設定しておかないとCLCのログにはTRACEが沢山出力されることになります。
LOGLEVELDEBUGEucalyptusが出力するログのレベルを設定します。ただし、2.0.0と2.0.1では上記設定が優先されます。
EBSDISABLE_EBS文字列YEBS機能の有効・無効を設定します。
DISABLE_ISCSINEBS機能を有効にした場合、iSCSIを利用しないかどうかを設定します。「N」を設定した場合は、iSCSIが有効になり、「Y」を設定した場合は、AoE(ATA over Ethernet)が有効になります。
DNSDISABLE_DNS文字列YDNS機能の有効・無効を設定します。
CCCC_PORT文字列8774CCが使用するTCPのポート番号を設定します。
DISABLE_TUNNELINGNマルチクラスタ構成を使用する場合にCC間の通信をトンネリングするかを設定します。2つのCCが同じネットワークセグメントに存在する場合は、「Y」に設定し無効にする必要があります。
セキュリティENABLE_WS_SECURITY文字列YEucalyptusのコンポーネント(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と仮想化に関する設定】
カテゴリ設定項目デフォルト値説明
NCNODES文字列なし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/EucalyptusNCNCのサービス名を設定します。
NC_PORT文字列8775NCが使用する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数値2048NCが動作するマシンのメモリの内、どれだけの容量をインスタンス用に確保するかを設定します。単位はMBです。
MAX_CORES="2"文字列2NCが動作するマシンからインスタンスに割り当てる仮想CPUの数を設定します。
MAX_DISK="100"文字列100NCが動作するマシンのからインスタンスに割り当て可能なディスクのサイズを設定します。単位は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_のプレフィックスが付くパラメータについて説明します。

【Eucalyptusネットワークに関する設定】
カテゴリVNET-MODEデフォルト値説明
VNET_PUBINTERFACE共通文字列eth0CCでは外部のネットワークと接続するためのネットワークデバイスを指定します。NCではCCと通信するためのネットワークデバイスを指定します。(CLC、SC、Walrusでは設定が不要です)
VNET_PRIVINTERFACE共通文字列eth0CCではNCと接続するためのネットワークデバイスを指定します。NCでは特に設定する必要はありません(CLC、SC、Walrusでは設定が不要です)。
VNET_INTERFACE共通文字列eth0VNET_PUBINTERFACEとVNET_PRIVINTERFACEが同じネットワークデバイスの場合、VNET_INTERFACEでまとめて指定することができます。
VNET_BRIDGE共通文字列xenbr0 もしくは br0NCのハイパーバイザーが使用するブリッジを指定します。
VNET_DHCPDAEMON共通(SYSTEMを除く)文字列/usr/sbin/dhcpd もしくは /usr/sbin/dhcpd3CCで起動するDHCPデーモンのパスを指定します。
VNET_DHCPUSER共通(SYSTEMを除く)文字列root もしくは dhcpdCCでDHCPデーモンを起動するユーザを指定します。
VNET_MODE共通文字列SYSTEMEucalyptusのネットワークモードをSYSTEM,STATIC,MANAGED,MANAGED-NOVLANの中から選択します。
VNET_SUBNET共通文字列なしインスタンスに割り当てるPrivateIPのIPアドレス群のサブネットのネットワークアドレスを設定します。
VNET_NETMASK共通(SYSTEMを除く)文字列なしインスタンスに割り当てるPrivateIPのIPアドレス群のサブネットのサブネットマスクを設定します。
VNET_BROADCASTSTATIC文字列なしVNET_MODEがSTATICの場合、インスタンスに設定するネットワーク情報のブロードキャストアドレスを設定します。
VNET_ROUTERSTATIC文字列なしVNET_MODEがSTATICの場合、インスタンスに設定するネットワーク情報のルートアドレスを設定します。
VNET_DNS共通(SYSTEMを除く)文字列なしインスタンスがDHCPでネットワーク情報を取得する際に一緒に渡すDNSサーバのアドレス情報を設定します。
VNET_MACMAPSTATIC文字列なしVNET_MODEがSTATICの場合、インスタンスに設定するIPアドレスとMACアドレスのペアをMAC=IPの形式で指定します。複数の組み合わせを記述するには、スペース区切りで記述します(MAC1=IP1 MAC2=IP2 … MACn=IPn)。
VNET_ADDRSPERNETMANAGED / MANAGED-NOVLAN文字列なしセキュリティグループ1つあたりのPrivateIPのサブネットの大きさを設定します。ここで設定した値から2引いた数が実際に使用されるセキュリティグループ毎のPrivateIP数になります。
VNET_PUBLICIPSMANAGED / MANAGED-NOVLAN文字列なしElasticIPとPublicIPで使用するIPアドレスを設定します。複数のIPアドレスを記述するには、スペース区切りで列記するかもしくはハイフンで繋いで 192.168.32.200-192.168.32.210 のように記述します。
VNET_LOCALIPMANAGED / MANAGED-NOVLAN文字列なしCCが複数ある場合に、他のCCから到達可能な自クラスタのIPアドレスを設定します。
VNET_CLOUDIPMANAGED / 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の内部設定があります。以下に各パラメータについて示します。

【内部パラメータ】
カテゴリ設定項目説明デフォルト値
SCZONE名.storage.majornumber最後に作成したEBSボリュームに設定されているAoEデバイスのメジャー番号を示します。(EBSボリュームにAoEを使用する場合のみ)なし
ZONE名.storage.maxtotalvolumesizeingbEBSボリューム全体の最大サイズ(GB)の値を示します。50
ZONE名.storage.maxvolumesizeingbEBSボリューム1つあたりの最大サイズ(GB)の値を示します。10
ZONE名.storage.minornumber最後に作成したEBSボリュームに設定されているAoEデバイスのマイナー番号を示します。(EBSボリュームにAoEを使用する場合のみ)なし
ZONE名.storage.storageinterfaceSCが使用するネットワークデバイスを示します。eth0
ZONE名.storage.storeprefixEBSボリューム毎に設定するiSCSIのIQNのプレフィックスを示します。(EBSボリュームにiSCSIを使用する場合のみ)iqn.2009-06.com.eucalyptus.
ZONE名.storage.tid次に作成されるEBSボリュームに設定されるiSCSIのターゲットIDを示します。(EBSボリュームにiSCSIを使用する場合のみ)なし
ZONE名.storage.volumesdirEBSボリュームを格納するパスを示します。//var/lib/eucalyptus/volumes
ZONE名.storage.zerofillvolumesEBSボリュームを作成した際にボリュームをゼロ埋めするか否かを示します。false
systemsystem.hupソフトリセットします。0
system.max_outstanding_messages同時に処理するメッセージの数を示します。16
wwwwww.httpproxyhosthttp proxyのホストを示します。なし
www.httpproxyporthttp proxyのポート番号を示します。なし
www.https_portWeb管理画面(https)で使用するポート番号を示します。8443
www.http_portWeb管理画面(http)で使用するポート番号を示します。8080
clustercluster.num_workersCCと通信するワーカーの数を示します。8
configconfig.cloudhostクラウドコントローラのホスト名、もしくはIPアドレスを設定します。本設定値はEucalyptusを利用するクライアント端末から接続可能なホスト名、IPアドレスである必要があります。なし
config.defaultkernelインスタンス起動時に特に指定がない場合に利用されるデフォルトのカーネルイメージのIDを示します。なし
config.defaultramdiskインスタンス起動時に特に指定がない場合に利用されるデフォルトのラムディスクイメージのIDを示します。なし
config.dnsdomaineucalyptus.confの設定でDISABLE_DNSにYを設定した場合、DescribeInstancesで表示されるPublicDNS(PublicIPかElasticIP)の部分にIPアドレスではなく、FQDNが表示されるようになりますが、そのFQDNのドメイン部を示します。localhost
config.nameserver上記と同じくDISABLE_DNSにYを設定した場合、DNSサーバのFQDNを示します。nshost.localhost
config.registrationidクラウドの固有IDを示します。なし
walruswalrus.storagedirWalrusの動作する物理マシンのどの場所にデータを保存するかを設定します。//var/lib/eucalyptus/bukkits
walrus.storagemaxbucketsperuser1ユーザ毎に利用可能なバケットの最大数を指定します。5
walrus.storagemaxbucketsizeinmbバケットに保存するオブジェクトの合計サイズの最大値を設定します。5120
walrus.storagemaxcachesizeinmbアンバンドルされた仮想マシンイメージが使用する容量を設定します。30720
walrus.storagemaxtotalsnapshotsizeingbEBSのスナップショットを保存する領域のサイズを設定します。EBSのスナップショットは、SCだけではなくWalrus上にも保存されます。50
wsws.portCLCのサービスで使用するポートを示します。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
vmstatevmstate.shut_down_timeCCからの生存報告がないインスタンスについては、この値に設定されている時間(ミリ秒)を超えた場合には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を操作して遊んでいます。
関連情報
(羽深 修/志田 隆弘/田中 智文)
2010/12/3 06:00