組込みシステムのデータ保全に「ソフトウェアRAID」が最適な理由ソフトウェアRAID

組込みシステムにおけるIoTやAI、エッジコンピューティングの活用が広がる中でデータ保全もより重要になりつつある。このデータ保全に必要なストレージへのRAIDの組込みでは、RAIDカードやチップセットRAIDといったハードウェアRAIDの採用が一般的だったが、組込みシステムにおいてはさまざまな課題もあった。PFUのソフトウェアRAIDは、これらの課題を解決することが可能だ。

» 2020年11月20日 10時00分 公開
[PR/MONOist]
PR

 産業機器などに用いられる組込みシステムには、全体として高い可用性が求められている。中でもストレージは重要だ。その理由のうち最大なのは、データの保全に関するものだろう。ストレージはシステム稼働中、頻繁にデータの出し入れを行う。ただ、ヘッドやディスクといった物理的な可動部を持つHDDは、使用時間につれて故障が増えるという宿命を持つ。振動に強いともいえない。

 最近でこそ、振動に強く速度に優れたSSDを採用する組込みシステムが増えた。しかし、大容量で比較的安価なHDDは、記録装置として使いやすい。2台のHDDでデータを冗長化し、その保全を実現するRAIDが注目されるのはこのためだ。

 ただ、RAIDにも課題はある。データ保全に用いる「ミラーリング」を実現するRAIDは、2台のHDDのうち1台を主とし、別の1台をバックアップと位置付ける。問題は、障害発生時の切り替えがうまくいかず、組込みシステム全体のレスポンスを低下させたり、ハングアップさせたりする製品があることだ。

 IoT(モノのインターネット)やAI(人工知能)、エッジコンピューティングなどのトレンドの中で、昨今は組込みシステムにおけるデータ管理にも注目が集まっている。IoTをつなげるネットワーク環境において、1台の障害が他に及ぶ危険がある。エッジ環境でいかにデータを保全するかが重要になってきているのだ。

ハードウェアRAID、OS標準のソフトウェアRAIDは一長一短

 組込みシステムでも注目が集まるRAIDには、幾つかの方式が存在する。

 まず、マザーボード上に拡張カードを追加してRAID機能を実現する「RAIDカード」がある。一般的なRAIDの方式ともいえるRAIDカードだが、そのサイズや形状が組込み先のシステムの筐体サイズや内部スペースの制限をクリアしていることを事前にチェックしなければならない。装置の内部で活用しやすいようコンパクトに設計された組込みシステムでは、内部のスペース的に大きなRAIDカードを装着できないことも多いのだ。

 マザーボード上に用意されたチップセットにRAID機能が組み込まれている場合もある。いわゆる「チップセットRAID」だが、RAIDカードのように追加コストはかからないものの、機能面では大きく劣ることが課題になる。

 これらのRAIDカードとチップセットRAIDはハードウェアをベースとする「ハードウェアRAID」だ。ハードウェアRAIDに共通する課題となるのが、生産やサポート、部品の供給などが終了するEOL(End Of Life)だ。

 ハードウェアRAIDに対して、ソフトウェアでRAIDを実現する「ソフトウェアRAID」も存在する。最もよく知られているのが、OSであるWindowsの標準機能として提供されているものだろう。しかし、OS標準のソフトウェアRAIDは、組込みシステム向けという観点ではチップセットRAID以上に機能面で不足することが多い。

 これら一長一短のあるRAID方式に対して、ソフトウェアRAIDでありながらRAIDカードと同等以上の機能と性能を持つ製品を提供しているのがPFUだ。

 PFUのソフトウェアRAIDは、OS標準のソフトウェアRAIDと比べて内部構造が大きく異なる点が特徴となる。OS標準のソフトウェアRAIDは、RAID制御のためのアプリケーションをドライバ層の上に追加するような内部構造になっている。一方、PFUのソフトウェアRAIDは、SATAインタフェースを持つストレージを制御するWindows標準のAHCIドライバについて、PFUが独自に開発したRAID制御が可能なドライバに置き換えることでRAID制御を実現している。

