28
自宅ZFS自慢!? by @hasegaw 2011/5/28 東京OpenSolaris勉強会 2011.05 Takeshi HASEGAWA (Twitter: @hasegaw) 本資料中の解説内容は、所属組織における 統一的な見解を示すものではありません。

20110528東京OpenSolaris勉強会2011.05

Embed Size (px)

DESCRIPTION

Tokyo OpenSolaris Study Group 2011.05 【日時/場所】 日時: 2011/5/28 (Sat) 13:00 開場 ~ 13:30 開始 ~ 16:30 終了 場所: 日本オラクル 青山オフィス13F会議室 【内容】 OpenSolaris に関するテーマをみんなで勉強していきましょう。という集まりです。テーマについてスピーカーが話をしますが、参加メンバーも情報を出し合ってワイワイと進めていきます。 アジェンダ 13:30 - 14:00 自己紹介等 14:00 - 14:20 ZFSおさらい (hiroaさん) 14:20 - 15:00 自宅ZFS自慢:前半 (s-miyazaさん、hasegawさん) 15:00 - 15:10 休憩 15:10 - 15:50 自宅ZFS自慢:後半(nslope、shoyoさん) 15:50 - 16:00 休憩 16:00 - 16:30 今更聞けない質問大会続き

Citation preview

Page 1: 20110528東京OpenSolaris勉強会2011.05

自宅ZFS自慢!? by @hasegaw

2011/5/28 東京OpenSolaris勉強会 2011.05

Takeshi HASEGAWA (Twitter: @hasegaw)   本資料中の解説内容は、所属組織における 統一的な見解を示すものではありません。

Page 2: 20110528東京OpenSolaris勉強会2011.05

プロフィール 長谷川 猛 (HASEGAWA Takeshi) twitter: @hasegaw

主にLinuxや仮想化技術を得意とする雑食系SE Xen/KVMを調査、FreeBSD virtioを実装等  興味範囲:仮想化、ストレージ

もんはんしようず ゚+.(・ω・)゚+.゚

2

Page 3: 20110528東京OpenSolaris勉強会2011.05

おもな著書・寄稿

3

Page 4: 20110528東京OpenSolaris勉強会2011.05

Webサイトの記事など

エンジニアなら知っておきたい仮想マシンのしくみ http://gihyo.jp/dev/serial/01/vm_work/

4

Page 5: 20110528東京OpenSolaris勉強会2011.05

今日の私のお話 •  ZFS利用の目的 •  ZFSを選んだ理由 •  ハードウェア構成、仮想化構成 •  一部設定ファイルの紹介 •  現在のステータス情報 •  RAID-Zがデグレした経験について •  バックアップディスク •  今の悩み •  まとめ

5

Page 6: 20110528東京OpenSolaris勉強会2011.05

我が家のZFS環境の目的 •  過去のデータの保存庫

–  書籍執筆関係のデータ (ex: Xen徹底入門) –  Xen関係でいじったコードやソースツリーの保管

•  各種メディアの保存 –  マクロス動画 –  MP3 も MacBook のローカルディスクから移したい

•  バックアップ –  ノートパソコンのHDD/SSD上のデータのバックアップ用

•  基本的にクリティカルな用途には使用していない

Page 7: 20110528東京OpenSolaris勉強会2011.05

どうしてZFSを選んだか •  ZFSの信頼性と柔軟性は魅力

o  ソフトウェアだけでも、トランザクション保護によりデータの整合性が保たれ、dirtyな止まり方をしても割と安心

o  End-to-end Checksum で正常か異常かがきちんと判る o  必要な用途に必要な領域を割り当てやすい

•  LinuxのMD RAIDが怖い o  Kernel panicでデグレし復旧できなかった経験が複数回 o  復旧手順を事前にチェックしておいたが通用しなかったwwww o  Software RAID-5 マジやばい o  fakeraid も FastTrak TX2000 を持っていたが、嫌い

7

Page 8: 20110528東京OpenSolaris勉強会2011.05

ZFS内のデータへのアクセス方法 •  Windows PCからのSMB/CIFSアクセス

