どこのご家庭にもある
OpenSolaris を、
ZFS で有効活用
   OSC2010 Tokyo/Fall

   みやざきさとる
   日本 OpenSolaris ユーザグループ
自己紹介
とあるIT企業の Solaris 使い
Twitter: s_miyaza
ストレージとかも触ってます
OpenSolaris なのは趣味です
趣味を仕事に持ち込むとか
 m9 (^ Д ^)プギャー

           OSC2010 Tokyo/Fall
                                                 pg 2
           どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
アジェンダ
ZFS のおさらい
ZFS でバックアップ・リストア
スナップショットとクローン の
 小粋な使い方



     OSC2010 Tokyo/Fall
                                           pg 3
     どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
ZFS のおさらい

128bit ファイルシステム
大容量のファイルに対応
HDD をストレージプールとして管理し、
簡単に HDD 増設が可能
RAID(0,1,5,6) に相当する機能を提供
Copy-on-Write によるデータ完全性の保証
スナップショット・クローン機能


       OSC2010 Tokyo/Fall
                                             pg 4
       どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
ZFS のおさらい ( 続き )

 他にも重複排除とかの新機能
 詳しくは、以下の資料
 (OpenSolarisNightSeminar の資料 ) を参考
   http://jp.sun.com/developers/events/nightSeminar/
   PDF/OSNS-Solaris_ZFS-20090306.pdf
   http://mediacast.sun.com/users/hiroa/media/OSNS
   _ZFS-20090710.pdf/details
   http://mediacast.sun.com/users/hiroa/media/OSHT
   _ZFS-20091218.pdf/details


             OSC2010 Tokyo/Fall
                                                   pg 5
             どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
Copy on Write のおさらい (1)
 最初の状態

          UberBlock


          ポインタ



   ポインタ




データ

            OSC2010 Tokyo/Fall
                                                  pg 6
            どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
Copy on Write のおさらい (2)
 修正されたデータは新しいデータブロック
 に作成される
           UberBlock


           ポインタ



  間接ポインタ




データ
                            新データ           新データ

             OSC2010 Tokyo/Fall
                                                   pg 7
             どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
Copy on Write のおさらい (3)
 新しい間接ポインタが作成される

           UberBlock


           ポインタ



  間接ポインタ
                                  新ポインタ



データ
                            新データ           新データ

             OSC2010 Tokyo/Fall
                                                   pg 8
             どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
Copy on Write のおさらい (4)
 新しいポインタが作成される

          UberBlock


          ポインタ                   新ポインタ



   ポインタ




データ

            OSC2010 Tokyo/Fall
                                                  pg 9
            どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
Copy on Write のおさらい (5)
 新しい UberBlock が作成される
 古いブロック・ポインタは削除される
                               新 UberBlock


          ポインタ                 新ポインタ



   ポインタ




データ

          OSC2010 Tokyo/Fall
                                                pg 10
          どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
スナップショットのおさらい (1)
スナップショットは ReadOnly
Original の UberBlock とポインタをコピー

  Snapshot   UberBlock              UberBlock        Original

             ポインタ                   ポインタ



   ポインタ




データ

               OSC2010 Tokyo/Fall
                                                                pg 11
               どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
スナップショットのおさらい (2)
Original に変更があるとブロック部とポインタ部だけ
が変更される

 Snapshot   UberBlock                               Original
                                   新 UberBlock




                             新データ           新データ

              OSC2010 Tokyo/Fall
                                                               pg 12
              どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
クローンのおさらい (1)
クローンは ReadWrite
スナップショットの UberBlock
とポインタをコピー                                           Clone         Original

 Snapshot   UberBlock              UberBlock          UberBlock




              OSC2010 Tokyo/Fall
                                                                       pg 13
              どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
クローンのおさらい (2)
Original ・クローンに変更があると
ブロック部とポインタ部だけが変更される
                                                    Clone          Original

 Snapshot   UberBlock              新 UberBlock       新 UberBlock




                                   new
                                     new             new
              OSC2010 Tokyo/Fall
                                                                        pg 14
              どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
スナップショットの参照方法
time slider を使う
auto-snapshot を使うと、 nautilus 上であ
る時点の snapshot の内容を参照出来ます
ZFS プロパティ snapdir を visible にする
と、 .zfs 下にスナップショットの内容が参
照出来ます
# zfs set snapdir=visible rpool/export/home
# ls .zfs/snapshot/ スナップショット名
男らしく rollback
           OSC2010 Tokyo/Fall
                                                 pg 15
           どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