PFU インダストリープロダクト事業部 第一技術部の堀貴志氏 PFU インダストリープロダクト事業部 第一技術部の堀貴志氏

 この方式であれば、ソフトウェアRAIDといえどもCPUが処理するレイヤーが増えない。開発に携わったPFU インダストリープロダクト事業部 第一技術部の堀貴志氏は、「OS標準のソフトウェアRAIDと異なり、処理のオーバーヘッドが少ないので、ハードウェアRAIDと遜色ない性能が実現できます。また、OS標準のソフトウェアRAIDでは採取が難しい、ディスクや経路、コントローラーに関する詳細情報などを取得できるなど、より高度なRAID機能を実現できます」と説明する。

 もちろん、ハードウェアに依存しないソフトウェアのみで実現されたRAIDなのでEOLの心配もない。ハードウェアの劣化や故障など、物理的なトラブルから開放されるというメリットも大きい。

PFUのソフトウェアRAIDのレイヤー構造 PFUのソフトウェアRAIDのレイヤー構造は通常のWindowsと同じである。このため、HDDの高負荷時もCPU負荷率は1%と低く、ハードウェアRAIDと遜色ない性能を実現している(クリックで拡大)

PFUのソフトウェアRAIDが実現する4つの機能

 PFUのソフトウェアRAIDの特筆すべき機能としては「セカンダリブート」「エラーハンドリング」「ログトレース」「リビルド負荷コントロール」の4つがある。いずれの機能も、ディスクやコントローラーといったハードウェアとOSを含むソフトウェアの両面でPFUが長年培ってきたノウハウが投入されたものだ。逆にいえば、これらの技術的蓄積や見識がなければ実現が難しい機能でもある。

セカンダリブート機能

 まず、セカンダリブートは、2台のHDDでミラーリングを行うRAIDにおいて、メインで利用する1台目のプライマリHDDに障害が起きたときに、もう1台のセカンダリHDDに自動的に切り替えてシステムを起動する機能だ。このため、ストレージの障害があっても現場の作業を止めることがない。

 RAIDのミラーリングでは、2台のHDDは同期され、完全に同じ構成・内容で稼働するようになっている。ただし、RAIDの方式によっては、セカンダリHDDがプライマリHDDの代用とならないこともある。例えば、OS標準のソフトウェアRAIDは、プライマリHDDからしかシステムを起動できない。しかし、PFUのソフトウェアRAIDではそのようなことは起こらないというわけだ。

セカンダリブート機能のイメージ セカンダリブート機能のイメージ(クリックで拡大)

エラーハンドリング機能

 PFUのソフトウェアRAIDで特徴的なのが、エラーハンドリングの機能だろう。冗長化設定で稼働しているRAIDでは、平時はプライマリHDDを優先的に使いデータを読み出し、書き込みは双方のHDDに対して行う。そして、プライマリHDDに障害が発生した時に、自動的にセカンダリHDDに切り替え運用を継続するようになっている。

 ただし、この切り替え時の処理はRAIDの方式によって異なる。多くのRAIDでは、プライマリに設定されたHDDでエラーが発生すると、プライマリHDDからの読み出しを再度行うためのリトライを何度も繰り返す。この処理はI/Oに大きな負荷をかけるので、システム全体のレスポンスを低下させる原因となる。

 一方、PFUのソフトウェアRAIDは、プライマリHDDがエラー状態となった時点で即座にそのHDDを切り離し、セカンダリHDDで運用を継続する。これにより、システムのレスポンスを高く保つ。レスポンスを片時も落としたくないという組込みシステム本体の要件を理解しているPFUならではの配慮だ。

 一次的に切り離されたプライマリHDDは、バックグラウンドで診断が行われ、エラーが一時的で修復可能であれば、再度システムに組み込まれる。ちなみに、プライマリHDDが切り離されている間に発生したデータの書き込みは、RAID側がビットマップで管理する。このHDD間に起きている差分情報は、診断後のプライマリHDDに書き込まれ、高速で整合性が保たれるようになっている。

エラーハンドリング機能の概要 エラーハンドリング機能の概要(クリックで拡大)

ログトレース機能

 PFUのソフトウェアRAIDの稼働環境となるWindows 10には、標準でイベントログの管理機能が用意されている。ただ、ストレージのエラーに関して、この標準機能で深く原因を追うのは難しい。PFUのソフトウェアRAIDは、さらに詳細な情報が見られるようにログトレース機能を提供している。

 PFUのソフトウェアRAIDでは、RAIDやディスクの構成に関する情報の他、RAIDソフトウェア内部の詳細ログまでを残せる。これにより、エラーに関して状態、程度、頻度などが解析できるようになる。PFU インダストリープロダクト事業部 第一技術部の野田祐司氏は「この情報は、PFUのソフトウェアRAIDを利用する企業、例えば機械メーカーや装置メーカーが顧客に対して障害を詳細に説明しなければならないときの技術情報としても利用できます」と説明する。

