Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

ZFSのおさらい
ZFSでバックアップ・リストア
スナップショットとクローン の小粋な使い方

Satoru MIYAZAKI

May 01, 2022
Tweet

More Decks by Satoru MIYAZAKI

Other Decks in Technology

Transcript

  1. どこのご家庭にもある
    OpenSolarisを、
    ZFSで有効活用
    OSC2010 Tokyo/Fall
    みやざきさとる
    日本OpenSolarisユーザグループ

    View Slide

  2. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 2
    自己紹介
    とあるIT企業のSolaris使い
    Twitter: s_miyaza
    ストレージとかも触ってます
    OpenSolarisなのは趣味です
    趣味を仕事に持ち込むとか
    m9(^Д^)プギャー

    View Slide

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

    View Slide

  4. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 4
    ZFSのおさらい
    128bitファイルシステム
    大容量のファイルに対応
    HDDをストレージプールとして管理し、
    簡単にHDD増設が可能
    RAID(0,1,5,6)に相当する機能を提供
    Copy-on-Writeによるデータ完全性の保証
    スナップショット・クローン機能

    View Slide

  5. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 5
    ZFSのおさらい(続き)
    他にも重複排除とかの新機能
    詳しくは、以下の資料
    (OpenSolarisNightSeminarの資料)を参考
    http://jp.sun.com/developers/events/nightSemin
    ar/PDF/OSNS-Solaris_ZFS-20090306.pdf
    http://mediacast.sun.com/users/hiroa/media/OS
    NS_ZFS-20090710.pdf/details
    http://mediacast.sun.com/users/hiroa/media/OS
    HT_ZFS-20091218.pdf/details

    View Slide

  6. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 6
    ポインタ
    Copy on Writeのおさらい(1)
    ポインタ
    データ
    UberBlock
    最初の状態

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 10
    ポインタ
    ポインタ
    データ

    UberBlock
    新しいUberBlockが作成される
    古いブロック・ポインタは削除される
    Copy on Writeのおさらい(5)
    新ポイン

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 16
    ZFSでバックアップ(1)
    バックアップはスナップショット単位
    バックアップはzfs send
    # zfs send [email protected] > /tmp/snap.zfs.img
    バックアップイメージはファイルストリームなので、gzipと
    かで圧縮可能
    # zfs send [email protected] | gzip -c >
    /tmp/snap2.zfs.img.gz
    テープにもバックアップ出来ます
    # zfs send [email protected] > /dev/mt/0cn

    View Slide

  17. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 17
    ZFSでバックアップ(2)
    ZFSツリーもいっぺんにスナップショット
    # zfs snapshot -r rpool/[email protected]
    ZFSツリーもいっぺんにバックアップ
    # zfs send -R rpool/[email protected] >
    /tmp/snap.export.img

    View Slide

  18. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 18
    ZFSでリストア
    リストアは、zfs recieve
    # zfs recieve rpool2 < /tmp/snap.zfs.img
    ZFSツリーのリストアも出来ます
    # zfs receive rpool2 < /tmp/snap.export.img

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 24
    差分バックアップの削除例
    Before After
    [email protected]
    [email protected]
    [email protected] [email protected]
    [email protected]
    snapshot差分の削除

    View Slide

  25. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 25
    差分バックアップの利用例
    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

    View Slide

  26. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 26
    ZoneのActive-Standby構成
    Zone Zone
    同期
    ServerA ServerB
    Zone
    起動中

    View Slide

  27. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 27
    ZoneのActive-Standby構成
    Zone Zone
    ServerA ServerB
    ZoneのActive-Standby構成
    Zone
    起動中

    View Slide

  28. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 28
    ZFS同期によるActive−Stanby構成
    簡単な方式なので、クリティカルな場面では使えない
    同期間隔があるので、データロストする
    →データは別の場所に置く必要あり
    DBなどには向かない構成
    DBを止めてからスナップショットを取れば、整合性は保
    たれます

    View Slide

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

    View Slide

  30. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 30
    HDD取り外し
    ZFS には、import/export 機能があります
    外付けHDDを、zfs create で新プールbackup作成
    # zpool create backup /dev/dsk/c8d0t0d0
    プールbackupにデータをコピー
    # zfs send -R rpool/[email protected] |
    zfs recieve backup

    View Slide

  31. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 31
    HDD取り付け
    プールbackup を取り外し
    # zpool export backup
    遠隔地のサーバにHDDを接続
    # zpool import backup
    サーバが、SPARCでもx86でも関係なし
    endian の差異はZFSが吸収
    複数ディスク(RAIDZ/RAIDZ2)でも大丈夫
    ただし、ZFSバージョンには気をつけよう

    View Slide

  32. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 32
    クローンによる起動環境の複製
    OpenSolarisではbeadm で、Boot Environment(
    起動環境=BE)を管理
    新しいBEは、現BEの複製(クローン)
    クローンなので、差分しか増えない
    BEはgrub画面で選択可能
    BEの削除は自由
    ただし、起動中のBEは削除出来ない
    BEに対する操作も可能
    beadm mount で、領域をマウント出来る
    マウント後設定ファイル修正など

    View Slide

  33. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 33
    アップデート時の起動環境の複製
    pkg image-update(apt-get dist-upgrade的な
    操作)による複数パッケージ更新時には、自動的に新し
    いBEを作成し、新しいBEを更新する
    アップグレード時に、サービス停止が発生しない
    →サービス停止時間の短縮
    アップグレードに失敗したら、旧BEで起動すればよい

    View Slide

  34. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 34
    BE複製の問題点
    rpoolをZFS upgradeすると旧BEで立ち上がらなくな
    る可能性あり
    rpool とデータ領域は、zpoolごと分けるのがお勧め

    View Slide

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

    View Slide

  36. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 36
    まあ、つまり
    ZFSサイコー!

    View Slide

  37. OSC2010 Tokyo/Fall
    どこのご家庭にもあるOpenSolarisを、ZFSで有効活用
    pg 37
    参考資料
    ZFS 仮想化されたファイルシステムの徹底活用
    # ISBN-10: 4048676547
    # ISBN-13: 978-4048676540
    世界初のZFS本
    ZFS Essentials の方が後です
    超お勧め

    View Slide