ZFS でバックアップ (1)

バックアップはスナップショット単位
バックアップは zfs send
# zfs send rpool@snap > /tmp/snap.zfs.img
バックアップイメージはファイルストリー
ムなので、 gzip とかで圧縮可能
# zfs send rpool@snap2 | gzip -c >
/tmp/snap2.zfs.img.gz
テープにもバックアップ出来ます
# zfs send rpool@snap3 > /dev/mt/0cn

            OSC2010 Tokyo/Fall
                                                  pg 16
            どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
ZFS でバックアップ (2)

ZFS ツリーもいっぺんにスナップショット
# zfs snapshot -r rpool/export@snap
ZFS ツリーもいっぺんにバックアップ
# zfs send -R rpool/export@snap >
/tmp/snap.export.img




         OSC2010 Tokyo/Fall
                                               pg 17
         どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
ZFS でリストア

リストアは、 zfs recieve
# zfs recieve rpool2 < /tmp/snap.zfs.img
ZFS ツリーのリストアも出来ます
# zfs receive rpool2 < /tmp/snap.export.img




            OSC2010 Tokyo/Fall
                                                  pg 18
            どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
2サーバ間で差分バックアップ
ファイルベースなので、サーバ間でバック
アップ・リストア可能
# zfs snapshot -r rpool/zone@20100910
# zfs send -R rpool/zone@20100910 |
 ssh serverB zfs receive rpool
差分バックアップも出来ます
# zfs snapshot -r rpool/zone@20100911
# zfs send -R -i rpool/zone@20100910
rpool/zone@20100911 | ssh serverB zfs receive rpool



             OSC2010 Tokyo/Fall
                                                   pg 19
             どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
差分バックアップの例
  ServerA  ServerB




 rpool@20100910                                   rpool@20100910



            snapshot 全体のコピー
            OSC2010 Tokyo/Fall
                                                                   pg 20
            どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
差分バックアップの例
  ServerA  ServerB


rpool@20100911                            rpool@20100911


     rpool@20100910                                    rpool@20100910



                 snapshot 差分のコピー
                 OSC2010 Tokyo/Fall
                                                                        pg 21
                 どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
差分バックアップの例
  ServerA  ServerB
           rpool@20100912                                   rpool@20100912


rpool@20100911                            rpool@20100911


     rpool@20100910                                    rpool@20100910



                 snapshot 差分のコピー
                 OSC2010 Tokyo/Fall
                                                                        pg 22
                 どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
スナップショットの数だけ容量を消費する
一日ごとにバックアップ
→容量が増える
スナップショットを取っていると、ファイ
ルを削除しても容量は減らない
一日前には戻りたいけど、
数週間前のある一日に戻りたいか?
一週経ったら、日単位のバックアップって
要らなくね?
よし、削除しよう
# zfs destrory rpool/zone@20100911
         OSC2010 Tokyo/Fall
                                               pg 23
         どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
差分バックアップの削除例
  Before   After
           rpool@20100912                                   rpool@20100912


rpool@20100911


     rpool@20100910                                    rpool@20100910



                 snapshot 差分の削除
                 OSC2010 Tokyo/Fall
                                                                        pg 24
                 どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
差分バックアップの利用例
Zone の同期による Active-Standby 構成
Zone 部分を二台のサーバで同期
片系がダウンしても、もう片方で動作
Zone の領域は ZFS
これを Attach/Detach することが出来る
% pfexec zoneadm -z zonename attach
% pfexec zoneadm -z zonename detach
Zone の情報は Standby 機にコピー
% pfexec zonecfg -z zonename export |
ssh ServerB pfexec zonecfg -z zonename
            OSC2010 Tokyo/Fall
                                                  pg 25
            どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
Zone の Active-Standby 構成

   ServerA                                     ServerB

     Attach                Zone                     Detach
                           起動中


     Zone                      同期                   Zone




              OSC2010 Tokyo/Fall
                                                             pg 26
              どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
Zone の Active-Standby 構成

   ServerA                                     ServerB

     Attach                Zone                     Attach
                           起動中


     Zone                                           Zone




              OSC2010 Tokyo/Fall
                                                             pg 27
              どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
ZFS 同期による Active−Stanby 構成

 簡単な方式なので、クリティカルな場面で
 は使えない
 同期間隔があるので、データロストする
 →データは別の場所に置く必要あり
 DB などには向かない構成
 DB を止めてからスナップショットを取れ
 ば、整合性は保たれます



        OSC2010 Tokyo/Fall
                                              pg 28
        どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