ログトレース機能の概要 ログトレース機能の概要(クリックで拡大)

リビルド負荷コントロール機能

 冗長化を実現するRAIDでは、何らかの障害を起こしたHDDの状態を復元するためにリビルド(再構築)を行う。しかし、リビルド処理にはI/Oに多くの負荷がかかるため、組込みシステム本体の動作に影響を与える懸念がある。

 そこで、PFUのソフトウェアRAIDはリビルド負荷コントロール機能として、リビルド時の負荷をMax、High、Middle、Lowの4段階から選べるようになっている。当然ながら、リビルド時の負荷を高く設定すれば、短時間でリビルドが完了する。しかしI/Oの負荷が高まることになる。

 組込みシステムには、ディスクの障害時にできるだけ短時間で冗長性を回復したい場合と、システムの処理を優先させたい場合がある。これは、システムの稼働状況やメンテナンス要員の手配など、さまざまな要因によって求められるものが違ってくるが、リビルド負荷コントロール機能によって、これら現場からの要求に柔軟に対応できるというわけだ。

リビルド負荷コントロール機能のイメージ リビルド負荷コントロール機能のイメージ(クリックで拡大)

“ソフトウェア”だからこその展開拡大も

PFU インダストリープロダクト事業部 第一技術部の野田祐司氏 PFU インダストリープロダクト事業部 第一技術部の野田祐司氏

 PFUのソフトウェアRAIDは、PFUの組込みコンピュータである「ARシリーズ」の機能強化のために開発したものであり、これまではARシリーズでしか利用できなかった。しかし、“ソフトウェア”をうたう通り、Windows 10が稼働するコンピュータであればインストールして利用できる以上、顧客からはARシリーズ以外への適用についてさまざまな問い合わせが寄せられているという。野田氏は「展示会などでソフトウェアRAIDを紹介する際には、PFU製以外の組込みシステムに載せられないのかと聞かれることが多かったですね」と、その関心の高さを説明する。

 PFUは、これらの要望に応えるべく、まずは独自にハードウェアを調達して組込みシステムを構築している顧客向けにソフトウェアRAIDを提供するための準備を進めている。顧客の組込みシステムにおいてソフトウェアRAIDの動作を確認するための評価用ソフトウェアとガイダンス等のマニュアルをセットにした検証用ツールを提供する。「ソフトウェアRAIDはソフトウェアなので、Windows 10のコンピュータにインストールすれば利用できるようになっています。しかし、万が一の停止なども許されない組込みシステムで使用する以上、その動作をしっかりと確認しなければなりません。この検証用ツールはそのためのものです」(堀氏)

 堀氏が言う通り、PFUのソフトウェアRAIDは、Windows 10のコンピュータであれば動作するソフトウェア製品だ。つまり、他社製の組込みコンピュータにも適用可能であり、ひいてはワークステーションや汎用PCといった一般消費者向けにも展開可能なポテンシャルがある。これらのさらなる展開拡大についても、各所から期待が集まるところだろう。

NVMeへの対応など機能向上も継続

 PFUは、これらの展開拡大だけでなく、ソフトウェアRAIDそのものの機能向上についても積極的な取り組みを進めていく構えだ。まずは、現在対応しているストレージのインタフェースはHDDで広く利用されているSATAにとどまっているが、SSDを中心に採用が拡大しているNVMeについては、市場要求に合わせて開発を検討していく。

 ソフトウェアRAIDを用いた組込みシステムの開発環境も使いやすさを向上させる。現在は、開発中の組込みシステムに合わせたチューニングのためのパラメーター設定をコマンドラインで制御するようになっているが、ソフトウェア開発キット(SDK)を提供することにより顧客アプリから簡単に制御できるようにしていくことも検討中だ。

 組込みシステム市場において、組込みコンピュータというハードウェアの提供を中核としてきたPFUだが、今回開発したソフトウェアRAIDにより新たな一歩を踏み出した。今後もPFUの“ソフトウェア”による事業展開は要注目と言えそうだ。

PFUのソフトウェアRAIDの開発メンバー PFUのソフトウェアRAIDの開発メンバー。左から、越山氏、堀氏、野田氏、谷野氏(プロジェクトマネージャー)

Copyright © ITmedia, Inc. All Rights Reserved.


提供:株式会社PFU
アイティメディア営業企画/制作:MONOist 編集部/掲載内容有効期限:2020年12月19日