91
Open Source Conference 2014 Tokyo/Spring 2014/3/1 Sat. 14:00-14:45 日本 OpenSolaris ユーザーグループ びぎなーず 担当 _・)つかまん Macユーザーに贈る! OmniOSで作る お手軽・カンタン・高性能な ZFS-NAS!

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

Embed Size (px)

DESCRIPTION

OSC 2014 Tokyo/Springの日本OpenSolarisユーザーグループセミナー枠での資料です。 ZFSベースのAFP-NASの作り方を説明しています。Netatalk の3.1.0を利用しています。 とっても簡単に作れてしまうので、Time Machine用のNASを探している人は是非チャレンジしてみてください。 2014/2/27追記: 一部の内容を修正(インストールするパッケージの追加と不要な設定の削除)しました。

Citation preview

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

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

日本OpenSolarisユーザーグループ ”びぎなーず”担当 _・)つかまん

Macユーザーに贈る! OmniOSで作る

お手軽・カンタン・高性能な ZFS-NAS!

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

かるーく自己紹介名前:_・)つかまん(@tsukaman)

仕事:社畜業を少々嗜んでおります・・・

近況:先々週、家族の3/4がインフルで旅行中止に。

専門:元々はUNIX/Linuxとか。最近は仮想化とか。

趣味:

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

眼鏡

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

眼鏡

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

http://tumblr.megane.us

続きはWebで

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

–Kayoko Kishimoto

“美しい方はより美しく、そうでない方はそれなりに”

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

以上、お約束でした。

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

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

日本OpenSolarisユーザーグループ ”びぎなーず”担当 _・)つかまん

Macユーザーに贈る! OmniOSで作る

お手軽・カンタン・高性能な ZFS-NAS!

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

本日のお品書き15分で学ぶ!Mac OS X向けZFS-NAS構築

OmniOSのインストール

OmniOSの初期設定

zpool/zfsの作成

netatalkのインストール

Mac OS Xからの接続

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

OmniOSのインストールまずはインストールメディアを入手

http://omnios.omniti.com

配布形態

CD/iso

USB

Vagrant

その他、AWS AMIやNetwork Installでの利用も可

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

OmniOSのインストールちなみに・・・ 今回は仮想環境(VirtualBox)上にインストール メモリ8GB、SSD 80GB x 1、HDD 2TB x 5 ↑コレ、私の自宅サーバでの構成とほぼ同じです ちなみにマシンはHPのML115G5(CPUは4コアのものに換装) 年末に壊れたけどヤフオクで中古を購入しニコイチで復活

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

OmniOSのインストールZFSをより”速く”使いたい場合は・・・ メモリ増やす(ARC:Adaptive Replacement Cache 用)

いわゆるキャッシュ、DRAM上に存在

L2ARC(Level 2 ARC)デバイスとしてSSDを用意する

ARCから溢れたデータはL2ARCに保存される

ZIL(ZFS Intent log)デバイスとしてSSDを用意する

いわゆるWriteログ、同期書き込みを行う際などに効果を発揮

後はディスク速くしたり、CPU速くしたり…(お金次第?)

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

え? SSDいっぱいいるの?

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

つかまん的な回答

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

SSDパーティションきって 同居させちゃえばいいんじゃね?

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

OmniOSのインストールというわけで今回は通常よりも1手間増やしてます

1. isoからブート

2. Shellを起動してSSDのパーティショニング

3. インストーラー起動

4. 通常のインストール作業開始

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

じゃ、こっからはマキで

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

OmniOSのインストールキーボード配列選択で日本語(23)を選択

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

OmniOSのインストールインストーラーではなくシェル(3)を起動

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

OmniOSのインストールformatコマンドを実行しSSD(今回は0)を選択

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

OmniOSのインストールfdiskコマンドを実行

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

OmniOSのインストール1パーティションにするかの質問に「n」を回答

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

OmniOSのインストールパーティションの作成(1)を実行

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

OmniOSのインストールパーティションタイプはSOLARIS2(1)を選択

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

ちなみに今回は・・・

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)…未使用領域

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

OmniOSのインストールOS領域パーティションのサイズを%で指定

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

OmniOSのインストールアクティブパーティションにするか?に「y」と回答

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

OmniOSのインストールただしp2~p4はアクティブパーティションにしない

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

OmniOSのインストール4パーティション分指定したらExit(6)を選択

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

OmniOSのインストール戻ったformatメニューでquitコマンドを実行

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

OmniOSのインストールexitコマンドでシェルを終了

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

OmniOSのインストールでは、いよいよOmniOSインストーラーの実行(1)

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

OmniOSのインストールSolaris系でよくみるタイプの挨拶文(F2で先へ)

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

OmniOSのインストールインストール先はSSDを選択(F2で先へ、以下同)

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

OmniOSのインストールディスク全体使用ではなく”Use a partition…”を選択

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

OmniOSのインストール1つ目(今回は44GB)のパーティションを選択

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