•  MacOS XからのSMB/CIFSアクセス o  NFSによるマウントはしていない o  TimeMachine: ブロックボリュームをiSCSIマウント

•  LinuxをはじめとするUNIX OSからのNFSアクセス o  Xen関連の作業時にはautofsでオートマウントする等

8

Page 9: 20110528東京OpenSolaris勉強会2011.05

我が家のZFS環境

Express5800 (Tower Server)

Xen 3.1.2 (CentOS 5 RPM)

CentOS OpenSolaris Ubuntu

RAID-Z (物理3TB) 320GB 2.5inch

ZFS FileServer

Twitter bot, HandBrake

domain-0

50GB SSD

Page 10: 20110528東京OpenSolaris勉強会2011.05

ディスク型番 用途 製品名/型番 容量

OS Hitachi HTS72323 (Travelstar Z7K320) × 1

2.5inch, SATA 320GB, 7200rpm

ZFS データ領域 Seagate ST31000340NS (Barracuda ES 2) × 3

3.5inch, SATA 1TB, 7200rpm

Write Cache OCZ VERTEX 2 × 1 2.5inch, SATA 50GB

ZFS バックアップ領域

Barracuda Green SATA 3.5inch 6G SATA 2TB, 5900rpm

Page 11: 20110528東京OpenSolaris勉強会2011.05

