OpenSolaris

最近 OpenIndiana (旧OpenSolaris) のバージョンが上がり,今まであった問題がとれて使いやすくなりました. 今回 OpenIndiana 151a5 をインストールしたので,メモを記しておきます. (対象は,他のUNIXライクなOSにある程度慣れた人を想定しています.)

利点

他のUNIXライクなオペレーティングシステム/ディストリビューションに比較し,以下の様な特徴があります.
  • 堅牢で安定している
商用UNIXである Solaris がベースなので堅牢に思われます. ライブラリや各種ソフトウェアのアップデートが頻繁すぎず,安定している印象を受けます.
  • 無料
  • ZFSサポート
元々ZFSはSun(現Oracle)で開発されたので,SunのSolarisに系譜をひくOpenIndianaのZFSのサポートは安定しているように思われます.

ZFSについて

zfs は,ファイルシステムです.他のファイルシステムに比べ,以下の様な特徴があります.
  • 論理ボリュームの機能が組み込まれている
全てのストレージは『ストレージプール』と呼ばれる論理的なボリュームに属します.
$ zpool create <volname> <dev1> <dev2> # <dev1> と <dev2> の合計容量の大きさを持つ仮想的なストレージができる
  • ストレージプールを柔軟に拡張・ミラーリング・RAIDできる
$ zpool attach <volname> <既存のディスクのdev> <ミラーとして追加するディスクのdev>
  • ストレージプールから柔軟にパティションが切り出せる
パティションは基本的に可変サイズです.固定サイズにした場合,仮想的なデバイスファイルが用意されます.
$ zfs create mypool/hello
→ デフォルトでは /mypool/hello というフォルダにマウントされる
  • パティションごとに高度に設定を変えられる.
$ zfs set copies=3 mypool/hello
→ mypool/hello 以下のデータを,ディスク上に3つコピーして保存する

インストール

私は http://openindiana.org/download/ からデスクトップ版をインストールしました.

セットアップ

インストールが完了したら,以下の様な設定を行いました.

管理者の設定

まず,デスクトップからシステム管理に使うツールなどを開こうとするとエラーがでるので,これを修正します.
$ sudo usermod -P "Primary Administrator" <username>

アドレスの固定

次に,IPアドレスを固定にします.設定ファイルを書き換えても良いですが,私はNWAM(ネットワークマネージャ)に任せることにしました. デスクトップ右上にあるインジゲータから設定を変えられます.
  • デフォルトルートとアドレスの設定はインターフェースのとこから変えられる
  • ネームサーバーの設定はロケーションあたりから変更できる
  • 最後に,プロファイルの設定が自動で切り替わらないようにする

リポジトリの追加

次に,リポジトリを追加します.
$ sudo pkg set-publisher -p http://pkg.openindiana.org/sfe
$ sudo pkg set-publisher -p http://pkg.openindiana.org/sfe-encumbered
後者のほうは,特許的に問題があるソフトウェアが隔離されているので,適宜使うか使わないかを判断してください.

ストレージサーバーとしての設定

ストレージサーバーとしての設定をしていきます.
Multicast DNS (mDNS / Avahi / Bonjour) を有効化します. こうすることで,mDNS が有効な機器同士で <ホスト名>.local で 名前がひけるようになります. ( e.g. $ ssh myhost.local など)
(Mac はデフォルトで使えます.Linux は avahi をインストールし,nsswitch.conf に mdns を追加すれば可能になります(現在の Ubuntu はデフォルト).Windows も Bonjour for Windows をインストールすれば使えるようになります.)
$ sudo svcadm enable svc:/network/dns/multicast:default
$ sudo svcadm enable svc:/system/avahi-bridge-dsd:default
Netatalk(Mac用のファイルサーバーデーモン)は以下のようにしてインストールできます.
$ sudo pkg install system/library/netatalk
こちらも,インストール後,適切に設定(/etc/netatalk 以下)したのち,有効化します.
$ svcadm enable svc:/network/netatalk:default
Samba も,適切に設定(/etc/samba/smb.conf)したのち,有効化します.
$ sudo svcadm enable samba
$ sudo svcadm enable wins

(さらに)追加のリポジトリの設定

GNU の ls や mv, cp を使う場合,次のようにしてOpenCSWのパッケージマネージャを追加します.これは,デフォルトのパッケージマネージャーとは完全に独立しています.
$ sudo pkgadd -d http://get.opencsw.org/now
GNUのツール群はcoreutils という名前でまとまっているので,こちらをインストールします.
$ sudo pkgutil --install coreutils
OpenCSW のツール群は /opt/csw 以下に全てインストールされます.

仮想マシン(VirtualBox)の設定

VirtualBox のパッケージを以下のページからダウンロードします.
VirtualBox x.x.x for Solaris hosts をダウンロードします.以下では 4.2.4 を例にとって説明します.
$ tar xvf VirtualBox-4.2.4-81684-SunOS.tar.gz
$ sudo pkgadd -d VirtualBox-4.2.4-SunOS-r81684.pkg -n -a autoresponse SUNWvbox
VirtualBox x.x.x Oracle VM VirtualBox Extension Pack もインストールする場合,以下のようにします.
$ sudo VBoxManage extpack install \ Oracle_VM_VirtualBox_Extension_Pack-*.vbox-extpack
なお,はじめにサーバー版をインストールした場合の,Xの依存関係については,上にあるリンクを参照してください. ほか,zfs の sync を切ってパフォーマンスを上げる方法などについても解説されています.