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)。
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