スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

クラウド業者は鼠小僧?


今日は前々回に書いた「3)仮に見積もりで大きなリソースを必要としても、実態として使わないなら他で流用してしまう」の内容について書きます。

世の中の多くのシステムでは1.5倍理論のために使わない領域を抱えています。多分稼働率80パーセントのシステムなんて皆無です。50パーセント使えばかなり良いほうだと思います。そのため、論理的にはかなり無駄な投資をしていることになります。この投資をいかに効率的にするかが賢いITの付き合い方になるんだと思います。

しかし極力この無駄を省くことを追求すると、リスクが生まれます。それはまさかこないと思っていた1.5倍の需要が現実のものとなった時に起きます。エンジニアであればあるほどいい加減なことは言えず(良くも悪くも営業さんは勢いですが(笑))、この絶対にありえないまさかに対応できなければ安心できないのです。そのためのヒントが前回のリニアにリソース増強できるようにするに繋がります。

そもそも無駄だとは思っていてもリソースを用意してしまうのは、増強が追いつかないリスクに対しての結果であり、そこがクリアできれば安心して無駄な買い物を控えることができます。論理的には複数のシステムを集めることでこのリスク回避の領域を共有できます。

例えば、必要な領域10に対して50の余剰リソース(1.5倍を重ねた無駄)を構えるとシステムが10集まると、
(10+50)×10=600
となりますが、50の領域を10のシステムでシェアすれば
10×10+50=150
となり、かなり削減できます。そこそこの企業であればシステム数は10なんてことはないので、天文学的な余剰リソースがあることになります。

さて、やっとこさ本題に入りますが、これらのリソースをシェアするには仮想化技術が有効です。仮想化技術を使わずにリニアにリソース増強で頑張る方法もありますが、かなり苦労します。前回も書いたように大きく分けてリソースには
・CPU
・メモリ
・ディスク
があります。仮想化技術を使うとこれらをまとめて管理できます。また、注意したいのは仮想化技術をいくつものレイヤーで導入しないことです。所謂ハイパーパイザーを入れると不要になる仮想化技術はいくつもあります。実際には不要だと判断できなかったり、ハードウェアレイヤーからアプリケーションレイヤーまで一気通貫見れないために自分のレイヤーだけで効率化を考え、結果的に無駄が生まれます。

ちなみに、vmwareを例にすると、先ほどの3つのリソースのうち、CPUとメモリは設定でオーバーコミットができます。特に注意すべきはメモリのオーバーコミットですが、物理サーバーに普通に組んだ時と同じくスワップ状態になると急激にスローダウンします。ちなみにvmwareでは、ゲストOS起動時にはそれなりにメモリ容量を確保しますが、全く使わないと五分弱で使用していないメモリが解放されはじめます。もちろんゲストOSから見れば減ったようには見えませんし、物理的な限界を超えなければ再割り当てされます。

また、ディスクに関してはシンプロビジョニングという機能が使えます。これもディスクのオーバーコミットと言えますが、動きはメモリほど単純ではありません。というのはシンプロの場合、ファイルシステムの管理からは切り離されたものであるためファイルが不要になって削除してもディスクレイヤー(ストレージレイヤー)まで情報が伝わらないのです。そのため削除の多いシステムにおいては注意が必要です。ちなみにシンプロビジョニングはvmwareではなくストレージレイヤーでも利用できます。両方でやるのはあまり意味がないのでどこのレイヤーでやるかは考える必要があります。前回記載したプールの概念とうまく組み合わせて考える必要があります。

また、ディスクのオーバーコミット的な意味合いの技術として重複排除という機能もあります。オラクルのデータベースでは重複排除と圧縮を同時に行うことが可能です。オラクルの場合ディスクだけではなくメモリの削減もできるのでかなり魅力的です。ただ個人的にはバグが怖いので検証するとともに慎重に選択したいです。
その他、ファイルシステムやボリュームマネージャー、バックアップソフトなどでも重複排除できます。

なお、私なら普段使うデータはハイパーパイザーのシンプロビジョニングで合理化し、バックアップはストレージレイヤーでまとめて重複排除したほうがいいと思います。というのは、普段使うデータは同じデータパターンになることは可能性として低い(例えばお客さんごとにデータがあればそれぞれの名前などの情報は異なる)ため重複排除するよりもシンプロビジョニングで使わない領域を節約したほうが効率的だからです。逆にバックアップデータのように複数世代のデータを取る場合にはデータパターンが重複する可能性が高いからです。

多少バックアップについて触れると、個人的にはDataDomainのアーキテクチャは好きです。Netappからスピンアウトしたメンバーが設計しただけあって、基本設計はONTAPに似ていますが違った特徴もあります。DataDomainでは重複排除するためのセグメントが4~12KBの可変長に分割されます。重複部分を探すには全文検索の「分かち」と似たような感じなので可変長のほうがより重複しやすくなります。その他のストレージは固定長なのでセグメントの先頭で1バイトズレるとそれ以降全てが別のセグメントになってしまいます。

さて、タイトルの意味についてですが、どのクラウド業者もオーバーコミットを駆使しています。特に価格競争に勝つためには、仕入れを安くして、在庫を減らし、増強のリードタイムを減らします。特に在庫を減らすのは効果的なので使わないであろう領域はオーバーコミットします。中でも大口の客は大きく領域を確保しがちです。つまりその行為が義賊とされた鼠小僧に似ていると言えなくもないかと思います(大名屋敷から盗んで世間にばらまくという意味で)。とは言え、実際の鼠小僧が小判をばらまいたという事実はないようですが。。。

ということで、ITの無駄についてシリーズもの書いてきましたが、一旦ここまでにしようと思います。まだまだ気ままなブログは続きます。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。