FreeBSD Daily Topics

2011年5月21日Amazon EC2で動作するFreeBSD

2011年5月13日および14日、カナダのオタワにて*BSD国際会議「BSDCan 2011」が開催されました。11日および12日にはチュートリアルが開催されたほか、FreeBSD DevSummitも開催されています。4日間の中から、特に興味深い話題をピックアップして紹介します。

FreeBSD on Amazon EC2

Amazon EC2の提供する仮想OSの1つとしてFreeBSDが動作するようになっています。移植作業を実施したColin Percival氏から、どのように開発を進めたのか、現在どういった状況にあるかなどが紹介されました。

FreeBSDのXenサポートは2004年にFreeBSDリポジトリへマージが実施されています。しかし当初、Amazon EC2は特定の方法でページテーブルをセットアップする必要があり、この方法とは別の方法で処理を実施していたFreeBSDはAmazon EC2で動作することができませんでした。

この状況はAmazonが2010年7月15日に、Amazon PV-grub EC2カーネルイメージの提供を開始したことで変わります。これはXenで動作するgrubです。このローダはカーネルを読み込む方法を知っており、以前のような特別なセットアップが不要になります。FreeBSDはこのgrubの機能を活用してFreeBSDカーネルを読み込ませる方法で対応することになりました。

EC2の32ビットインスタンスはPEAに対応している必要があります。ゲストOSが4GB以上を使うことがないとしても、それを格納しているホストは4GB以上のメモリを使うことになるため、どうしてもこの機能が必要になるわけです。Xenは準仮想化なので、ゲストOSにも同様にPEAの対応が必要になります。現在のところ次の環境向けにFreeBSDインスタンスが提供されています。

  • t1.micro(0.1CPUコア、600MBメモリ)
  • cc1.4xlarges(8コア、23GBメモリ、1680GB HDD)

動作しているOSはFreeBSD 8系です。9-CURRENTはロック周りの扱いの関係でまだ不安定とのことでした。amd64のサポートは実施されておらず、まずFreeBSD本体がXen/PVに対応する必要があるとのことでした。

Amazon EC2はクラウド越しに利用するため、開発は次の要領で進めたと紹介がありました。

  1. 新しいディスクイメージを作成
  2. EC2へコピー
  3. 新しいAMI(Amazon Machine Image)を作成
  4. 起動してチェック
  5. 起動しない場合、別の仮想マシンからディスクイメージをマウントして調査

興味深い話としては、再現率が低いレアなバグがあったとしても、たとえば仮想マシンを100個作成して並列で動作させればけっこう簡単にバグを特定できるようになる、といった方法の紹介がありました。もちろんそれだけ費用がかかることにはなります。

Colin Percival氏は実際にAmazon EC2でFreeBSDを利用するデモンストレーションを披露するとともに、今後より多くのインスタンスをサポートしていきたいという話をしていました。

おすすめ記事

記事・ニュース一覧