Microsoftは次期「SQL Server」を「Windows」だけでなくLinuxにも対応させようとしている。その鍵を握っているのが、「ライブラリOS」と「ピコプロセス」というコアテクノロジを組み合わせた「Drawbridge」と呼ばれる仮想化技術だ。
Microsoftは3月、Linux向けのSQL Serverである「SQL Server on Linux」が、Windows向け「SQL Server 2016」の一部機能のみを実装した製品になると述べていた(SQL Server 2016の一般提供は6月に開始されたばかりだ)。このため筆者は、「1つのSQL Serverで2つのOSをサポートする」という考えを耳にした際、とても驚いた。
米国時間11月16日にリリースされたSQL Server on Linuxのパブリックプレビュー版を試用したTwitterユーザーのWalkingCat(@h0x0d)がツイートしているように、MicrosoftはLinux向けSQL ServerでMicrosoft ResearchのDrawbridgeテクノロジを採用したようだ。
Drawbridgeは、Microsoft Researchが数年前から研究を続けてきているライブラリOSというコンセプトを実現したものだ。具体的に言えば、Drawbridgeはアプリケーションをサンドボックス化することによる仮想化形態のひとつだ。Drawbridgeは、「Windows 10」上でBashシェルを実行する際にも用いられている。
Microsoftの広報担当者も、Linux向けSQL Serverを実現するうえでの中核技術として、Drawbridgeを採用したと認めている。
筆者からの照会に対して、同広報担当者は「SQL Server on Linuxを実現するために、Drawbridgeから進化させた、『SQL Platform Abstraction Layer』(SQLPAL:SQLプラットフォーム抽象レイヤ)を開発した」と述べた。
では、これによって「次期SQL Serverデータベースのすべての機能がLinuxおよびWindowsで利用可能になる」ということなのだろうか?
SQL Server on Linuxに関するMicrosoftの説明では、そのあたりがもう少し明確に記されている。具体的にはこうだ。
これら(Windows向けとLinux向けの両バージョン)は同じSQL Serverデータベースエンジンを採用しており、OSに関係なく、多くの類似機能とサービスを搭載している。
現時点では、Windows向けSQL Serverの一部機能はSQL Server on Linuxでまだ利用可能になっていないが、Microsoftはプレビュープログラム期間中の月次アップデートを通じて「徐々に利用可能にしていく」計画だという。
以下は、プレビュー版のSQL Server on Linuxでまだ利用可能になっていない機能だ(11月16日時点)。
データベースエンジン関連
- フルテキスト検索
- レプリケーション
- Stretch Database
- PolyBase
- 分散クエリ
- システムレベルでの拡張ストアドプロシージャ(XP_CMDSHELLなど)
- FileTable
高可用性関連
- AlwaysOn可用性グループ
- データベースのミラーリング
セキュリティ関連
- Active Directory(AD)認証
- Windows認証
- 拡張キー管理(EKM)
- ユーザーの提供したSSL/TLS認証の使用
サービス関連
- SQL Serverエージェント
- SQL Server Browserサービス
- SQL Server Rサービス
- StreamInsight分析サービス
- SQL Server Reporting Services(SSRS)
- SQL Server Integration Services(SSIS)
- Data Quality Services(DQS)
- マスターデータサービス(MDS)
以下は、上述のMicrosoft広報担当者から得られた追加情報だ。
われわれは、最終的にすべての機能を等しく提供することを目標に据えているが、SQL Server内におけるOS固有の要素によって、制約やOS独自の振る舞いが生じる。また、Linux環境における、より徹底的な統合とテスト作業が必要となる機能もいくつかあり、それらについては一般提供が開始されてから対応する可能性もある。顧客からのフィードバックに基づいて優先順位を付けていくつもりだ。
SQL Serverのほとんどの機能はSQLエンジンの奥深くに埋め込まれており、これらの機能はOSとのやり取りをまったく、あるいはほとんど必要とせず、何らの修正や追加テストも必要としないため、CTP1(初回のコミュニティーテクノロジプレビュー)ですべて利用可能となっている。このような機能の例として、ColumnStore(列ストア)やインメモリ処理、クエリ処理、トランザクション管理などが挙げられる。
さらに深く詳細を知りたい方は、「Get Started with SQL Server on Linux」(SQL Server on Linuxを使い始めよう)に目を通してほしい。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。