SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド

データベースを止めずにリソースを変更するには? ストレージを動的に増減し性能を引き出す仕組み

オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド 第14回

  • X ポスト
  • このエントリーをはてなブックマークに追加

ストレージ装置の追加

 データベース・システムを構成するハードウェア要素のうち、ハードディスクやフラッシュ・メモリーといった不揮発性デバイスは、1台ではデータベースが求める容量と性能を達成できないため、また故障に備えたデータの複製を作るため、複数台で構成します。

 ストレージにも、前回で解説したCPUやメモリーと同様にスケール・アップとスケール・アウトの概念があります。

 ストレージのスケール・アップは、1つのストレージ筐体のストレージ・コントローラに接続されるハードディスク・ドライブやフラッシュ・メモリーを増設していくという方式です。これに対しスケール・アウトはストレージ・デバイスを格納する筐体自体をネットワークで増設していく方式です。

 データベース・システム稼働開始時点で用意したストレージは、最初はほぼ空きであるため複数台ある各ストレージ・デバイスに均等にデータが格納されていきます。そのため、データベースへのアクセスには複数台分のストレージ装置のスループットを合算した値の性能が出せます。

 データベースのデータは時間とともに増えていきます。ここで、データベース・システム稼働開始時点で用意したストレージの空き容量が少なくなってきたため、ストレージ・デバイスをデータベース・システムに増設することを考えます。

 次の図は、4つのストレージ・デバイスで稼働を始めたデータベースが、時間が経過してストレージ容量がひっ迫してきたため2台追加したということを想定しています。

 稼働を始めたころは4台ともに充分な空きがあるため、追加されていくデータは4台ともに均等に格納されていきます。そのため、読み出し性能は4台分出すことができます。また、書き込みも4台に対して可能であるため、書き込み性能も4台分出せます。

 ここで、最初の4台の容量がひっ迫したため2台のストレージ・デバイスを追加したことを想定します。

 追加したストレージ・デバイスにしか空きがないため、追加した2台のストレージに新しいデータが格納されていきます。データを格納する書き込み性能は、格納されるストレージ・デバイスの性能に限定されることに注意してください。また、格納した既存データを読み出す場合も、格納されている4台のストレージ・デバイスからしか読みだされません。つまり、データベース・システム全体のストレージ・デバイスの性能の合算ではなく、アクセスされるストレージ・デバイスの性能しか出せないということです。

 そのため、データのアクセス・パターンとストレージ・デバイスのデータ配置が適合していないと、データベース・システム全体で用意したストレージの性能が出せないということになります。

 6台あるストレージ・デバイスから6台分の読み出し性能を出すには6台にデータが格納されている必要があり、6台分の書き込み性能を出すには6台に充分な空きがある必要があります。

 ストレージ・デバイスを追加すると、空き容量は簡単に増やすことができますが、性能を増やすことはそれだけではできません。では、ストレージ・デバイスを追加して性能を向上させるにはなにが必要でしょうか。

 読み出し性能はストレージ・デバイス全体にわたって読み出すデータが配置されている必要があり、書き込み性能はストレージ・デバイス全体にわたって空きがある必要があります。

 これらを満たすためにストレージ全体にわたってデータを配置するには2つの方法があります。

 1つ目は、ストレージ・デバイスが追加されたら、ストレージ全体にわたってデータを再配置することです。2つ目はパブリック・クラウドのようにあらかじめ多数のストレージ装置が存在することを前提に、最初から多数のストレージ・デバイスにデータを分散させることで再配置の頻度を下げる方法です。

データの再配置

 ストレージ全体の性能を引き出す1つ目の方法は、ストレージ装置全体にわたってデータを再配置することです。インテリジェントなストレージ装置では、ストレージのコントローラが複数のハードディスク・ドライブのデータを再配置する機能を持っているものがあります。

 スケール・アップ方式でのデータ再配置はそのストレージ・コントローラの制御化にあるストレージ・デバイスが対象です。

 スケール・アウト方式では、ストレージ・コントローラが異なる筐体間でのデータの再配置機能を持っていれば、複数の筐体間でもデータの再配置が可能です。

 また、Oracle DatabaseのAutomatic Storage Management(ASM)機能のようにデータベース・エンジンがデータの再配置機能を持っているものがあります。Oracle ASMはデータベースが認識するストレージ・デバイス間でデータの再配置が行えるため、複数のストレージ筐体で構成されるスケール・アウト型ストレージでもデータの再配置を行うことができます。

 これらのデータ再配置機能は、一般的にはストレージへの書き込みがあってもデータベースを稼働させたまま再配置できるようになっています。

 また、データベース・システムからストレージを削除する場合にも、データを安全に退避するためにはデータの再配置機能が必要になります。

 オンプレミス・システムではストレージ・ハードウェアを購入して設置するという過程があるため、後から設置したストレージの分も含めて性能を向上させるには、このデータの再配置機能が必要になります。

次のページ
あらかじめ多数のストレージ装置に配置

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド連載記事一覧

もっと読む

この記事の著者

日下部 明(日本オラクル株式会社)(クサカベ アキラ)

 日本オラクル株式会社でOracle Databaseを担当するエンジニア。主にOracle Real Application Clustersを中心とする高可用性構成や性能チューニングの問題解決およびコンサルティングに従事。著書に「これは使えるOracle新機能活用術」(翔泳社)。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/20422 2024/11/12 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング