Solaris っていまどうなってるの? 2016 末

  • 38
    いいね
  • 0
    コメント

Oracle Solaris っていまどうなってるの?ってことで、色々と公開されているものからネタをかき集めて、ちょっとだけ整理してみようかと思います。

その前に Solaris ってなによ?聞いたこともない。という人もいるかと思います。
簡単に言うと、UNIX として認証を受けたオペレーティングシステムです。
より身近な製品ですと Apple の macOS も UNIX として認証を受けているオペレーティングシステムとなります。

ようは、オペレーティングシステムですね。OS ですね。

現役の Solaris と将来の Solaris について

現役の Solaris は下記になります。

  • Solaris 10 1/13
  • Solaris 11.3

2005 年にリリースされた Solaris 10 が未だに現役です。ただし、アップデートリリースとしては、2013 年にリリースされた 1/13 (Update 11) が最後となり、以降はパッチによる不具合の修正を提供となっています。
新しい機能については、Solaris 11 以降での提供となります。

そして、最新の Solaris リリースという事になりますが、こちらは、Solaris 11 となります。Solaris 11 の最初のリリースは、2011/11 となり、現在は、2015/10 にリリースされた Solaris 11.3 が最新となります。

覚えいる人はもういないと思いますが、Solaris 11 は First Cloud OS としてリリースされ、Solaris 10 で提供された Solairs Zones (当時は Solaris コンテナ呼ばれていました) によるシステムの仮想化機能を拡張/強化し、ストレージやネットワークの仮想化機能を新たに追加した OS としてデビューしました。

みんな大好き ZFS ファイルシステムも Solaris 生まれですが、Solaris 10 までの仕組が大きく変更されています。

