
LINBIT、同社の主力技術であるDRBDソフトウェアをMicrosoft Windowsプラットフォームに移植
Linuxが…
最新のDRBD 9機能をサポートしつつ、DRBDソフトウェアをMicrosoft Windowsに対応できるよう、Linuxカーネルエミュレーションレイヤーを設計・実装しました。このレイヤーにより、元のDRBD 9ソースをほとんど変更せずに使用できます。現時点で(2019年1月現在)サポートされているDRBD 9バージョンは9.0.16(Linuxバージョンと同じパッチレベル)です。WinDRBDの今後のバージョンは、Linux DRBDのリリースから数日のみの遅れでリリースされる予定です。WinDRBDはこちらからダウンロードできます。WinDRBDは現在ベータ版で技術レビュー中であり、現時点ではサポートされていませんのでご注意ください。
Windows カーネル内に。
Windows側では、Windows Driver Model API(WDM)を使用します。これにより、Windows 7 Service Pack 1のような古いバージョンのWindowsをサポートすることができます(理論上はReactOSでも動作するはずです)。もちろんこれは上位互換性があるので、Windows 10、Windows Server 2016、Windows DesktopまたはWindows Serverオペレーティングシステムの他のリリースでも動作します。サーバー版にのみ関連付けられている、MicrosoftのStorage Spaces Directとは異なります。
WinDRBDをダウンロードするには
WinDRBDは、パブリックベータプログラムの一部として提供されており、当社のWebサイトからダウンロードできます。グラフィカルなInno Setupベースのインストーラーを使用して、WinDRBDの使用を開始することができます。また、WinDRBD tech guideでは、WinDRBDで2ノードの複製ブロックデバイスのセットアップを作成する方法を説明しています。
Linux版と同様に、設定ファイル(drbd.conf)を編集して、DRBDリソースとそのパラメータを定義する必要があります。ドライブレターのシンタックス(Linuxには存在しません)以外は、設定ファイルの形式はLinux版のDRBDと全く同じですので、Linux版のDRBDの知識があれば、すぐに慣れることができます。
2019年1月現在の状況
2019年1月現在、WinDRBDのほとんどのコア機能はLinux版と同じように動作します。機能には以下が含まれます。
- オンラインデータレプリケーション
- 再同期
- WindowsまたはLinux DRBDへの接続
- WinDRBDとバッキングストレージ用の個別のブロックデバイス
- ディスクレス操作
- I/Oおよびネットワーク障害の適切な処理
- WinDRBDデバイスの最上位にあるNTFSファイルシステム (他のファイルシステムは以下に配置)
- ドライバーは再起動せずにロードおよびアンロード可能
- すべてのdrbdadm、drbdsetup、およびdrbdmetaコマンドの(ほぼ)完全なサポート
- 内部メタデータ
- ユーザーモードヘルパー(cmd.exe、bashまたはPowerShellを使用)
- Windows UI準拠のインストーラー(inno-setupベース)
また現在、未実装の以下の機能の移植を進めています。
- 3ノード以上の設定(近日提供予定)
- システムボリューム(C:)をWinDRBDデバイスとして使用(iPXE経由で起動されたディスクレスクライアント向け)
- NTFS以外のファイルシステム
- インストーラーの外観上の変更(現在、C:\windrbdは構成ファイル用にハードコーディングされています。インストーラーもアップグレードまたはアンインストール時に再起動が必要です)
- drbdadm wait-forコマンドファミリ(drbdsetup events2は機能します)
- オンライン検証
- 自動プロモーション
- リクエストのTRIM/discard
- オンラインでのサイズ変更
- LINSTOR統合
- その他、debugfsまたはネットワークとディスクの統計情報など
さらに、さまざまなクラスターマネージャー(サーバーOSに付属のMicrosoftクラスター マネージャーなど)との統合にも取り組んでいます。
今年後半には1.0のリリースを予定しています。これを使用してテストしていただくか、一番重要な機能をお知らせいただくことで、WinDRBDの開発に役立ちますので、ぜひご協力ください。
WinDRBDでできること
DRBD、つまりWinDRBDは、ファイルシステムレイヤーの下にあるブロックデバイスレベルのレプリケーションレベルです。これは、次のようにデータをミラーリングします。
- 透過的:レプリケーションをサポートするためにアプリケーション(およびファイルシステム)を変更する必要はありません。
- オンライン:データがアプリケーションによって書き込まれている間、データはリアルタイムで複製されます。
- 1つのノードがオフラインの場合、再び起動すると、DRBDによって自動的に同期されます。
したがって、高可用性(HA)サービスを必要とする次のようなシステムに最適です。
- 中小企業向けのWindowsベースのファイルサーバー:ミッションクリティカルなファイルの冗長性と高可用性を確保します。ハードウェアまたはソフトウェアの障害が原因で1つのサーバーに障害が発生した場合でも、ミラーサーバーからデータを利用できます。これはアプリケーションに対して透過的に行われます。
- Windowsベースのデータベースサーバー:一部のデータベーステクノロジーは、LinuxよりもWindows上(Microsoft SQLサーバーなど)の方が動作が安定しています。アプリケーションは、1つのノードのハードウェアまたはソフトウェアの障害から保護されているデータベースサーバーのデータにアクセスできます。
- レガシーアプリケーションに高可用性を追加:WinDRBDはアプリケーションに対して透過的であるため、必要な場合は、WinDRBDを使用してAccessデータベースなどを使用したアプリケーションに高可用性を追加できます。
- さらに、DRBDはKVMおよびXENを使用するLinuxでの仮想化に適しているため、WinDRBDはWindowsでの仮想化(Hyper-V)に適している可能性が高いです。その場合、ライブマイグレーションのサポートを含め、仮想マシンの仮想ストレージデバイスに透過的なHAを提供します。
近い将来、WinDRBDを使用してディスクレスクライアントのセットアップを行うことができるようになるでしょう。WinDRBDドライバーを含むiPXEを介してWindowsクライアントを起動でき、WinDRBDはリモートのDRBDサーバーからシステムボリューム(ほとんどの場合C:)を提供します(WinDRBDはLinuxベースのDRBDと有線互換性があるので、これはLinuxベースのDRBDでもかまいません)。
結論
WinDRBDにより、LINBITはMicrosoft Windowsプラットフォームにソフトウェア定義ストレージソリューションのメリットを提供します。DRBDとWinDRBDはどちらもオープンソースで、GNU General Public License(GPL)のもとでライセンスされています。Microsoft Windowsプラットフォームの幅広いサポートにより、WinDRBDを中心に多くのアプリケーションを構築することができます。LINSTORやMicrosoftクラスタマー ネージャの統合、ディスクレスクライアントのサポートなどの将来の開発により、アプリケーションの可能性が広がり、LINSTORによってWinDRBDリソースの管理がLinux版DRBDと同じくらい簡単になります。
JOHANNES THOMA
ソフトウェア開発者
Johannes Thomaは、業界で20年以上の経験を持つフリーランスのソフトウェア開発者です。専門はLinuxカーネルプログラミングなどのシステムプログラミング。過去のプロジェクトには、医療用X線装置用のリアルタイム画像チェーンやDRBDプロキシの初期バージョンなどがあります。また、Johannesはプロレベルのジャズピアニストでもあり、ニューヨークのSmallsやベルリンのB♭など、世界中のジャムセッションで演奏しています。
※こちらの記事はLINBIT社のブログを翻訳した内容になります。
記事原文: