クラスタとは
クラスタとは、分野や状況によって使い方はさまざまではあるが、「群れ」「集まり」「集合体」などを表す言葉である。辞書や辞典で検索すると、もとはブドウの房という意味からなる言葉で、英語ではCluster(クラスター)と表記する。特に日本では2020年春頃からの新型コロナウイルス(COVID-19)感染の拡大により、疫学の分野において「集団感染」や「集団発生」といった意味でクラスタというワードがニュースで取り上げられ、世間的にもそういった意味でクラスタが使われる機会が増えてきた。また、ネット上では同じ趣味、思考、目的、属性などを持った人(つまり「オタク」)の集まりをクラスタと呼ぶこともある。
しかしIT用語の意味としては、複数のコンピュータを組み合わせて使う場合、そのコンピュータの集合をまとめて、クラスタ(またはクラスタリング)と表現することが多い。用途によって、HAクラスタ、ロードバランシングクラスタ、計算クラスタ(コンピュータクラスタ、クラスタコンピューティング)のことを指すことも多い。いずれにしても、複数のコンピュータを組み合わせ、1つのコンピュータやシステムとして動作させる手法のことをクラスタと呼ぶ。この記事では、クラスタと呼ばれるシステムの構成と手法について解説する。
クラスタリングの目的
クラスタの仕組みを導入する際の目的としては、以下が挙げられる。
高可用性の確保
高可用性とは、ユーザが常にシステムを利用できる状態を指す。つまり、常に止まらずに動く性能ということである。コンピュータを使ってシステムを作ると、障害などによってサービスが停止してしまう可能性がある。この停止時間が少ないシステムのことを、高可用性があるシステムと呼ぶ。クラスタで複数のコンピュータを組み合わせることによって、万が一クラスタ内のコンピュータが障害を起こしても、他のコンピュータがその役割を引き継ぎ、サービスの停止を最小限に抑えることが可能である。
拡張性の向上
拡張性(スケーラビリティ)とは、システムが負荷や要求の増加に柔軟に対応できる能力を指す。クラスタ内の複数のコンピュータに負荷を均等に分散することで、個々のコンピュータにかかる負担を軽減することができる。クラスタリングで拡張性を向上させることにより、システム全体の性能を向上させ、急なリクエストの増加などにも柔軟に対応できるようになる。
クラスタは目的やシステム構成などによって様々な種類が存在し、それぞれ仕組みが異なる。以下では、代表的なクラスタの種類について解説する。
HAクラスタ
HAとは、High Availabilityの略である。つまりHAクラスタとは、高可用性を実現するために、複数のコンピュータを連携させて1つのシステムとして動作する仕組みを指す。主に、コンピュータの故障、アプリケーションプログラムやOSの不具合に対して効果がある。HAクラスタが利用される例として、高い信頼性が求められる基幹業務システムのサーバやデータベースサーバなどがある。また、HAクラスタで処理が止まらない仕組みを作ることを、冗長化と呼ぶこともある。冗長化を行うことで万一、ハードウェア障害などで1台の機器が停止しても、システム全体としてはサービスを継続することができ、ビジネスが停止することを防ぐことができる。
HAクラスタの構成
HAクラスタには、アクティブ・スタンバイ型と、アクティブ・アクティブ型の構成がある。以下でそれぞれの特徴を紹介する。
- アクティブ・スタンバイ型
この構成では、通常時はアクティブ機で処理を行い、アクティブ機が正常に処理を行う間、スタンバイ機は使用せず待機している。アクティブ機とスタンバイ機は、お互いにハートビート(heartbeat)と呼ばれる通信を行い、定期的に相手の状態をチェックする。もし、アクティブ機に何らかの障害が発生し、処理を継続することができなくなると、スタンバイ機がそれを検知し処理を引き継ぐ。
- アクティブ・アクティブ型
この構成では、クラスタに参加するすべてのノードが処理を行う。故障したノードがあると、該当ノードの処理を別のノードが引き継ぐ。
一見すると、アクティブ・スタンバイ型は、コンピュータリソースを無駄遣いしているようにも思えるため、アクティブ・アクティブ型の構成の方が優れていると考えられることが多い。しかし、アクティブ・アクティブ型では、障害を起こしたノードを切り離すと、システム全体で処理することのできる能力が縮退する。そのため、何らかの障害があっても継続して処理を行うことができるようにするためには、スタンバイ機を用意することが望ましい。HAクラスタというと、2台での冗長化をイメージするが、実際には3台以上のコンピュータで冗長構成を取る場合もある。その場合には、必要な処理能力を確保するためのコンピュータN台と、スタンバイ用のコンピュータ1台を用意することが好ましいと考えられている。そのため、N+1構成のようにも呼ばれる。
デージーネットは、2004年に国内で初めてオープンソースソフトウェアを使ったHAクラスタ技術を発表した企業である。オープンソースソフトウェアを使ったHAクラスタの技術について、書籍を出版するなど専門的な活動をしている。また、LPI-Japanの「高信頼システム構築標準教科書」などの策定も行っている。現在も、Pacemaker、DRBD、Hawkなどのオープンソースソフトウェアを活用したシステムの冗長化を行っている。メールサーバ、WEB-DBサーバ、NFSサーバ、Windowsファイル共有サーバのほか、データベースのMySQL、監視システムZabbixなど、様々な分野でのクラスタリングを行っている。既に100セット以上の構築実績を持っている。
ロードバランシングクラスタ
ロードバランシングクラスタとは、処理の規模拡大のためのクラスタである。ロードバランシング、つまり負荷を分散するために、複数のコンピュータノードで処理を行う。個々に処理を行う能力を持ったコンピュータを複数個配置し、ロードバランサー(負荷分散装置)などを使ってリクエストを分散することで、大規模化させる方法が一般的である。ロードバランサとしては、専用の装置を使うこともできる。しかし、Linuxカーネルにはロードバランサとして動作するための機能としてLVS(Linux Virtual Server)が実装されている。keepalivedやldirectordなどのオープンソースソフトウェアを使えば、このLVSの機能を制御しロードバランサとして動作させることができる。
デージーネットでは、keepalivedの設定をWebUIから管理するソフトウェアとして、ILUKAを公開している。また、こうした機能を利用して、ロードバランサを使わずに、自律的に負荷分散を行うサーバシステムの構築も行っている。
「無料で使えるプロキシサーバ/ロードバランサおすすめ20選」へ
計算クラスタ
計算クラスタは、複数のコンピュータを用いて計算や処理を行う仕組みのことである。通常は、制御するためのソフトウェアがあり、そのソフトウェアがネットワーク上に分散したコンピュータノードに処理を分散する。そして、処理結果を集め、結果を表示する。このように、複数のコンピュータで1つの処理を行うため、クラスタコンピューティングやコンピュータクラスタと呼ばれている。
しかし、最近は、ビッグデータの解析のためにも複数のコンピュータを組み合わせて利用するようになった。その場合には、複数のコンピュータで1つの処理を行うのではなく、複数のコンピュータで複数の処理を同時並列的に行う。 デージーネットでは、Hadoop、Apache Spark、OpenSeach、Apache Solrなどを使って、複数のコンピュータでデータ分析を行うビッグデータ解析システムの構築も行っている。
クラスタとデータ共有
クラスタ内の複数のコンピュータで同じ処理を行うためには、コンピュータ同士でデータやアカウントの共有を行う必要がある。そのため、クラスタとデータ共有やアカウント共有はセットで使用される場合が多い。
データ共有の手法としては、Linux/Unix系のファイル共有の仕組みであるNFSや、ネットワークでディスクをミラーリングするDRBD、複数のコンピュータで共有ストレージを構築するCephなどの技術が使われている。
また、MySQLやPostgreSQLなどのデータベースを使ってデータを共有する場合には、レプリケーションなどの手法も使われる。Oracleのように負荷分散技術を持った製品を使うこともできる。
アカウント共有の技術としては、LDAPが使われることが多い。
デージーネットの取り組み
デージーネットは創業以来、システムの冗長化に取り組んできた。特に、クラスタサーバの構築では数多くの実績を持っている。
デージーネットでは、2005年までは、UnixWare Reliant HAなどの商用製品を利用してクラスタサーバを構築してきた。しかし、こうした製品は非常に高コストで、インターネットサーバの構築には見合わなかった。しかし、2005年にオープンソースソフトウェアのHeartbeatとDRBDを使った冗長化に成功し、国内では他社に先駆けて、OSSを使ったクラスタサーバ構築サービスの提供を開始した。その後、RedHat Cluster、Pacemaker、corosyncなどのクラスタソフトウェアでもサービスを開始し、お客様の課題や用途、予算に応じて、様々な冗長構成を提案することができる体制を築いている。
デージーネットでクラスタシステムを構築したお客様には、導入後支援サービスとして、Open Smart Assistanceを提供している。これは、ソフトウェア単体のサポートではなく、Linuxなどを含むシステム全体に対するサポートである。Open Smart Assistanceの保守サービスでは、ソフトウェアの使い方から運用方法まで、幅広い範囲でのQ&Aや、適正に運用できるようなセキュリティの情報提供、障害調査、回避を行い、安心して利用して頂けるよう管理者の業務をサポートしている。
【カテゴリ】:クラスタ  
【Webセミナー】Rocket.Chatだけじゃない!OSSビジネスチャットの最新情報
日程: | 12月19日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | Rocket.Chatの機能制限でお困りの方も必見!ライセンスフリーで利用できるOSSのビジネスチャットを紹介します。 |
ご興味のあるかたはぜひご参加ください。 |