ここまで読んで興味をもった(えっ なら、マニュアルもどうぞ。読み物としてもおもしろいです。と思います。(筆者比

Solaris Next

そして、最近、ちらほら見かけるようになったのが、

  • Solaris Next

です。
Solaris Next ってなんだよ? ってなるわけですが、まぁ、次です。次ですね。
主に、Oracle OpenWorld Session Catalog 2016 から、Solaris をキーワードに色々と拾い集めてみました。

Analytics とか End to End Tracing とか Online Patching とか Docker とか・・・色々とキーワードが出てきていますね。

仮想化機能関連

やはり、まずはじめに多く見える情報としては、仮想化関連が目につきます。
このあたりは、Solaris の代表的な機能となり、新しいことを説明する際にも組み合わせて紹介されることが多いです。

Solaris Zones

Solaris Zones は、Solaris 上のコンテナ技術となります。この機能は 2005 年にリリースされた Solaris 10 から実装されており Solaris 観点では枯れた機能となっています。

昔は、Hypervisor などを利用しない Zero オーバーヘッドの仮想化機能とか言っていた時期もありました。
最近では、Type 2 Hypervisor に似たような実装を利用する Solaris Kernel Zones なるものも出て、Kernel 毎動かすこともでき、より隔離性を高めることなどが可能になってきています。

また、再起動不要でリソースを動的に変更できたり、読み込み専用(動的に変更可能)にできたり、iSCSI を利用した専用 LUN を割り当てることができたりと、最初のコンセプトはなんだったんだ的な機能強化されています。

引用となりますが、Solaris では、下記の図のように複数の仮想化テクノロジーを選択肢として用意し要件により最適なものを選択してもらう方法をとっています。

Solaris Next でも、このあたりには大きな変更はなく、これらが Solaris の仮想化機能のベースになります。

  • Native Zones: Solaris Zones
  • Kernel Zones: Solaris Kernel Zones となり KVM にたとえることができるかと思います
  • Zones in OVM Server for SPARC: Oracle VM for SPARC と呼ばれる機能を使った HW の論理分割

Unified Archives とは、動いているシステムから作成するシステムのアーカイブを意味します。このアーカイブはベアメタルでも仮想化機能上でも、とにかく動いている Solaris から作成することができ、そして、作成元の環境に依存することなく、それぞれの環境にデプロイすることがでいます。(Native Zones -> ベアメタルやその逆も可能)

引用元: https://blogs.oracle.com/listey/entry/which_oracle_solaris_virtualization

Docker をサポート

Solaris ではコンテナ技術を提供していると書きましたが、Solaris Next では、Docker がサポートされることがわかっています。

すでに、Solaris で Docker をサポートすることはアナウンス済みでしたが、ようやく姿をあらわしてきました。
いまのところは、Docker リポジトリへのコミットから推測することしかできないのですが、ZFS や IPS Package System など Solaris のユニークな機能を活用した実装になっているようです。
Solaris Zones は OS コンテナとなるため、OS のコンポーネントも多数含んでおり、仮想環境イメージとしてフットプリントが大きいのかなと感じています。
このあたりが Docker でどのように改善されるかにも期待したいところです。

Kubernetes などのようなライフサイクルを管理するツールは、そのまま使える気がしないのですが、さてさてどうなっちゃうかなという楽しみの一つです。
先に紹介した仮想化機能と組み合わせることもできるので、Solaris なりの使い方など模索したいと考えています。

Docker EngineのメンテナにNTT須田氏が就任。「Dockerの品質の維持・向上を中心に取り組んでいく」

須田氏 近々、Docker 1.13がリリースされます。1.12で導入されたSwarmモードに関して高可用スケジューラの追加や、秘密ファイル管理機能の追加など、大幅な改善がなされる予定です。
その他、CRIUを用いたチェックポイント機能や Solaris サポートなども予定されています。

また、Docker をビルドするために必要な Go 言語も既に Solaris ではサポート済みとなります。
Go 言語については、過去に少しまとめていますので、こちらの記事も参考にして頂ければと。

Oracle Solaris Sandbox

Solaris Zones や Docker ほどリッチな環境は必要なく、アプリケーションを隔離したいという時に利用することができる機能
のようです。また、sandbox 間で親子関係を持たせることも可能、Sandbox API を使えば、共有メモリもラベルを付けて隔離できるようです。
Solaris Zones の中でも利用することができるとのことで、アプリケーションレベルでですが、コンテナの中を更に細かく分けることも可能ですかね。

Open vSwitch をサポート

仮想 NIC やスイッチの機能については、Solaris 11 で大きく変更されたネットワークスタック (Project Crossbow と呼ばれていた) によりすでに実装されており、Solaris Zones などで利用されています。
また、ホストを跨いだ仮想スイッチを作成できる EVS (Elastic Virtual Switch) と呼ばれる機能も提供し、VLAN, PVLAN, VXLAN などと組み合わせることで仮想スイッチレベルでテナントを分けも可能です。

これらを OpenStack でも利用できるように Neutron に EVS plugin を実装していましたが、ベースとなっているのは ML2 plugin ではないため実質的には Solaris の実装のみ利用可能な専用 Neutron になっています。

Solaris 以外のプラットフォームと相互運用するために Open vSwitch の採用を決めたようです。

現時点では、下記が実装され OpenDaylight もサポートすることがわかります。

  • OVS 2.3.2 LTS
  • OpenStack ml2 OVS plugin (mitaka)
  • Works well with OpenDaylight

Open vSwitch は OVN に名称が変更されましたが、OVN ではすでに Linux/Solaris の OpenStack 環境の相互接続ができているようです。
そうそうに OVN へ以降し、OpenStack Neutron ML2 Plugin も提供、変更点は Upstream へ寄贈するとのことです。

  • Openstack + OVN plugin (Ubuntu) connected to Solaris OVS + OVN controller

Elastic Virtual Switch の考え方も良かったのですが、どうなる EVS って感じです。

また、ネットワークを跨いだ環境で有効な ETrace (End to End Trace) なるものもあるようです。

OpenStack

仮想化まわりの話が出てくると、避けては通れないのが OpenStack ですね。Solaris 的には。
はい、Solaris にも OpenStack あります。Open vSwitch の部分でも触れましたが、Solaris 11.2 からサポートしています。

目下のところ OpenStack on Solaris のターゲットは、Solaris で作る Enterprise OpenStack 環境となります。
nova で扱えるのも Solaris Zones と Solaris Kernel Zones のみになります。

Solaris 11.3 では、Juno でしたが、Solaris 11.3 SRU9 (Solaris 11 のアップデータのようなもの)では、OpenStack Kilo にアップデートされ、検証環境作成の手助けとなる Bring-Up Test Tool も
GitHub の Solaris Openstack Utilities and Tools Project リポジトリで公開されました。

更に、最近の SRU では、OVM for SPARC もサポートしました。
OVM for SPARC は SPARC Hadware に搭載された Hypervisor が論理的な HW 分割を提供する機能です。詳細は割愛します。ごめんなさい。
(ちなみに、OVM for SPARC は Oracle VM for SPARC ですが、Oracle VM for x86 とは実装が異なるため、別物となります。)

だんだん疲れてきました・・・

ZFS ファイルシステム

Solaris に搭載される ZFS ファイルシステムとしての目新しい情報は見つけられませんでしたが、zCloud という気になるキーワードに遭遇しました。
ネットワークが介在するけど、もしかして、そのあたりの遅延は ZFS が持つ SLOG とか L2ARC でカバーできたりする?と期待させてくれますが、はやく出てこい。

Solaris に含まれるオープンソースソフトウェアについて

Solaris は商用 OS ということもあり、ライセンスが異なるオープンソースソフトウェアを solaris-userland というようにカテゴリ分けをし、公開可能なものを公開しています。

active branch としては、defaults11u3-sru (solaris-userland~gate のみ) があり、それぞれ:

  • default: 最新の branch となり、次の Solaris に含まれるオープンソースソフトウェア群
  • s11u3-sru: Solaris 11.3 をターゲットとしたオープンソースソフトウェア群

となっていて、solaris-userland の情報からも断片的ではありますが、Docker, Open vSwitch, OpenStack, llvm, golang, Intel OpenMP, GNOME 3 など、提供されるものがなんとなくわかります。

node.js がありません。ひとまず、下記で。

Gnome 3.0

いきなり GNOME かよってことで、Solaris に GNOME 3 が実装されるとは思いませんでした。

https://blogs.oracle.com/darren/entry/gnome_3_on_solaris

まじだったようです。

DevOps

こ、これは・・・
生暖かく見守ってください。

Practical DevOps withOracle Solaris Virtualization

Security

セキュリティ絡みにしていますが、長年の夢だった Hot Patching 機能もついに実現するようです。

まとめ

はやいですね。
次の Solaris では、新機能などあわせて 1,400 を超える機能強化が予定されているとのことで楽しみですね!

セキュリティ機能の強化を押しつつ、Analytics と呼ばれるシステム情報の可視化、オープンソースソフトウェアの拡充など、なんとなく目指す方向性は見えてきているような気もしますが、全容が出てこないことにはなんとも言えませんね。

リリース時期については、まだ、発表はありませんが、出てくる情報が増えてきているので、それほど遠い未来ということではなさそうですが・・・楽しみに待ちましょう。

ちょっと、統一感ない感じでおなかいっぱいなってしまいましたが、まだまだ続くよ Advent Calendar 2016 というわけで、書けなかった事を別の日にでも補ってみたいと考えています。
プログラミングするにも OS も関係するようねということで、お許しください。

おまけ: SPARC 絡み

SPARC 絡みでも色々と資料が公開されていました。
SPARC に搭載される DAX (Data Analytics Accelerator) と呼ばれるハードウェア機能を API から利用することで、パフォーマンスを向上することに役立てることができるようです。

この投稿は Solaris Advent Calendar 20161日目の記事です。