OmniOSのインストールパーティション全体(Use the whole…)を選択

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

OmniOSのインストール任意のホスト名を指定

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

OmniOSのインストールタイムゾーン(リージョン)を指定(ASIA)

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

OmniOSのインストールタイムゾーン(ロケーション)を指定(Japan)

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

OmniOSのインストールタイムゾーンを確認

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

OmniOSのインストール現在の日付と時間を入力

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

OmniOSのインストールここで勝手にインストール開始(SSDだと数分)

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

OmniOSのインストールインストールが終了したら再起動(F8でReboot)

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

OmniOSのインストール(ISOが残ってる場合)”Boot from…”を選択する

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

OmniOSのインストールすると、SSDにインストールした側のGRUBが起動

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

OmniOSのインストール初回起動でおなじみ、SMFのリポジトリDB更新

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

OmniOSのインストールインストール完了!

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

OmniOSの初期設定ここでは必要最低限の初期設定を行います

1. rootパスワード設定 デフォルトは”パスワードなし”

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

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

4. sudoコマンドの設定 手順 3.の作成ユーザで管理コマンドを実行可能にする

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

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名/識別名

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

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}

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

OmniOSの初期設定実行の様子 その1

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

OmniOSの初期設定実行の様子 その2

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

OmniOSの初期設定3. 一般ユーザの追加

wheelグループの新規追加 # groupadd wheel 一般ユーザの新規追加 # useradd -G wheel -d ホームディレクトリパス -m -s シェル ユーザ名 作成したユーザのパスワード設定 # passwd ユーザ名

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

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

OmniOSの初期設定実行の様子 その3

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

OmniOSの初期設定実行の様子 その4

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

OmniOSの初期設定実行の様子 その5(今回は78行目を修正)

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

ここまでやったら 後はSSHで・・・

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

$ ssh -l ユーザ名 IPアドレス

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

zpool/zfsの作成

HDDとSSDでzpool/zfsを作成します

1. ディスク番号の確認 formatコマンドでHDD/SSDのディスク番号を確認

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

3. zfsの作成 zfsコマンドでZFSデータセットを作成

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

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の確認も可能

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

zpool/zfsの作成実行の様子 その1

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

zpool/zfsの作成実行の様子 その2

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

zpool/zfsの作成

3. zfsの作成 $ sudo zfs create [-o オプション…] データセット名 今回はオプションとして次の3つを使用 mountpoint=パス名 … マウントポイントパスを指定 dedup=on … 重複排除機能を利用 compression=on … 圧縮機能を利用

ZFSには他にも様々なオプションが存在する “$ zpool list”でデータセットの確認も可能

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

zpool/zfsの作成実行の様子 その3

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

zpool/zfsの作成実行の様子 その4

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

netatalkのインストール今回はOmniOS用に公開されているIPSリポジトリを利用

1. IPSリポジトリの追加 Unofficial Extrasのuulm.mawiを追加

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

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

4. サービスの有効化 svcadmコマンドを実行し、サービスを有効化

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

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

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

netatalkのインストール実行の様子 その1

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

netatalkのインストール実行の様子 その2

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

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 = パーミッション内容 … ディレクトリの初期権限を指定

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

netatalkのインストール3. netatalkの設定(続き)

共有ディレクトリの所有者/権限の調整 必要に応じて所有者や権限を設定する 接続ユーザの所有に変更しておくと良い

$ sudo chown ユーザ:グループ 共有ディレクトリパス $ sudo chmod パーミッション 共有ディレクトリパス

設定例 $ sudo chown tsuka:others /tank/FileServer $ sudo chmod 1777 /tank/FileServer

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

netatalkのインストール実行の様子 その3

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

netatalkのインストール実行の様子 その4

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

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

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

netatalkのインストール実行の様子 その5

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

Mac OS Xからの接続

あとはちょちょいのちょいで接続するだけ

1. NASの確認 Finder上に表示があるかを確認

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

3. (必要に応じて)Time Machineの設定 Time Machineで利用する場合は設定を行う

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

Mac OS Xからの接続Finder上にNASサーバが表示されていることを確認

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

Mac OS Xからの接続NASをクリックし”別名で接続…”を選択

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

Mac OS Xからの接続接続する(OmniOSの)ユーザ/パスワードを入力

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

Mac OS Xからの接続接続済み状態を確認

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

Mac OS Xからの接続実際に接続した様子

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

Mac OS Xからの接続ファイルを置いてみる

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

Mac OS Xからの接続OmniOSから配置したファイルを確認

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

Mac OS Xからの接続必要に応じて、Time Machie設定を行う

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

Mac OS Xからの接続Time Machine利用可能としたボリュームを選択

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

ほら、 簡単だったでしょ?

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

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

参考URL

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

日本OpenSolarisユーザーグループ ”びぎなーず”担当 _・)つかまん

ご静聴ありがとうございました