Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

OSC2010 Tokyo/Fall どこのご家庭にもあるOpenSolarisを、ZFSで有効活用 pg 16 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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

OSC2010 Tokyo/Fall どこのご家庭にもあるOpenSolarisを、ZFSで有効活用 pg 19 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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

OSC2010 Tokyo/Fall どこのご家庭にもあるOpenSolarisを、ZFSで有効活用 pg 24 差分バックアップの削除例 Before After rpool@0910 rpool@0911 rpool@0912 rpool@0912 rpool@0910 snapshot差分の削除

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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/export@backup | zfs recieve backup

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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