読者です 読者をやめる 読者になる 読者になる

「週末はちょっとおしゃれな外苑前でスキルアップ」してきた

http://blogs.oracle.com/thitomi/2009/11/_22_-_-.html

こちらのoracle主催の勉強会に行ってきました。

開発者がoracle master持ってても、持っているだけでは意味がないと思いますが、個人的にはoracleアーキテクチャを通して永続化層の理解を深めるのは重要なことだと思っています。僕はさりげなく10g sliverまではとってます。

ということで、内容を簡単にレポートします。といっても、oracleさんはケチじゃないので当日資料はいつも公開してくれているので、細部はそちらを参照してもらうこととして個人的に気づいたところをメモ書き程度に残しておこうと思います。

また、当日はぶつぶつ言っていた人は僕だけだったようなのでそれも合わせて。


・ストレージ入門

シンプロビジョニングはデータアクセスの頻度が考慮されてないとdbに使うのは微妙 1:17 PM Nov 21st Tweetieで
oracleの場合 ストレージの追加時にインデックスの再作成はしなくていい rowidをかえてないから変えてないから 1:20 PM Nov 21st Tweetieで
oracleのトイレは用を足しながらオフィス街の景観が楽しめます 1:27 PM Nov 21st Tweetieで

ストレージに関するdatabase的な関心事を整理したsessionでした。データが複数ストレージに分散されると言っても、適当に分散しているのかアクセス頻度まで考慮して配置しているのかで相当意味が異なりますね。というところ。もちろんoracleのasmは考慮していますぜ!という流れ。

Oracle Automatic Storage Management概要

従来のストレージ設計は、アクセスタイプでディスクを分散する思想だったが、ディスクの大容量化によって分散管理の必要性が低下し、性能向上に目的がシフトした 1:39 PM Nov 21st Tweetieで
個別のオブジェクト 表 索引 ログ などのアクセス最適化ではなく、全体を最適化する。same. 1:42 PM Nov 21st Tweetieで
sameにストレージの構成変更時のリバランスを加えたのがoracle asm 1:44 PM Nov 21st Tweetieで
asmはメタデータのみを管理する。dbのインスタンスがioする場合にディスク領域のマップをあげるのと管理するのが役割。asmがプロキシとして機能するわけではない 1:50 PM Nov 21st Tweetieで
データファイルの作成時はディスクグループを指定する。これでsameになる。 1:55 PM Nov 21st Tweetieで
asmを使うとファイルシステムの違いを吸収してくれるレイヤができるので管理が楽 2:20 PM Nov 21st Tweetieで
rawデバイスはサポート対象外にして行く予定らしい 2:39 PM Nov 21st Tweetieで

ディスク容量の増大によって、ストレージ設計の考え方が変化してきたという導入に始まる。確かに、僕がやってる業務システムでも大して容量は要求されないし、CPUの進化に対して少なくともHDDは大してパフォーマンスがあがってない(と思う)し、ストレージ設計においてパフォーマンス重視の流れができるというのはよく理解できるところ。

そんな現代的なストレージ設計思想をS.A.M.E.と呼びます。サメじゃなくてセイムです。このS.A.M.E.にリバランスの概念を追加したのがasmです。リバランスというのは、ストレージにおけるnode(要するにディスク)が追加された際に、動的にストレージシステムの容量が(asmの場合アクセス頻度まで考慮された上で)再分散配置される処理です。coherenceでもhadoopでもそういう概念はありますね。nodeの動的な追加の観点でcoherenceと似たような発想が見られるところが面白いと思います。

ちょっと余談ですが、このsessionではrawデバイスのデサポートについての話題がありました。session全体としてはasmが使えるのであれば積極的に使ったらいいじゃん、という感じで別段違和感ないのですが、知らないともしかしたら困るかもしれないので書いておきます。詳細は578455.1と754305.1を参照してください。

・ASMの耐障害性

一部のディスクでwriteに失敗しても障害グループないのディスクがオフラインになるだけでdbインスタンスには成功が帰る 3:04 PM Nov 21st Tweetieで
ディスクが切り離されたら障害グループの単位で冗長になるようなリバランスが実行される 高速ミラー再同期 3:07 PM Nov 21st Tweetieで
asmの量域確保時にはactivity change directoryとcontinuing change directoryの仕組みで整合性を保証している redo undoの関係に近い 3:17 PM Nov 21st Tweetieで
read時のディスク ブロックの障害時には正常なデータをコピーして回復を試みる 3:11 PM Nov 21st Tweetieで
リバランス時にrowidが変わらないのはエクステントマップに論理的なrowidをもっているから 3:22 PM Nov 21st Tweetieで
racにおいてもasmインスタンスの修復役が自動的に決まり復旧される 3:19 PM Nov 21st Tweetieで
データ量が増えるとioのボトルネックの兼ね合いでリバランス時間は線形スケールしない可能性が高い ioが分散されていれば境界はたぶん高めのところ 3:35 PM Nov 21st Tweetieで
ローカリティを考えるか考えないかでだいぶ用途が別れる印象 googleの設備をコモディティよりハイグレードにしたらpayしないだろうし 3:38 PM Nov 21st Tweetieで

要するにasmにしておけば、どんと来い!ディスク障害なのですが、興味深いのはasmインスタンスが論理的なrowidをエクステントマップとして保持しており、transactionalにエクステントマップを書き換える、というあたりです。
このへんはちゃんとドキュメント読んでおきたいですね。

・Automatic Storage Managementバックアップ

rmanはs3をバックアップ先にすることも出来るらしい 4:02 PM Nov 21st Tweetieで
バックアップ領域をamsにすることができる 4:09 PM Nov 21st Tweetieで
ディスク性能を検証するためのoracle orion というツールが無償提供されている。oracleのioを擬似的に発生させるので、oracle向けの性能検証にはおすすめ 4:12 PM Nov 21st Tweetieで
rmanバックアップはasm領域において障害発生時にはswitchでバックアップをそのまま本番系にするのがoracleのおすすめ 4:35 PM Nov 21st Tweetieで
oracle grid centerに有益な検証資料があるらしい asmもあるよ! 4:47 PM Nov 21st Tweetieで

orionは会場でだれも知ってる人がいないくらいのものですが、パッと見た感じはよさげな気がしました。macユーザーなのではまりそうなので今日はちょっと勘弁しておいてあげますが、urlはここにあるので皆さん試してみたらいいと思います。
http://www.oracle.com/technology/software/tech/orion/index.html

grid centerはこちら。
http://www.oracle.co.jp/solutions/grid_center/


ということで、非常に勉強になりました!