HDD 毎移動

ZFS では、 ssh 経由でネットワークで遠隔
地にバックアップ出来ます
→ でも、データ量が多いと時間がかかる
データ量によっては、 HDD を新幹線や飛
行機で運んだ方が早い!
こともある
zfs send でファイルストリームを外部 HDD
に保存、と言うのも手ですが ...


       OSC2010 Tokyo/Fall
                                             pg 29
       どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
HDD 取り外し

ZFS には、 import/export 機能があります
外付け HDD を、 zfs create で新プール
backup 作成
# zpool create backup /dev/dsk/c8d0t0d0
プール backup にデータをコピー
# zfs send -R rpool/export@backup |
zfs recieve backup



          OSC2010 Tokyo/Fall
                                                pg 30
          どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
HDD 取り付け

プール backup を取り外し
# zpool export backup
遠隔地のサーバに HDD を接続
# zpool import backup
サーバが、 SPARC でも x86 でも関係なし
endian の差異は ZFS が吸収
複数ディスク (RAIDZ/RAIDZ2) でも大丈夫
ただし、 ZFS バージョンには気をつけよう

       OSC2010 Tokyo/Fall
                                             pg 31
       どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
クローンによる起動環境の複製
OpenSolaris では beadm で、 Boot
Environment( 起動環境 =BE) を管理
新しい BE は、現 BE の複製 ( クローン )
クローンなので、差分しか増えない
BE は grub 画面で選択可能
BE の削除は自由
ただし、起動中の BE は削除出来ない
BE に対する操作も可能
beadm mount で、領域をマウント出来る
マウント後設定ファイル修正など
       OSC2010 Tokyo/Fall
                                             pg 32
       どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
アップデート時の起動環境の複製
pkg image-update(apt-get dist-upgrade 的な
操作 ) による複数パッケージ更新時には、
自動的に新しい BE を作成し、新しい BE を
更新する
アップグレード時に、サービス停止が発生
しない
→ サービス停止時間の短縮
アップグレードに失敗したら、旧 BE で起
動すればよい
          OSC2010 Tokyo/Fall
                                                pg 33
          どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
BE 複製の問題点

rpool を ZFS upgrade すると旧 BE で立ち上
がらなくなる可能性あり
rpool とデータ領域は、 zpool ごと分けるの
がお勧め




        OSC2010 Tokyo/Fall
                                              pg 34
        どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
まとめ
ZFS サイコー
スナップショット・クローンは有用
send/receive でバックアップも楽々
設計がめんどくさいのはどれも一緒
Zone の多重化もそこはかとなく出来る
ちゃんとやりたければ OpenHA がある
BE を使うことで複数環境を切り替え
アップデート時に新しい BE に更新する
サービス停止時間の低減
      OSC2010 Tokyo/Fall
                                            pg 35
      どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
まあ、つまり




ZFSサイコー!

    OSC2010 Tokyo/Fall
                                          pg 36
    どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
どこのご家庭にもある
OpenSolaris を、
ZFS で有効活用


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


     OSC2010 Tokyo/Fall
                                           pg 37
     どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
参考資料
ZFS 仮想化されたファイルシステムの徹底活用
# ISBN-10: 4048676547
# ISBN-13: 978-4048676540

    世界初の ZFS 本
    ZFS Essentials の方が後です
    超お勧め




                    OSC2010 Tokyo/Fall
                                                          pg 38
                    どこのご家庭にもある OpenSolaris を、 ZFS で有効活用
参考資料
OpenSolaris Night Seminar 資料
   http://jp.sun.com/developers/events/nightSeminar/PDF/OSN
   S-Solaris_ZFS-20090306.pdf
   http://mediacast.sun.com/users/hiroa/media/OSNS_ZFS-
   20090710.pdf/details
   http://mediacast.sun.com/users/hiroa/media/OSHT_ZFS-
   20091218.pdf/details
OpenSolaris 勉強会 for Admin( 仮 ) 資料
   http://docs.google.com/present/view?
   id=dpdpddx_4dnvjv7c9
   http://wikis.sun.com/download/attachments/204308497/osol
   _comstar_20100522.pdf


               OSC2010 Tokyo/Fall
                                                         pg 39
               どこのご家庭にもある OpenSolaris を、 ZFS で有効活用

Osc tokyo2010 fall_zfs