さくらのVPS de Solaris 11 Express
このところVPS業界ではさくらのVPSが話題になっているようです。月額980円という挑戦的な価格も魅力的ですが、Linux KVMによる完全仮想化を採用し、ユーザの責任でOSを入れ替えられる自由度の高さがマニア心をくすぐっているようです。
さくらのVPSは、KVM+QEMUでCPUからエミュレーションしている完全仮想化環境なので、x86アーキテクチャに対応したOSならほとんど何でも動作させることができる可能性があります。Windowsの動作報告までありますので、Solarisもきっと動作するでしょう。ということで、Solaris 11 Express を入れてみることにしました。
サービス申し込み
さくらのVPSは2週間のお試し期間がありますので今回はそれを利用します。以下のサイトからサービスを申し込むことができます。申し込み後、30分とかからず使用を開始することができます。
さくらのVPS|VPS(仮想専用サーバ)はさくらインターネット
OS変更のシナリオ
さくらのVPSのOSを変更する方法は大きく分けて3種類ほどあります。
コントロールパネルからOSを変更する
コントロールパネルの「OS再インストール」→「カスタムOSインストール」から、各種のLinuxディストリビューションとFreeBSDをインストールすることができます。現在は、 CentOS 5.5, Ubuntu 10.04, FreeBSD 8.1, Debian 5.05, Fedora 13 のそれぞれ32ビット版と64ビット版に対応しています。
カスタムOSインストールを実行すると、VNCコンソールでインストーラが起動し、普通にOSをインストールするのと同じように操作できます。約20GBの仮想HDDを自由に使えますので、パーティションを切り分けたり、SWAP領域を追加することもできます。
インストーラを空き領域から起動する
さくらのVPSではデフォルトで2GBのSWAP領域が用意されています。この領域にOSインストーラのイメージを書き込んで、GRUBからインストーラを起動し、もともとのOSを上書きする方法です。
各種のLinuxディストリビューションなどはこの方法でインストールできます。さくらの田中社長のブログにはこの方法でFreeBSDをインストールする手順が紹介されています。
さくらのVPSにFreeBSDをインストールする (さくらインターネット創業日記)
Solaris 11 ExpressもUSBインストールイメージが公開されているのでこの方法でインストールできそうな気がしたのですが、うまくいきませんでした。
OSインストール済みのHDDイメージを転送する
この方法は、VMWareやVirtualBoxなどの別の仮想環境(別に実環境でもいいですが)であらかじめOSをインストールしてあるHDDイメージを作っておき、VPSの仮想HDDにssh+ddで書き込む方法です。
この方法でWindowsが動作するとの報告がありました。実際にWindowsを仮想環境で動かす場合はライセンスの注意が必要です。
さくらのVPSでWindowsを動かす夢をみた:元現役高校生サーバー管理者の考察日誌 - CNET Japan
この方法ならHDDイメージさえ作れればよいので最も柔軟です。この方法で、Solaris 11 Express をインストールしてみます。HDDイメージの作成には、VirtualBoxを使用します。
VPSにイメージ転送用のOSをインストールする
ネットワーク情報をメモしておく
カスタムOSインストールの画面にも表示されますが、以下の情報をメモしておきます。
- IPアドレス
- ネットマスク
- デフォルトゲートウェイ
- DNSサーバのアドレス
- NTPサーバのアドレス
VirtualBoxでHDDイメージを作成する
VirtualBoxの入手
VirtualBoxは、Windows、Mac OS X、Linux、Solarisなど様々なOSに対応した仮想化ソフトウェアです。無料で使用することができ、UIも使いやすく、動作もそれなりに速いのでおすすめです。
以下のサイトからダウンロードすることができます。
http://www.virtualbox.org/wiki/Downloads
Solaris 11 Expressの入手
Solaris 11 ExpressはOracleのサイトからダウンロードできます。VPSで使用するのにGUIは使わないと思いますので、「Download for x86 - Text Install」のところからISOイメージをダウンロードしてください。ダウンロードするにはOracleのアカウント作成が必要です(無料)。
http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html
VirtualBoxにSolaris 11 Expressをインストールする
インストールは以下のことに気をつければ特に問題ないと思います。
HDDイメージを変換する
HDDイメージをVirtualBoxの形式からRAW形式(ddで書き込める形式)に変換します。HDDイメージはホームディレクトリの下の「.VirtualBox\HardDisks」配下にあります。
VirtualBoxに付属のVBoxManageコマンドでHDDイメージを変換することができます。以下の例では"sol11exp.img"という名前のファイルに変換しています。
VBoxManage clonehd "Solaris 11 Express.vdi" sol11exp.img --format RAW
VirtualBoxのVDI形式だとファイルサイズは仮想HDDの容量を消費している分だけになりますが、RAW形式ではファイルサイズが仮想HDDのサイズになります。転送時間の短縮のためにgzipで圧縮しておきます。私が試したときは、インストール直後で1GBくらいに圧縮できました。
gzip sol11exp.img
HDDイメージを転送する
ssh+ddでHDDイメージを書き込みます。この手順を実行すると、既存のOSは起動できなくなりますので十分に注意してください。x.x.x.x はVPS側のIPアドレスです。
cat sol11exp.img.gz | ssh root@x.x.x.x "gzip -dc | dd of=/dev/sda"
書き込みが終わったら、VPSを再起動して、VNCコンソール(シリアルコンソールは使用不可)を起動すると、GRUBの画面が表示されてSolaris 11 Expressを起動することができます。
Solaris 11 Expressの設定
主にネットワークの設定を行います。
NICを認識させてIPアドレスを割り当てます。さくらのVPSのNICはVirtualBoxと同じIntelのNICをエミュレーションしているのでe1000gドライバが使えます。
ifconfig e1000g1 plumb ifconfig e1000g1 x.x.x.x netmask 255.255.254.0 up
設定ファイルも作っておきます。
vi /etc/hostname.e1000g1
- -
デフォルトゲートウェイを設定します。routeコマンドに-pオプションを付けて実行すると /etc/inet/static_routes に書き込まれ、OS再起動後も設定が残ります。
route -p add default x.x.x.1
DNSの設定を行います。
vi /etc/resolv.conf
- -
NTPの設定を行います。
vi /etc/inet/ntp.conf
- -
svcadm enable ntp
問題点
シリアルコンソールとVNCコンソールの併用ができない
/rpool1/boot/grub/menu.lst に以下のように設定すればシリアルコンソールを使用できますが、VNCコンソールと併用はできません。
vi /rpool1/boot/grub/menu.lst
- -
起動中によくフリーズすることがあるような気がする
起動中によくフリーズすることがあるような気がするのですが、再現条件も原因も不明です。
- フリーズするのは Hostname: が表示された後
- シングルユーザモードでは確実に起動するので、マルチユーザモードに移行するまでのどこか
- GRUBで-vオプションを付けて起動してみるとフリーズする箇所はだいたい以下のあたり
... Hostname: solaris pseudo-device: zfs0 zfs0 is /pseudo/zfs@0 This Solaris instance has UUID 963bc2aa-afca-ccbd-8dd3-d6de568bc6b4dump on /dev/ zvol/dsk/rpool1/dump size 384 MB === ここでフリーズ ===
起動できたら、後は安定して動いているように見えるので、動作しないことはないのでしょうが、ちょっと降参。