Open Source Conference 2014 Tokyo/Spring
2014/3/1 Sat. 14:00-14:45

Macユーザーに贈る!
OmniOSで作る
お手軽・カンタン・高性能な
ZFS-NAS!
日本OpenSolarisユーザーグループ
”びぎなーず”担当
_・)つかまん
かるーく自己紹介
名前:_・)つかまん(@tsukaman)
仕事:社畜業を少々嗜んでおります・・・
近況:先々週、家族の3/4がインフルで旅行中止に。
専門:元々はUNIX/Linuxとか。最近は仮想化とか。
趣味:
眼鏡
眼鏡
続きはWebで
http://tumblr.megane.us
“美しい方はより美しく、そうでない方はそれなりに”

–Kayoko Kishimoto
以上、お約束でした。
Open Source Conference 2014 Tokyo/Spring
2014/3/1 Sat. 14:00-14:45

Macユーザーに贈る!
OmniOSで作る
お手軽・カンタン・高性能な
ZFS-NAS!
日本OpenSolarisユーザーグループ
”びぎなーず”担当
_・)つかまん
本日のお品書き
15分で学ぶ!Mac OS X向けZFS-NAS構築
OmniOSのインストール
OmniOSの初期設定
zpool/zfsの作成
netatalkのインストール
Mac OS Xからの接続
OmniOSのインストール
まずはインストールメディアを入手
http://omnios.omniti.com
配布形態
CD/iso
USB
Vagrant

その他、AWS AMIやNetwork Installでの利用も可
OmniOSのインストール
ちなみに・・・
今回は仮想環境(VirtualBox)上にインストール
メモリ8GB、SSD 80GB x 1、HDD 2TB x 5
↑コレ、私の自宅サーバでの構成とほぼ同じです
ちなみにマシンはHPのML115G5(CPUは4コアのものに換装)
年末に壊れたけどヤフオクで中古を購入しニコイチで復活
OmniOSのインストール
ZFSをより 速く 使いたい場合は・・・
メモリ増やす(ARC:Adaptive Replacement Cache 用)
いわゆるキャッシュ、DRAM上に存在

L2ARC(Level 2 ARC)デバイスとしてSSDを用意する
ARCから溢れたデータはL2ARCに保存される

ZIL(ZFS Intent log)デバイスとしてSSDを用意する
いわゆるWriteログ、同期書き込みを行う際などに効果を発揮

後はディスク速くしたり、CPU速くしたり…(お金次第?)
え?
SSDいっぱいいるの?
つかまん的な回答
SSDパーティションきって
同居させちゃえばいいんじゃね?
OmniOSのインストール
というわけで今回は通常よりも1手間増やしてます
1. isoからブート
2. Shellを起動してSSDのパーティショニング
3. インストーラー起動
4. 通常のインストール作業開始
じゃ、こっからはマキで
OmniOSのインストール
キーボード配列選択で日本語(23)を選択
OmniOSのインストール
インストーラーではなくシェル(3)を起動
OmniOSのインストール
formatコマンドを実行しSSD(今回は0)を選択
OmniOSのインストール
fdiskコマンドを実行
OmniOSのインストール
1パーティションにするかの質問に「n」を回答
OmniOSのインストール
パーティションの作成(1)を実行
OmniOSのインストール
パーティションタイプはSOLARIS2(1)を選択
ちなみに今回は・・・
80GB SSD(c1t0s0)に4パーティション(p1∼4)作成
c1t0d0p1 SOLARIS2 55%(44GB)…rpool用、OS領域
c1t0d0p2 SOLARIS2 20%(16GB)…L2ARC用
c1t0d0p3 SOLARIS2 5%(4GB)…ZIL用、メモリの半分
c1t0d0p4 OTHER OS 20%(16GB)…未使用領域
OmniOSのインストール
OS領域パーティションのサイズを%で指定
OmniOSのインストール
アクティブパーティションにするか?に「y」と回答
OmniOSのインストール
ただしp2 p4はアクティブパーティションにしない
OmniOSのインストール
4パーティション分指定したらExit(6)を選択
OmniOSのインストール
戻ったformatメニューでquitコマンドを実行
OmniOSのインストール
exitコマンドでシェルを終了
OmniOSのインストール
では、いよいよOmniOSインストーラーの実行(1)
OmniOSのインストール
Solaris系でよくみるタイプの挨拶文(F2で先へ)
OmniOSのインストール
インストール先はSSDを選択(F2で先へ、以下同)
OmniOSのインストール
ディスク全体使用ではなく Use a partition… を選択
OmniOSのインストール
1つ目(今回は44GB)のパーティションを選択
OmniOSのインストール
パーティション全体(Use the whole…)を選択
OmniOSのインストール
任意のホスト名を指定
OmniOSのインストール
タイムゾーン(リージョン)を指定(ASIA)
OmniOSのインストール
タイムゾーン(ロケーション)を指定(Japan)
OmniOSのインストール
タイムゾーンを確認
OmniOSのインストール
現在の日付と時間を入力
OmniOSのインストール
ここで勝手にインストール開始(SSDだと数分)
OmniOSのインストール
インストールが終了したら再起動(F8でReboot)
OmniOSのインストール
(ISOが残ってる場合) Boot from… を選択する
OmniOSのインストール
すると、SSDにインストールした側のGRUBが起動
OmniOSのインストール
初回起動でおなじみ、SMFのリポジトリDB更新
OmniOSのインストール
インストール完了!
OmniOSの初期設定
ここでは必要最低限の初期設定を行います
1. rootパスワード設定
デフォルトは パスワードなし

