Cloud Drive Accountingについて

Selectelクラウドのリソースの会計処理に関する記事のシリーズを続けます。



CPU時間メモリについては昨年議論されましたが、今ではディスクの転換が近づいています。



ディスクには3つのリソースが関連付けられており、それぞれ個別に考慮されます。

  1. ディスクストレージ
  2. 読み取り/書き込みのボリューム
  3. およびディスク操作の数
3つのリソースすべてについて説明する前に、仮想マシン設計のもう1つの興味深い機能であるリソースの個別のアカウンティングについて説明する必要があります。



仮想マシンデバイス

前に説明したプロセッサ時間(つまりプロセッサ)とRAMは、仮想マシンの不可欠なリソースです。 そうでない場合、仮想マシン自体はありません。 ただし、ディスクやネットワークインターフェイスのない仮想マシンを(困難ではありますが)想像できます。 さらに、同じドライブを異なる仮想マシンに接続できます。 したがって、問題が発生します。最初に1台のマシンに、次に別のマシンにあったディスクをどのように考慮するか、そして現在それらは一般に接続されていませんか?



初期のアカウンティングモデルでは、これらのリソースはすべて、接続先の仮想マシンに関連することを暗示していました。 しかし、これにより多くのあいまいさが生じ、Xen Cloud Platformで使用されていたモデルに戻り、このモデルを放棄しました。 写真は、このモデルの簡略版を示しています。 青はユーザーに属するものを示し、緑はアカウンティングが実行されるオブジェクトの名前を示します。



新しいモデルでは、各コンポーネントの消費が個別に考慮されるため、アカウンティングは完全に独立しています。 ユーザーへの出力の便宜上、これらの値は合計されて1つのマシンを参照するかのように表示されますが、実際には、仮想マシンにはアカウンティング用の独自のリソースが2つしかありません。これはプロセッサとメモリです。 残りのコンポーネント(ディスクとネットワーク)は3つの個別のエンティティを形成します(私は予約しませんでした-3)。 これらは、VDI、VBD、およびVIFです。 (仮想ディスクイメージ、仮想ブロックデバイス、仮想ネットワークインターフェイス)。 VIFですべてが明らかな場合、VDI / VBDではまったくありません。 なぜ2つあるのですか?



実際のところ、VDIは単なる「ディスクスペース」です。 どのマシンにも接続されておらず、読み取り/書き込み操作については何も知りません。 VDIのアカウンティングの目的は、「ストレージ」という1つの量だけです。 たとえば、図では、1つのディスク(VDI)がマシンに接続されておらず、保存されているだけです。



ただし、VBDはディスク操作を実行するドライバーにすぎません。 操作の数と読み取り/書き込みデータの量を数えるのは彼です。 VBDは、VDIとVM(仮想マシン)の間を接続します。



ディスクが仮想マシンに接続するたびに、新しいVBDが作成されます。



ディスク操作とは何ですか?

Linuxの観点から見ると、VBDは他の多くのデバイスと同じブロックデバイスであり、独自のドライバーが標準インターフェイスを提供します。 / dev / xvdaは/ dev / sdaまたは/ dev / hdaと変わりません。 オペレーティングシステムが何かを読み書きする場合、適切なコマンドでブロックデバイスドライバーを呼び出します。



ただ? はい 「ディスク操作が正確にいつ行われるのか」を理解しようとすると、さらに困難が始まります。Linuxカーネル開発者は、キャッシングアルゴリズムのデバッグと改善に多大な時間を費やしました。 統計が示すように、マシンがロードされるほど、読み取り要求と比較して書き込み要求が増えます。 逆に、マシンの負荷が少ないほど、ほとんどすべてのファイルが(初めてダウンロードされたときから)読み取られるため、書き込み要求と比較して、キャッシュされていない読み取り要求(もちろんパーセント)が多くなります。



実際、実際の数値は次のとおりです。クラウド全体で、読み取り操作と書き込み操作の比率は3/4です。 消費量が1日5 r未満の最初の車では、書き込みと読み取りの比率は2:1、正確には220万から110万です。 また、非常に深刻な負荷がかかったマシン(約450r /日)では、読み取り/書き込み比率は30万から400万です(マシンの費用の大部分は1日あたり300 GBを超える発信トラフィックです)。 明らかに、どこからでも300GBを割り当てることは不可能なので、これがディスクキャッシュがうまく機能する場所です。 (ちなみに、なぜMODにそんなに大きなメモリリザーブがあるのか​​という質問を予想して、そのようなキャッシュのためだけに)。



したがって、特定のファイル操作がブロックデバイスでアクションを作成するかどうかを予測することは不可能です。 ファイルの最初の読み取りが読み取り操作を引き起こすと予測できますが、ある程度の確率での再読み取りはそうではありません。



仮想ファイルシステム(/ proc、/ sys)、マウントされたnfs-balls、iscsi-devices、ディスクレスdrbd-ballsなどの操作:チケットに定期的に現れる問題をすぐに予想します。 アカウンティングの対象ではありません-/ dev / xvd *デバイスへの呼び出しのみが考慮されます。 明らかに、fifo、unixソケットなどを使用したあらゆる種類の操作。 また、ディスク操作を引き起こしません。 しかし、通常の同期コマンドは、反対に、アクティビティの急増を引き起こします。



All Articles