HA, HPC クラスターとは?シャーディング方法も解説

クラスタークラスターとは、複数のコンピュータで1つの機能を実現することです。

なお、クラスターを構成する各コンピュータをノードと言います。

データベースの基礎知識
スポンサーリンク

クラスターの種類

クラスターは目的に応じて、次の 2 種類が存在します。

  • HPC (High Performance Computing) クラスター:パフォーマンス向上を目的
  • HA (High Availability) クラスター:可用性 (システムの継続稼働) の向上を目的

HPC クラスター

HPC クラスターとは、パフォーマンスの向上を目的としたクラスターです。

複数のノード (コンピュータ) に処理を分散できるため、早く処理が終わります。

HA クラスター

HA クラスターとは、可用性 (システムの継続稼働) の向上を目的としたクラスターです。

1台が故障しても他のノード (コンピュータ) で処理を継続できます。

高可用性 (HA) クラスターは、次の2種類の構成が存在します。

アクティブ/パッシブ (アクティブ/スタンバイ) 構成

アクティブ/パッシブ構成とは、待機状態のノードを用意して、障害時に切り替える構成です

アクティブ/パッシブ構成は、パッシブ側の状態によって次の 2 種類があります。

コールドスタンバイにする理由は、待機中のデータベースライセンス費をカットできることです。

その代わり、障害が発生してからデータベースを起動するため、切り替えが遅くなります。

アクティブ/アクティブ構成

アクティブ/アクティブ構成とは、通常時から全てのノードを処理に使う構成です。

アクティブ/アクティブ構成は、HA クラスターと HPC クラスターの両方の性質を持ちます。

なお、障害発生時は、残ったノードに負荷が集中する点に注意が必要です。

スポンサーリンク

クラスターを実現する技術

クラスターを実現する方法は、主に次の2つが存在します

シェアードエブリシング (シェアードディスク/共有ディスク)

シェアードエブリシングとは、各ノードが共通のストレージを利用する構成です。

シェアードナッシング

シェアードナッシングとは、各ノードストレージ等のリソースを共有しない構成です。
クライアントとデータベースサーバーの間にロードバランサーを置いたりする

シャード

シャードとは、データ (テーブルやデータベース) を小さく分割したものです。

シャーディング

シャーディングとは、シャードにデータを割り当てる方法です。

シャーディングには、主に次の3種類が存在します。

  • Key Based Sharding
  • Range Based Sharding
  • Directory Based Sharding
Key Based Sharding (Hash Base Sharding)
Key Based Sharding とは、カラム(列)のハッシュ値で行をシャードに割り当てる方法です

以下の例では、COLUMN1 のハッシュ値に応じて、行を 2 つのシャードに割り当てます。

https://www.digitalocean.com/community/tutorials/understanding-database-sharding

なお、シャードの割り当てに使うカラムは、シャードキーといいます。

Range Based Sharding
Range Based Sharding とは、値の範囲ごとに、行をシャードに割り当てる方法です。

以下の例では、PRICE カラムの値の範囲に応じて、行を 3 つのシャードに割り当てます。

https://www.digitalocean.com/community/tutorials/understanding-database-sharding
Directory Based Sharding
Directory Based Sharding とは、カラムで割り当てるシャードを指定する方法です。

以下の例では、DELIVERY ZONE カラムで、割り当てるシャードを指定しています。

シャードの種類

シャードの種類には、次の 2 つが存在します。

  • プライマリーシャード
  • レプリカシャード
プライマリーシャード
プライマリーシャードとは、読み書き可能なシャードです。
レプリカシャード
レプリカシャードとは、読み取り可能なプライマリーシャードのコピーです。

レプリカシャードは、プライマリーシャードと別のノードに配置します。

レプリカシャードは、プライマリーシャードからレプリケーションします

これにより、ストレージ障害に耐性がつき、可用性が向上します。
(つまり、プライマリーシャード = HPC クラスター、レプリカシャード = HA クラスターも実現)

上記では、左のストレージが故障しても、シャード1、2のデータが残っています。

スポンサーリンク

最後に

関連記事

データベースの基礎知識

参考記事

クラスタシステムとは?概要や目的、歴史、種類を解説 | ビジネス継続とITについて考える
「クラスタシステム」は、システムの障害対策に有効な手段のひとつです。この記事では、クラスタシステムの概要と歴史、目的に応じてどのような種類があるのかなどについて解説します。

http://www.mysql.gr.jp/frame/modules/bwiki/index.php?plugin=attach&refer=matsunobu&openfile=200707_MySQL_Cluster_OSCKyoto.pdf

https://www.sraoss.co.jp/wp-content/uploads/files/event_seminar/material/2019/dbtech2019-sraoss-postgresql-cluster.pdf