Upload
masataka-tsukamoto
View
2.807
Download
1
Embed Size (px)
DESCRIPTION
OSC 2014 Tokyo/Springの日本OpenSolarisユーザーグループセミナー枠での資料です。 ZFSベースのAFP-NASの作り方を説明しています。Netatalk の3.1.0を利用しています。 とっても簡単に作れてしまうので、Time Machine用のNASを探している人は是非チャレンジしてみてください。 2014/2/27追記: 一部の内容を修正(インストールするパッケージの追加と不要な設定の削除)しました。
Citation preview
Open Source Conference 2014 Tokyo/Spring 2014/3/1 Sat. 14:00-14:45
日本OpenSolarisユーザーグループ ”びぎなーず”担当 _・)つかまん
Macユーザーに贈る! OmniOSで作る
お手軽・カンタン・高性能な ZFS-NAS!
かるーく自己紹介名前:_・)つかまん(@tsukaman)
仕事:社畜業を少々嗜んでおります・・・
近況:先々週、家族の3/4がインフルで旅行中止に。
専門:元々はUNIX/Linuxとか。最近は仮想化とか。
趣味:
眼鏡
眼鏡
–Kayoko Kishimoto
“美しい方はより美しく、そうでない方はそれなりに”
以上、お約束でした。
Open Source Conference 2014 Tokyo/Spring 2014/3/1 Sat. 14:00-14:45
日本OpenSolarisユーザーグループ ”びぎなーず”担当 _・)つかまん
Macユーザーに贈る! OmniOSで作る
お手軽・カンタン・高性能な ZFS-NAS!
本日のお品書き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利用可能としたボリュームを選択
ほら、 簡単だったでしょ?
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
日本OpenSolarisユーザーグループ ”びぎなーず”担当 _・)つかまん
ご静聴ありがとうございました