Domain-U の定義ファイル name = "vm230" maxmem = 2048 memory = 2048 vcpus = 2 ~~ (snip) ~~ localtime = 0 disk = [ "tap:aio:/dev/pool0/vm230_xvda,xvda,w", #failed #“tap:aio:/dev/disk/by-id/scsi-SATA_ST31000340NS_9QJ37■ ■ -part1,xvdb,w", “tap:aio:/dev/disk/by-id/scsi-SATA_ST31000340NS_9QJ37●●-part1,xvdc,w", “tap:aio:/dev/disk/by-id/scsi-SATA_ST31000340NS_9QJ37▲▲-part1,xvdd,w", "tap:aio:/dev/disk/by-id/scsi-SATA_ST2000DL003-9VT_5YD13××,xvdf,w", “tap:aio:/dev/disk/by-id/scsi-SATA_OCZ-VERTEX2_f0a200★★-part1,xvde,w", ] vif = [ "mac=00:16:36:04:e8:a7,bridge=xenbr0,script=vif-bridge" ] serial = "pty" bootloader="/usr/bin/pygrub"

Page 12: 20110528東京OpenSolaris勉強会2011.05

(余談) pygrub で ZFSブート •  最近のXenのpygrubはZFSブートをサポートしている

–  OpenSolaris Domain-UによるZFS上のGRUBでbootできる –  ZFSのbootfsを自動解決してくれる –  手動でカーネルパラメータを与えなくていい –  Boot Envorinment アップデートしても安心

•  以下の設定を書きましょう bootloader="/usr/bin/pygrub“

•  pygrubを使わない場合のDomain-Uの設定例 kernel="/boot/os200811/unix"

ramdisk="/boot/os200811/boot_archive"

extra= '/platform/i86xpv/kernel/amd64/unix –B zfs-bootfs=rpool/52,

bootpath="/xpvd/xdf@0:a"’

Page 13: 20110528東京OpenSolaris勉強会2011.05

OpenSolaris OS部分 •  2.5inch 7200rpm HDDからLinux LVM2で切り出し --- Logical volume --- LV Name /dev/pool0/vm230_xvda VG Name pool0 LV UUID NnCJ9p-zUwc-B1C7-9MGE- bxtl-DC0z-2QejaS

LV Write Access read/write LV Status available # open 3 LV Size 16.00 GB Current LE 4096 Segments 1  ・・・

•  普通です(少なくともLinux的には)

Page 14: 20110528東京OpenSolaris勉強会2011.05

zpool list root@vm230:~# zpool list

NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROO

array1 2.72T 1.91T 831G 70% 1.26x DEGRADED -

ファイルサーバ用領域 (実効容量2TB; 1TBx3) 実は今デグレってます

backup1 1.81T 1.01T 817G 55% 1.01x ONLINE -

バックアップ用領域 (実効容量2TB; 2TBx1) デグレ対応として最近追加

rpool 15.9G 5.09G 10.8G 32% 1.00x ONLINE -

システム起動用領域 Linux LVMより切り出し

Page 15: 20110528東京OpenSolaris勉強会2011.05

RAID-Z構成ディスク •  ST31000340NS Barracuda ES.2 SATA 3.0Gb 7200rpm 1TB ×3 – ニアライン向けドライブで割高だった –  1TBが¥10,000ぐらいの相場の頃に¥16,000/台で購入

•  Century製のエンクロージャでホットプラグ – デグレ時の交換を楽にしたい –  SATA/電源の配線が楽 – 1台、壊れました(現在2台目)

•  RAID-Z構成

Page 16: 20110528東京OpenSolaris勉強会2011.05

RAID-Z構成ディスク: パーティション •  ディスク全体で1パーティション •  別にディスク丸ごとexportしてもよい •  4KBセクタだったら全部exportしたほうがいいかもね (境界あわせればOK、ZFS側のサポートも必要)

Disk /dev/disk/by-id/scsi-SATA_ST31000340NS_9QJ37XXX: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System ST31000340NS_9QJ37XXX1 * 1 121601 976760001 fd Linux raid 自動検出

Page 17: 20110528東京OpenSolaris勉強会2011.05

RAID-Z構成ディスク: ファイルシステム NAME USED AVAIL REFER MOUNTPOINT

array1 1.64T 162G 30.6K /array1

array1/archives 1.02T 162G 1.02T /export/archives

メインのレポジトリ array1/backup 381G 162G 71.9G /export/backup

HDDのバックアップなど array1/backup/macbook_timemachine 309G 464G 7.04G -

array1/dvd 144G 162G 144G /export/archives/dvd2

リッピング→handbrake用 array1/ero 24.0K 162G 24.0K /array1/ero

エロ専用ストレージを作るというIRCチャンネルの流行に便乗 array1/iscsi 93.6G 162G 26.6K /array1/iscsi

array1/iscsi/elena4 93.6G 222G 33.6G -

array1/rhev 18.0G 162G 18.0G /export/rhev

iSCSIやその他検証のための領域

Page 18: 20110528東京OpenSolaris勉強会2011.05

RAID-Z障害の例(1)

18

root@os200811:~# zpool status array1 pool: array1 state: DEGRADED status: One or more devices are faulted in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Replace the faulted device, or use 'zpool clear' to mark the device repaired. see: http://www.sun.com/msg/ZFS-8000-K4 scrub: none requested config:

NAME STATE READ WRITE CKSUM array1 DEGRADED 0 0 0 raidz1 DEGRADED 0 0 0 c3d1p1 ONLINE 0 0 0 c3d2p1 FAULTED 8 7.56M 0 too many errors c3d3p1 ONLINE 0 0 0

Page 19: 20110528東京OpenSolaris勉強会2011.05

RAID-Z障害の例(2) •  物理障害

o  HDDエンクロージャの物理障害により

SATAコントローラ – HDD間のリンクが切断

•  Dom0カーネルが障害を検出 o  Kernelメッセージ多数、ブロックデバイス消滅

•  OpenSolaris domUが障害を検出 o  blktapバックエンドがエラーを検出しVBDを強制デタッチ?

o  RAID-Zアレイの1デバイスが死亡しdegraded 19

Sep 1 20:31:23 dom0 kernel: ata11: exception Emask 0x10 SAct 0x0 Serr 0x80000 action 0xe frozen

(続く)

Page 20: 20110528東京OpenSolaris勉強会2011.05

RAID-Z障害の例(3) •  OpenSolarisを再起動したら

o  インポートできなくなりました o  『動いているものは安易に止めるな!』 (本気で)

•  復旧までの道のり o  当時の最新リリース(OpenSolaris 2009.06)では対処手段なし o  ZFSソース探検中に偶然「インポート失敗時、トランザクションをロールバックしてインポートを試みる」オプションを発見

o  レポジトリ最新のONにアップデート o  トランザクションをロールバックした上でインポート成功 o  ハードウェアレベルの問題を解決した後にスクラブを実施し復旧

20

Page 21: 20110528東京OpenSolaris勉強会2011.05

いまは平和に動いています

21

toor@vm230:~$ pfexec zpool status array1 pool: array1 state: ONLINE

status: The pool is formatted using an older on-disk format. The pool can still be used, but some features are unavailable. action: Upgrade the pool using 'zpool upgrade'. Once this is done, the pool will no longer be accessible on older software versions. scrub: scrub completed after 3h40m with 0 errors on Fri Mar 12 01:20:10 2010

config: NAME STATE READ WRITE CKSUM array1 ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c6t1d0p0 ONLINE 0 0 0 c6t2d0p0 ONLINE 0 0 0 c6t3d0p0 ONLINE 0 0 0 logs c6t4d0p0 ONLINE 0 0 0 errors: No known data errors

Page 22: 20110528東京OpenSolaris勉強会2011.05

その後デグレしましたorz

22

root@vm230:~# zpool status array1 pool: array1 state: DEGRADED

status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: none requested

config:

NAME STATE READ WRITE CKSUM array1 DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 c6t1d0p0 UNAVAIL 0 0 0 cannot open c6t2d0p0 ONLINE 0 0 0 c6t3d0p0 ONLINE 0 0 0

errors: No known data errors

Page 23: 20110528東京OpenSolaris勉強会2011.05

バックアップ用RAID-Z構成ディスク •  Barracuda® Green SATA 6Gb/秒 2TBハードディスク・ドライブ ST2000DL003

•  5900rpm のグリーンモデル –  なんだってー!! 7200rpm だと今日まで思っていたぞ –  ドスパラの兄ちゃんに勧め?でセレクト

•  4KBセクタ –  パフォーマンスが落ちているかは不明 –  バックアップなのでそれほど性能は不要

•  単発でzpoolを構成 •  純粋にメインのアレイ(RAID-Z)のバックアップを収容

Page 24: 20110528東京OpenSolaris勉強会2011.05

余談:バックアップが楽でいいですね •  時間かかったけど、待っていればとりあえず終わる •  メインストレージ,ニアラインのなんちゃってTiering •  ZFSはこういう操作が楽でいいですね

Historyみたら何となく出てきた操作 253 zfs snapshot -r array1@`date +%Y%m%d`

254 zfs set mountpoint=none backup1

255 zfs send array1/archives@`date +%Y%m%d` | zfs

recv backup1/archives`date +%Y%m%d`

273 zfs set mountpount=/export/backup array1/

backup 24

Page 25: 20110528東京OpenSolaris勉強会2011.05

今の悩み •  OpenIndianaではXenのDomain-Uサポート無し •  様々な理由で準仮想化で利用している私としては致命的

o  安価なハードウェアで運用するため、管理OSとしてLinuxを利用 o  コンソリデーションの意味合いからもVMM上に乗せたい

•  次のどのOSを選定するか o  OpenIndiana… せめてvirtioなどの共有ring bufferサポート後 o  FreeBSD-current … Xen準仮想化サポートがある点が魅力的 o  Linux … カーネルツリーにZFS統合されるなら考える o  OpenSolaris snv_134 (現行) … 安定稼働、困っていない

25

Page 26: 20110528東京OpenSolaris勉強会2011.05

感想と今後の予定など •  ZFSは……

o  信頼性と管理の観点から非常に興味深いファイルシステム o  適当に運用しているけど、障害を経て、今もデータロスなし o  バックアップも簡単

•  今後の課題 o  RAID-Z構成ディスクの良品交換、リビルド o  ライトキャッシュとしてのVERTEX2 SSD稼働開始 o  今後のOSの選定どうしよう……

26

Page 27: 20110528東京OpenSolaris勉強会2011.05

質問はありますか?

27

Page 28: 20110528東京OpenSolaris勉強会2011.05

ありがとうございました

゚+.(・ω・)゚+.゚

28