Evanオープンソース・ソフトウェアはコミュニティをベースとしたソフトウェアの共同開発を本気で且つ善意で推進してきた。この開発の最も顕著な例はLinuxだ。様々なディストリビューションのLinuxが好んでクラウドのOSとして採用され、現在のアプリケーション開発者の主力プラットフォームになっている。直近の話として、我々はこの精神がDockerという形をとったコンテナ化や構造化SQLやNoSQLそして解析系のツールに適用されたのを見ている。ストレージはどうだろう?オープンソースのソフトウェア開発の進化は、ストレージの世界を素通りしてしまったのか?そうではなく、ストレージにオープンソースを実装したいと考えるユーザーには選択肢が存在しているのだろうか?オープンソース技術を定義するまず、我々が言っているオープンソースとは何かを説明しよう。その名が示すようにオープンソースは、その製品のソースコードがオープンで自由にアクセスでき誰からも読めることを意味している。現実のオープンソースの適用範囲はもうすこし広い。ほとんどのオープンソース技術プロジェクトが、ライセンス条件のもとでプログラムを使えるようにしているからだ。ライセンスは、プログラムがどのように利用または再利用されるか、どのような属性が付与されなければならないか、パテントがカバーする範囲はどこまでか、どのような商用利用ならば許可できるか、を定めている。GPL)のようなライセンス・スキームでは通常、ライセンシー(ライセンスの認可を受けた人)は自分の作るプログラムに制約を設けない。自由に配布、利用することが求められるプロジェクトのために開発されたそのプログラムにコピーライトが適用される。これは、別な言い方ではコピーレフトとして知られている。3.0の追加条項で、この部分が確認され、プロジェクトの結果として開発されたパテントは誰でもが自由に利用できる。ストレージ・ソフトウェア開発にとってこれが意味するものは何だろうか?実際のところ、ストレージプラットフォームの開発は、他のソフトウェア開発と何ら変わらない。従って、オープンソースはストレージにとって理にかなった選択だ。永続的ストレージへの記録でデータの正確さを100%保証しながら、複雑な問題を大規模な共同開発でできるからだ。初期の共有ストレージプラットフォームは、ベンダー独自のハードウェア上で開発されていたので、オープンソース開発の対象として選ばれることはまれだった。この15年間にわたるサーバーとストレージのコモディティ化の進展により、市販のコンポーネントからコストも安く信頼性も高いストレージプラットフォームを構築する状況が訪れた。ソフトウェア定義のストレージ(SDS)の立ち上がりとともに、オープンソース・ストレージは多数の商用製品がひしめくSDS市場の一角を占めるようになった。オープンソース・ストレージなのかエンドユーザーとして、オープンソース・ストレージ技術を使う理由はなんだろうか?それは、商用SDSと同じように、オープンソース・ストレージはソフトウェアの購入からハードウェアの購入を切り離してくれるからだ。これによって、例えば、自分が面倒をみるハードウェア・プラットフォームの数を最小限にする、などのコスト面、運用面のメリットを考慮したハードウェアの調達、構築、設計が可能になった。通常、自社独自のストレージを販売するベンダーは、ハードウェアに大きな利幅を設けている。ハードウェア・コンポーネントが予約注文で作られていた時代であれば、これは理解可能なことだった。今日のコモディティ世界では、構成の試験と検証のコストをカバーすること以外の利幅は到底受け入れられない。オープンソース・ストレージのプラットフォームは、そこからさらに一歩進んで、ストレージ・ソフトウェアの設備投資費用をゼロにするものだ。後に残るのは、サポート費用を払うべきか、払うのならどのように払うのか、という事だけだ。実際のところ、オープンソース・ストレージを使う時、ほとんどの企業が直面する主要な問題は、ベンダーかVAR(付加価値再販業者)からサポートが受けられるか、ということだ。ありがたいことに、サポートの原型となるものは存在する。(RHEL)のサポートをすることによって好調なビジネスを展開している。RHELは市販品でありFedoraディストリビューションから派生したものだ。逆に、RHELはCentOSなどのオープンソース技術のディストリビューションとして入手することができる。オープンソース・ストレージは、標準的な商用ストレージ製品と同レベルの柔軟性を提供する。本番環境で有償サポート付きのオープンソース・ストレージシステムを動かすこともできる。この方法なら、試験と開発は社内サポート付きのストレージ上で行える。このアプローチによって大幅なコスト削減ができる。スケールアウトのオブジェクトストレージの類を必要とする非構造化データには有効だ。製品を選ぶオープンソースの技術は、オブジェクトベース、ファイルベース、ブロックベースのストレージ市場の広範な領域における要件を網羅している。一種類のプロトコルで動く製品もあれば、エミュレーションやプロトコルコネクターを介して複数のプロトコルをサポートしているものもある。オブジェクトストレージオープンソース・ストレージ製品が属するカテゴリーで最も多いのはオブジェクトストレージだ。通常、コストを低く抑えなければならないアーカイブやバックアップデータの保存先として使われる。Weil氏の博士論文をベースに2007年から始まったオープンソース・テクノロジー・プロジェクト。(LGPL)バージョン2.1でライセンスされている。(RADOS)として知られる、スケールアウト・分散型オブジェクトストレージである。ストレージ、メタデータサービス、APIサービス、クラスター監視を提供する複数の物理または仮想ノードによって構築される。Cephはオブジェクトの他に、ブロックデータとファイルデータをサポートする。前者はRADOSブロックデバイス、後者はファイルシステム・ゲートウェイのCephFSが使われる。HatはCephのサポートを提供していたInktankという会社を買収した。現在は、もっと堅牢でエンタープライズレベルの機能を実装したCephの商用バージョンを販売している。OpenIO会社としてのOpenIOは、emailからバックアップ、アーカイブまで様々なアプリケーションをサポートするスケールアウトのオブジェクトストレージを開発している、フランスの会社だ。3でライセンスされている。OpenIOは2006年から開発が始められたが、オープンソースになったのは2012年になってからだ。大半のオープンソース・ストレージ製品と違い、OpenIOはx86とARM両方のプロセッサー・アーキテクチャーをサポートしており、一つのクラスター内に両者を混在させることもできる。Licenseバージョン2.0でライセンスされている。ソフトウェアは軽く、Dockerコンテナとして、あるいはHomebrewを使ってMacOS上で、またはWindowsやLinux環境でも動作する。この製品もx86とARMをサポートしている。Minioには有償のサポートはなく、コミュニティによるサポートに頼っている。Server2016年にDockerコンテナイメージとしてScalityからリリースされた。この製品は、その時から60万回以上プルされている。APIと互換性を持ったオブジェクトストレージを簡単に作れる。Serverの代わりに、有償サポートが付いている製品であるRingに移行することをScalityは期待している。SwiftOpenStackのオブジェクトストレージ・コンポーネント。汎用サーバー上で稼働するスケールアウト型ノードベースのオブジェクトストレージを提供する。Swiftはまた、データアクセスに使われるプロトコルの名称でもあり、他の様々なオブジェクトストレージ・ベンダーにサポートされている。SwiftStackは有償サポートを提供しておりSwiftの開発プロジェクトを統率している。Lustre主にハイ・パフォーマンス・コンピューティング環境で使われている並列ファイルシステム。Systems(OpenSFS)という団体が管理しているGPLバージョン2でライセンスされており、Linux上で稼働するように設計されている。2017年5月までは、IntelがLustreのソフトウェアのみのデプロイメントを有償でサポートしていたが、すでにサポートを打ち切ったようだ。Networkのような会社がハードウェアとバンドルされた製品としてサポートを行っている。FreeNAS10年以上も前から存在するオープンソース・ストレージアプライアンス。(ZFS)がベースになっている。IXsystems社がTrueNASというハードウェアアプライアンスと一緒にFreeNASの有償サポートを提供している。Hatからも市販されている。Hatに買収されるまでGlusterFSの開発とサポートを行っていた。このソフトウェアは、GPLバージョン3でライセンスされている。GlusterFSは、複数のサーバーやノードのストレージリソースを単一の並列ファイルシステムに統合する。システムを構成するサーバーは、ストレージブリックと呼ばれるストレージプロバイダー(供給者)かストレージコンシューマー(消費者)になれる。ストレージの製品として、GlusterFSの実装は簡単である。分散メタデータ・アーキテクチャーを使っているため、特に大規模なファイルアーカイブに向いている。CinderOpenStackプロジェクトの一部として、仮想インスタンスのデータを永続保存するためのブロックレベルでのアクセスを提供する。Cinderは、論理ボリュームマネージャーまたはOpenStackを従来のストレージで使えるようにするプラグインを利用してローカルストレージにアクセスする。そのため、サポートはストレージベンダーかOpenStackディストリビューション・プロバイダーから提供される。OpenEBSコンテナ化されたアプリケーション用にブロックベースのストレージを開発しているオープンソースのプロジェクト。2.0でライセンスされている。多くのオープンソース・ストレージ製品に見られる傾向だが、OpenEBSもまだベータの状態で、本番での使用に備えて活発な開発が続いている。Portworksストレージ付きのコンテナをベースとしたスケールアウト・ストレージ製品。Portworksは会社として商用エディションのPX-Enterpriseとフリーの開発者向けエディション、PX-Developerを提供している。開発者向けエディションは、拡張性に制限がありGUIもついていないが、開発環境の中では商用製品の代わりに十分使えるものとなっている。この製品はパブリッククラウドにデプロイできるという付加価値を持っている。コントリビューターはお返しをする人オープンソースの技術は、言うまでもなくコミュニティにお返しをすることで成り立っている。誰でもこれまで話してきたプラットフォームの開発に貢献することができる。大企業にとっては、自社の人間がオープンソース・ストレージソフトウェアの開発に関わっているのは理にかなっている。すれば、(まったくベンダーのサポートが無い場合や開発テストが目的の場合でも)社内からサポートを受け、新しい機能の統合を指揮する機会が得られる。アーカイブやバックアップなどの長期にわたるデプロイメントでは、オープンソースの保守に関わることによってベンダーが市販製品の販売中止のリスクを軽減できる。iSCSIターゲットやLinuxのSMBなどのオープンソース・コンポーネントを使って自作のストレージを構築する、という手もある。あなたのストレージ基盤環境、特にZFSファイルシステムと連動するときは、これらのコンポーネントを使ってファイルサービスやブロックサービスを提供できる。いえ、開発者のコミュニティ以外、誰からもサポートを受けることができない。この選択肢は、気の弱い人には向いていない。オープンソース・ストレージ市場は、主要なストレージ・データタイプと多様な使い方に応じた広範な製品群を提供している。通常は、一つの会社がオープンソース製品を開発し、コードをコミュニティに開放しつつそのサポートを行っている。大企業にとっては、普段市販ストレージのプロバイダーから受けているレベルのサポートが受けられないため、オープンソース製品の使用は難しいと映るだろう。時間はかかるだろうがオープンソースはストレージ世界に重要な貢献をするようになるだろう。Blueをベースに活動する独立系コンサルタント。このページに掲載されている記事・写真・図表などの無断転載を禁じます。表示させるためには、JavaScriptを有効にしてください。