【第7回】 Linux/OSS エヴァンジェリスト古賀政純の 『オープンソース・Linux超入門』~「初心者でもわかる、Linuxサーバーシステム活用者が知っておくべきポイント」(後編)

今回のゲストブログは、日本ヒューレット・パッカードが公式に認定するオープンソース・Linuxテクノロジーエバンジェリストで、Hadoopの技術者認定資格を保有する古賀政純さんです。オープンソースにこれから取り組もうとしている方々や、もう一度基本から学びたいという方々からのご要望にお答えして、『オープンソース・Linux超入門』を連載していただいております。 今回は、前後編にわけてLinuxを使ったサーバーシステムに限定して、さまざまな構成、応用事例などをご紹介します。(2016年8月9日)

非3層構成とオープンソース・Linux

前編は、オープンソース・Linuxを駆使した3層構成の概要、応用事例などを簡単にご紹介しました。ビジネスアプリケーションが稼働する企業システムにおいては、Web/AP/DBサーバーの3層構成をとることが少なくありませんが、3層構成をとらないシステムも数多く存在します。以下では、3層構成をとらないシステム例とオープンソース・Linuxの関係について紹介します。

ビッグデータ基盤とオープンソース・Linux

日本でもようやく一般の企業において導入が進んできたビッグデータ基盤は、大量のx86サーバーを並べ、オープンソースのビッグデータ基盤ソフトウェアを稼働させるのが一般的です。このビッグデータ基盤は、一般的に3層構成をとりません。

3層構成の場合は、WebサーバーとAPサーバー間、さらにAPサーバー間とDBサーバー間で別々のネットワークを構成することが一般的ですが、ビッグデータ基盤では、大量のx86サーバーがフラットなネットワークで接続されて一つのクラスターを構成します。

さらに、x86サーバー同士を高速なインターコネクトなどで接続する場合もあります。ビッグデータ基盤は、さらに、分析用の基盤ソフトウェアが稼働する「ビッグデータ分析基盤」と、単にデータを溜めておくだけの「分散ストレージ基盤」の2種類に分けることができます。

ビッグデータ分析基盤は、膨大なデータの中から、企業や組織内の新たな知見を得えて、経営に生かすための情報を得るシステムであり、今、IoT(Internet of Things:モノのインターネット)や人工知能と連携し、欧米の多くの企業が採用しつつあります。一方、分散ストレージ基盤は、大量のユーザーデータを溜めておくファイルサーバーの役割を果たすことが多く、分析よりはむしろ保管に重きが置かれるシステムです。

ビッグデータ分析基盤と分散ストレージ基盤では、採用されるOSや、その上で稼働するオープンソースソフトウェアに違いがあります。ビッグデータ分析基盤では、ノード数が少ない場合や保守サポートが求められる場合は、ベンダー提供のRHELなどが利用されますが、大量のx86サーバーが導入される場合は、フリーLinuxであるCentOSやUbuntu Serverが導入されるのが一般的です。

その上で稼働するビッグデータ分析用のオープンソースソフトウェアとしては、代表的なものとしてHadoop(ハドゥープ)があげられます。Hadoopは、複数のx86サーバーからなる「Hadoopクラスター」を構成します。Hadoop自体は、Apacheコミュニティがリリースしている無償版のものを利用する場合もありますが、バグ排除、性能、利便性、保守サポートの観点から、Hadoopディストリビュータ各社がHadoopエンジン本体と周辺ソフトウェア等をパッケージ化して提供する商用のHadoopディストリビューションを利用する場合が多く見られます。

Hadoopディストリビューションのソフトウェアとしては、MapR社が出しているMapR、Hortonworks社が提供しているHDP、Cloudera社が出しているCDHなどが有名です。

guest-bog-20160720_2-01

一方、分散ストレージ基盤では、分散ストレージ基盤ソフトウェアとOSがセットになったものもあります。例えば、SUSEが提供している SUSE Enterprise Storage(通称SES)は、Ceph(セフ)とよばれるオープンソースの分散ストレージ基盤ソフトウェアをベースに、SUSE Linux Enterprise Serverを同梱したソフトウェアアプライアンスです。

また、Red Hat Gluster Storage(通称RHGS)は、Red Hat Enterprise LinuxをベースとしたOSと分散ストレージ基盤ソフトウェアのGlusterがセットになったソフトウェアアプライアンスとして提供されています。また、これらのSES やRHGSなどの分散ストレージ基盤ソフトウェアは、オープンソースソフトウェアがベースとなっているものの、ユーザーデータが保管されるファイルサーバーの役割を果たすため、障害時のデータ保全の観点から、ベンダーの保守サポートが求められる傾向にあります。

そのため、エンタープライズ向けの分散ストレージ基盤としては、フリーLinuxの採用があまりみられず、オープンソースをベースにしている製品とはいえ、ソフトウェアアプライアンスなどのベンダーの保守サポートが受けられるものが採用されます。ちなみに、SESは、エンタープライズ用途向けのオープンソースをベースとした分散ストレージソフトウェアとしても注目を浴びていることもあり、2016年6月から、HPEがOEM提供を開始し、ハードウェアとSESをHPEが一括保守サポートするようになっています。