2. ネットワーク設定
IPアドレス、ゲートウェイ、DNSサーバ等を設定

3. 一般ユーザの追加
SSHログイン用に最低1つは作成しておくと吉

4. sudoコマンドの設定
手順 3.の作成ユーザで管理コマンドを実行可能にする
OmniOSの初期設定
1. rootパスワード設定
# passwd

2. ネットワーク設定
NIC(LINK名)の確認
# dladm show-phys
IPアドレスの設定
(動的設定)# ipadm create-addr -T dhcp LINK名/識別名
(静的設定)# ipadm create-addr -T static ¥
> -a IPアドレス/プリフィックス LINK名/識別名
OmniOSの初期設定
2. ネットワーク設定(続き)
設定内容の確認
# ipadm show-addr または # ifconfig
(静的設定の場合)デフォルトゲートウェイの追加
# route -p add default ゲートウェイアドレス
デフォルトゲートウェイ(経路情報)の確認
# netstat -rn -f inet
DNSの設定
# echo 'nameserver DNSサーバアドレス' >> /etc/resolv.conf
# cp /etc/nsswitch.conf{,.bak}
# cp /etc/nsswitch.{dns,conf}
OmniOSの初期設定
実行の様子 その1
OmniOSの初期設定
実行の様子 その2
OmniOSの初期設定
3. 一般ユーザの追加
wheelグループの新規追加
# groupadd wheel
一般ユーザの新規追加
# useradd -G wheel -d ホームディレクトリパス -m -s シェル ユーザ名
作成したユーザのパスワード設定
# passwd ユーザ名

