ZFS、SMFなどSolaris由来の技術と13,000ものUbuntu由来パッケージが利用できる「Nexenta」レビュー

 商用UNIXの代表的存在であったサン・マイクロシステムズのSolarisが、OpenSolarisとしてオープンソース化されてから数年経過した現在、さまざまな派生ディストリビューションが登場してきている。今回紹介する「Nexenta」は、OpenSolarisのカーネルに、Ubuntuのユーザランドを組み合わせたものだ。Solarisの堅牢性や次世代ファイルシステムZFSやSMFによるサービスの管理といった先進性に、Linuxのユーティリプログラム群、APTによる強力なパッケージ管理システムといった使い勝手のよさが加わったようなイメージでとらえるとよいだろう。

 Nexentaの最新版は、OpenSolarisのビルド104+とUbuntu 8.04 LTS(Hardy Heron)をベースにした「Nexenta Core Platform 2.0」(リリースは2009年5月25日)である。

Nexentaのインストール

 Nexentaのインストールイメージは、x86用プラットフォーム用のISOイメージ(約513Mバイト)として公開されている。インストーラはCUIだが、ユーザが入力する必要があるのは、インストール先のディスク、アカウント情報、ネットワーク情報程度で、さほど難しくない。日本語キーボードも利用可能だ。なお、ブートローダにはLinuxでもおなじみのGRUBが使用されるので、LinuxやWindowsとのデュアルブート環境も構築可能だ(図1~3)。

図1 インストーラの起動画面
図1 インストーラの起動画面
図2 キーボードの選択
図2 キーボードの選択
図3 rootパスワードの設定
図3 rootパスワードの設定

CUIでの操作が基本、パッケージ管理はUbuntuやDebian GNU/Linuxと同様

 Nexentaは、堅牢なサーバ向けOSを目指しているため基本はCUIでの操作となり、インストール後のログイン画面はコンソール画面となる。デフォルトのログインシェルにはbashが採用され、tarやgrepもGNUプロジェクトによる拡張バージョンがインストールされているため、Linuxユーザもそれほど違和感なく操作できるだろう。ただし、psコマンドなどがSunOSオリジナルのものであったり、ホームディレクトリのパスが「/export/home」であるなど、ある程度慣れが必要な部分も少なくない。

 Nexentaは、Ubuntu 8.04 LTSベースということでパッケージ形式はDebian系Linuxで主流の「deb」、パッケージ管理システムにAPTが使用される。現時点では1,3000ほどのパッケージが移植されている。/etc/apt/sources.listを確認すると、aptラインのリポジトリとしては「hardy-unstable」が登録されている(リスト1)。

リスト1 /etc/apt/sources.listの内容

deb http://apt.nexenta.org hardy-unstable main contrib non-free
deb-src http://apt.nexenta.org hardy-unstable main contrib non-free

 APTを利用するには、まず、次のようにしてパッケージ・データベースを更新する

# apt-get update

 これにより、パッケージのインストールが行える。たとえば、Webブラウザ「Apache」をインストールするには次のようにする

# apt-get install apache2

 ただし、リポジトリ名が「hardy-unstable」(hardyはUbuntu 8.04のコードネーム)ということから推測できるように、パッケージングはまだ完璧ではないようだ。インストール時にエラーになるパッケージがいくつか見受けられた。

SMFによるサービスの管理

 各種ネットワークデーモンなどのサービス管理システムには「/etc/rcランレベル.d」以下のディレクトリに起動スクリプトを配置する伝統的な方法に加えて、Solaris特有のSMF(Service Management Facility)という仕組みが採用されている。このSMFはSolaris 10以降で追加された機能で、各サービスはXML形式のマニュフェスト・ファイルで定義される。プロセスの監視機能に優れ、たとえば、サービスが障害によって停止した場合でも自動的に再起動を行ってくれる。

 現在どんなサービスが登録されているかは「svcs -v」コマンドで確認できる。

# svcs -v
STATE          NSTATE        STIME    CTID   FMRI
legacy_run     -              0:14:11     37 lrc:/etc/rcS_d/S70screen
legacy_run     -              0:14:13     38 lrc:/etc/rcS_d/S70x11-common
legacy_run     -              0:14:28     70 lrc:/etc/rc2_d/S30gdm
legacy_run     -              0:14:29     73 lrc:/etc/rc3_d/S30gdm
disabled       -              0:14:30      - svc:/network/nfs/server:default
online         -              0:13:50      4 svc:/system/svc/restarter:default
online         -              0:13:52      - svc:/network/tnctl:default
online         -              0:13:53      9 svc:/network/datalink-management:default
online         -              0:13:53      - svc:/network/loopback:default
online         -              0:13:54      - svc:/system/filesystem/root:default

 「STATE」フィールドが「legacy_run」のサービスは従来の起動スクリプトによって管理されているサービス、「FMRI」フィールドが「svc」で始まるのが、SMFにより管理されているサービスで、「STATE」の「online」が起動中、「disabled」が現在無効であることを表す。

ファイルシステムはZFS

デフォルトのファイルシステムには、ほぼ無限のディスク空間をサポートし、スナップショットによる瞬時のバックアップ機能や、扱いやすいRAID(0/1/Z)の管理機能で、次世代ファルシステムとしての注目度が高いZFSが採用されている。

 ZFSでは、ファイルシステムをストレージプールと呼ばれる仮想的なファイルシステムとして管理する。ストレージプールに物理的なディスクを追加することにより、ファイルシステムを簡単に拡張していくことが可能になる。ストレージプールの一覧を確認する「zpool list」コマンドを確認すると「syspool」という名前のストレージプールが作成されていることがわかる。

# zpool list
NAME      SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
syspool  6.94G  1.69G  5.25G    24%  ONLINE  -

 ストレージプール内のファイルシステムの状況は「zfs list」コマンドで確認できる。

# zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT
syspool                 1.69G  5.14G    24K  none
syspool/rootfs-nmu-000  1.69G  5.14G  1.46G  legacy    ←(1)
ここでは、(1)がルートファイルシステム(「/」)である。これに対し、その時点でのバックアップである、スナップショットを撮るには「zfs snapshot」コマンドを実行する。たとえば「/」ファイルシステムのスナップショットを「myShot」と言う名前で撮るには次のようにする。
# zfs snapshot syspool/rootfs-nmu-000@myShot

 スナップショットは差分データとして保存されるため作業は一瞬で終了する。スナップショットを復元するには「zfs rollback」コマンドを実行する。前述のスナップショット「myShot」の状態に戻るには次のようにすればよい。

# zfs rollback syspool/rootfs-nmu-000@myShot

Nexentaベースのデスクトップ向けディストリビューション「StormOS」も登場

 なお、Nexentaをベースにしたデスクトップ向けディストリビューションであるStormOS(http://www.stormos.org/)が近日公開予定だ(図4)。NexentaにはXorgやGnomeといったパッケージも用意されているので、自分で個別にパッケージをインストールしてデスクトップ環境を構築することも可能だが、StormOSを利用する方が手軽だろう。

 現在Xfce4をデスクトップ環境としたStormOSのベータ版(英語環境)が、Nexentaのアドインとして公開されている。インストール手順は「/etc/apt/sources.list」にリスト2のようなAPTラインを加え、メタパッケージ「stormos-desktop」をインストールするだけだ。

# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get install stormos-desktop
# sudo service gdm reload

リスト2 StormOSを利用するためのAPTライン設定

deb http://stormos.org/stormos hardy-unstable main
deb-src http://stormos.org/stormos hardy-unstable main
図4 StormOSのデスクトップ
図4 StormOSのデスクトップ