guest-bog-20160720_2-02

欧米のサービスプロバイダーでは、無償版のHadoop、Gluster、Cephを駆使してビッグデータ分析基盤や分散ストレージ基盤を構成している場合もありますが、これらの無償版のオープンソースソフトウェアを駆使する企業は、それらのオープンソースソフトウェアの不具合を解消できる優れた技術者を確保している場合がほとんどです。

性能面での不具合対応だけでなく、バグによるシステム障害にも対応するとなると相当のスキルセットを保持し、さらに不具合を解消するためのソフトウェア解析能力、さらには、設計図となるソースコードを改変するスキルも必要となるため、無償版のオープンソースを導入する場合には、それなりのリスクとスキルをもった人員確保を覚悟しておく必要があります。

ちなみに、ご紹介したHadoop、Gluster、Cephについては、筆者が執筆した書籍「CentOS 7実践ガイド」にもHPE ProLiantサーバーによるハードウェア構成、具体的な構築手順、使用例を掲載しています。本書でオープンソースの最前線を知っていただき、次世代のIT基盤構築にお役立て頂ければと思います。

Hadoop、Gluster、Ceph の構築手順や使用法が掲載されている書籍「CentOS 7実践ガイド」:
https://www.amazon.co.jp/dp/484433753X/ref=cm_sw_r_tw_dp_QsbExbSM4H5PD

 

HPCシステムとオープンソース・Linux

HPC(High Performance Computing)という言葉をご存知ですか?主に科学技術計算用途のサーバーシステムであり、超高速のCPUやメモリなど特注品で作られたものは、スーパーコンピューターと呼ばれます。このHPCシステムも3層構成をとりません。

HPCシステムは、大きく分けて、共有メモリ型と分散メモリ型に分けられます。共有メモリ型は、1台のサーバーに搭載された複数のCPUコアが巨大な単一のメモリ空間を利用するシステムです。一方、分散メモリ型は、ビッグデータ基盤と同様に、超高速計算を行う大量のx86サーバーを並べ、フラットなネットワークで接続する構成をとるのが一般的です。

分散メモリ型のHPCシステムの多くは、高速のインターコネクト(一般的にInfiniBandなどが利用されます)で接続されます。HPCシステムにおけるオープンソース・Linuxは、共有メモリ型と分散メモリ型において、利用されるライブラリが異なるという特徴があります。

共有メモリ型のHPCシステムでは、共有メモリ型のCPUコアを効率よく利用するためのソフトウェア(OpenMPが代表的)とCPUに最適化されたコンパイラを使ってユーザーがプログラムを開発します。OpenMPなどを駆使して開発したプログラムは、共有メモリ型のCPUコアを無駄なく利用しますが、通常は、複数のユーザーが共有メモリ型システムを利用するため、ジョブ投入ソフトウェアによってスケジューリングされて実行されます。ジョブ導入ソフトウェアとしては、TORQUE、Univa Grid Engine、PBSPro、LSFなどが有名です。また、最近の分散メモリ型のHPCシステムは、巨大メモリを搭載する場合が多く、インメモリ処理による高速化も期待できます。

OS環境は、RHEL、CentOS、Ubuntu Serverの利用もみられますが、Scientific Linuxと呼ばれる科学技術計算向けのソフトウェアが最初から同梱されているLinux OSも利用されます。

guest-bog-20160720_2-03

一方、分散メモリ型のHPCシステムにおいては、超高速計算サーバー群において、RHELやCentOS、Ubuntu Server、Scientific Linuxなどの利用が見られます。近年は、機械学習(人工知能)や、数値計算用途のソフトウェアがUbuntu Serverに対応しており、大学や研究所で、Ubuntu Serverの利用が増えてきています。

超高速計算サーバー群は、複数のx86サーバーが計算した結果をお互いのサーバーで情報をやり取りするライブラリ(MPIが代表的)を利用するのが一般的です。また、共有メモリ型のHPCシステムと同様に、ユーザーのプログラムは、ジョブ投入ソフトウェアを使って実行されます。

guest-bog-20160720_2-04

以上で、非3層構成のビッグデータ基盤やHPCシステムを簡単にご紹介しました。これ以外にも様々なシステム構成がありますが、まずは、基本的な3層構成、さらに、代表的な非3層構成をざっくりとおさえておくとよいでしょう。次回からは、Linuxシステム導入前の検討事項、Linuxサーバーの用途に応じた基本的な設定、OS設計などについて紹介します。

【筆者プロフィール】

古賀政純(こが・まさずみ)
日本ヒューレット・パッカード株式会社
オープンソース・Linuxテクノロジーエバンジェリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国ヒューレット・パッカードからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。

現在は、日本ヒューレット・パッカードにて、Hadoop、Spark、Docker、OpenStack、Linux、FreeBSDなどのサーバー基盤のプリセールスSE、文書執筆を担当。日本ヒューレット・パッカードが認定するオープンソース・Linuxテクノロジーエバンジェリストとして、メディアでの連載記事執筆、講演活動なども行っている。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「Mesos実践ガイド」「Docker 実践ガイド」「CentOS 7実践ガイド」「OpenStack 実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です