4. sudoコマンド設定
sudoersファイルの編集(wheelグループにsudo実行許可)
# visudo
変更する箇所:75行目 又は 78行目のコメント(#)を削除
•
•

75行目の場合、sudo実行時にパスワード入力
78行目の場合、sudo実行時にパスワード省略
OmniOSの初期設定
実行の様子 その3
OmniOSの初期設定
実行の様子 その4
OmniOSの初期設定
実行の様子 その5(今回は78行目を修正)
ここまでやったら
後はSSHで・・・
$ ssh -l ユーザ名 IPアドレス
zpool/zfsの作成
HDDとSSDでzpool/zfsを作成します
1. ディスク番号の確認
formatコマンドでHDD/SSDのディスク番号を確認

2. zpoolの作成
zpoolコマンドでzpool(ストレージプール)を作成

3. zfsの作成
zfsコマンドでZFSデータセットを作成
zpool/zfsの作成
1. ディスク番号の確認
$ sudo format
各HDD/SSDのディスク番号(cXtXdX)を確認
SSDは実際には更にパーティション番号(pX)がつく

2. zpoolの作成
$ sudo zpool create プール名 [RAIDタイプ] ディスク番号 [ディスク番号…] ¥
> [cache L2ARC SSDパーティション番号] [log ZIL SSDパーティション番号]
RAIDタイプには mirror や raidz 、 raidz2 などを指定
今回はRAID5相当の raidz を使用
spare でホットスペアも指定できるが、今回は割愛
$ zpool list でzpoolの確認も可能
zpool/zfsの作成
実行の様子 その1
zpool/zfsの作成
実行の様子 その2
zpool/zfsの作成
3. zfsの作成
$ sudo zfs create [-o オプション…] データセット名
今回はオプションとして次の3つを使用
mountpoint=パス名 … マウントポイントパスを指定
dedup=on … 重複排除機能を利用
compression=on … 圧縮機能を利用
ZFSには他にも様々なオプションが存在する
$ zpool list でデータセットの確認も可能
zpool/zfsの作成
実行の様子 その3
zpool/zfsの作成
実行の様子 その4
netatalkのインストール
今回はOmniOS用に公開されているIPSリポジトリを利用
1. IPSリポジトリの追加
Unofficial Extrasのuulm.mawiを追加

2. ソフトウェアパッケージのインストール
pkgコマンドを実行し、ソフトウェアのインストール

3. netatalkの設定
/etc/afp.conf内にnetatalkの設定を追記
共有ディレクトリの所有者/権限の調整

4. サービスの有効化
svcadmコマンドを実行し、サービスを有効化
netatalkのインストール
1. IPSリポジトリの追加
$ sudo pkg set-publisher ¥
> -g http://scott.mathematik.uni-ulm.de/release uulm.mawi
$ pkg publisher でリポジトリ登録の確認も可能

2. ソフトウェアパッケージのインストール
$ sudo pkg install netatalk unicode
netatalkのインストール
実行の様子 その1
netatalkのインストール
実行の様子 その2
netatalkのインストール
3. netatalkの設定
$ sudo vi /etc/afp.conf
[Homes]セクション
basedir regex = ホームディレクトリベースパス … /export/home等を指定
任意ボリュームセクション(例:[My Volume] )
[任意ボリューム名] … 共有ボリューム名を指定(MacOS X上での表示名)
path = 共有ディレクトリパス … 共有するディレクトリパスを指定
time machine = yes … TimeMachine用として利用する
vol size limit = ボリューム容量制限(MB) … ボリュームサイズの上限設定
file perm = パーミッション内容 … ファイルの初期権限を指定
directory perm = パーミッション内容 … ディレクトリの初期権限を指定
netatalkのインストール
3. netatalkの設定(続き)
共有ディレクトリの所有者/権限の調整
必要に応じて所有者や権限を設定する
接続ユーザの所有に変更しておくと良い
$ sudo chown ユーザ:グループ 共有ディレクトリパス
$ sudo chmod パーミッション 共有ディレクトリパス
設定例
$ sudo chown tsuka:others /tank/FileServer
$ sudo chmod 1777 /tank/FileServer
netatalkのインストール
実行の様子 その3
netatalkのインストール
実行の様子 その4
netatalkのインストール
4. サービスの有効化
$ sudo svcadm enable dns/multicast
$ sudo svcadm enable netatalk
dns/multicastはBonjourの為のサービス
サーバのIPアドレスを指定せずにNASを利用可能

$ svcs -a でサービス状態の確認も可能
パイプでつなげてgrepコマンドでキーワード検索すると便利
svcadmコマンドではサービスの無効化や再起動も可能
サービス無効化の例 … $ sudo svcadm disable netatalk
サービス再起動の例 … $ sudo svcadm restart netatalk
netatalkのインストール
実行の様子 その5
Mac OS Xからの接続
あとはちょちょいのちょいで接続するだけ
1. NASの確認
Finder上に表示があるかを確認

2. NASにログイン
ユーザ名とパスワードを入力してNASにログイン

3. (必要に応じて)Time Machineの設定
Time Machineで利用する場合は設定を行う
Mac OS Xからの接続
Finder上にNASサーバが表示されていることを確認
Mac OS Xからの接続
NASをクリックし 別名で接続… を選択
Mac OS Xからの接続
接続する(OmniOSの)ユーザ/パスワードを入力
Mac OS Xからの接続
接続済み状態を確認
Mac OS Xからの接続
実際に接続した様子
Mac OS Xからの接続
ファイルを置いてみる
Mac OS Xからの接続
OmniOSから配置したファイルを確認
Mac OS Xからの接続
必要に応じて、Time Machie設定を行う
Mac OS Xからの接続
Time Machine利用可能としたボリュームを選択
ほら、
簡単だったでしょ?
参考URL
OmniOS Documentation
http://omnios.omniti.com/wiki.php/WikiStart
Netatalk 日本語情報(HATさん)
http://www003.upp.so-net.ne.jp/hat/netatalk/
Oracle Solaris 11 Information Library (日本語) 11/11 Release
http://docs.oracle.com/cd/E26924_01/
Oracle Solaris ZFS クイックリファレンス
http://jp.fujitsu.com/platform/server/sparc/technical/document/
pdf/zfs_quick_reference.pdf
ご静聴ありがとうございました
日本OpenSolarisユーザーグループ
”びぎなーず”担当
_・)つかまん

Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!