2019年のUbuntu
2018年のUbuntuは、18.04 LTSのリリースや、18.04 LTSへの10年サポートの提供のアナウンス が行われる等、派手さはないものの着実な変化が生じた一年でした。
2019年はUbuntuとしては20.04 LTSに向け、19.04と19.10がリリースされる予定 の年です。「 LTSの前」のリリースは実験的な新機能が数多く投入されるため、激しい変化がもたらされる可能性があると同時に[1] 、Ubuntuを取り巻くコンピューティング環境にドラスティックな変化がもたらされる年となる可能性もあります。業界そのもので見ると、これまでの常識のうちのいくつかが書き換わる年になる可能性がある、ということです。
今回は、『 2019年のUbuntu』として、今年のUbuntuそのものの開発の動向や、Ubuntuに影響しうる事柄について(一部妄想を交えて)見ていきましょう。
Ubuntuそのものの変化・32bit(i686)との決別
2019年に予想されるUbuntuのもっとも大きな変化は、32bit(i386/i686)サポートの終了でしょう。すでに18.04 LTSから18.10へのアップグレードは抑制されており、「 18.04 LTSが最後の32bitリリースとなる」路線はほぼ確定した状態にあります。
現実問題として、AMD64/Intel 64命令セットを実行できないCPUは事実上無視してよく[2] 、x86バイナリと併用する[3] 場合に発生するメモリやストレージフットプリントの肥大以外、大きな問題はなくなりつつあります。メインメモリやストレージのサイズは拡張される傾向にあるので、存在する問題はすべて解決する傾向にある、と言えるでしょう。
Ubuntuとして考える場合は「古い64bit非対応のCPUを利用しているような環境はどうするのか」という問題がつきまといますが、Lubuntuですら32bit版の新リリースはせず、2021年4月まで18.04を使ってもらう [4] という判断がくだされており、「 さすがに2021年には32bit CPUはもう残っていないだろう」( 注5 )という方針となっています。
少なくとも2021~2023年まではi386環境の利用は可能であることから、事実上、2019年は「32bit CPUが利用されている環境にUbuntuがインストールされる最後の年」となると考えられます。
Snapパッケージの進展
2019年のUbuntu Desktopにおける変化を予想するのであれば、Ubuntu seeded snaps をはじめとする「Snapへの移行」を外すことはできないでしょう。Snapは、Ubuntuが採用する「コンテナ技術を応用した」新しいパッケージ形式です。
現時点のUbuntuのパッケージングポリシーの限界として、「 最新のソフトウェアを提供し続けるために、大きなコストがかかる」という点があります。ブラウザや一部のテキストエディタのような、非常に早いペースで更新されるソフトウェアを既存のUbuntuパッケージとして(特に、「 リリース後はソフトウェアのメジャーバージョンアップはしない」という方針を維持して)提供することは、コストの面でも、セキュリティの面でもあまり現実的ではありません。ソフトウェアによってはStable Release Updates ポリシーの例外(Special Cases)として定義し、ある程度のコストをかけて最新版を提供する、という方式を採っています。ここから状況を変える手段として、「 デスクトップで日常的に使うソフトウェア」のたぐいをSnapに切り替えていく一年となる可能性があります。UbuntuではSnapへの移行を積極的に進めており、2017~2018年にかけて、色々な技術的課題が解決しています。
今後、Snapへ軸足を移す ことで、特定のソフトウェアだけを最新に更新し続けることが現実的になるため、デスクトップソフトウェアの一部は完全にSnapを前提としたものに切り替わる可能性があります。すでに2018年までにかなりのソフトウェア(たとえばFirefox やChromium 、Visual Studio Code 、Skype 、Slack といったソフトウェアはすでにSnapで利用できます)を利用できる状態となっており、2019年はこの傾向がますます加速することになるでしょう。
DockerとSnap・juju・LXD
Snapやjuju、LXDは、Ubuntuで提供される「パッケージやシステムの管理をより楽にする」ためのテクノロジーです。2019年は、Ubuntuが提供するこれらの「Ubuntu独自のテクノロジー」に時代や環境が追いついてきてしまった結果、より資本やエンジニアリングリソースの大きな企業や団体によるライバルとの本格的な衝突が始まる年になるかもしれません。
現在のサーバー環境において、Dockerを避けて通ることはできません。Dockerで構成した各種ソフトウェアをk8s環境にデプロイする、というアプローチがマイクロサービスでは定番となっており、結果としてDockerの市場シェアは順調に拡大しています。
Snapは技術的な詳細はかなり異なるものの、「 Dockerとできることと目的が同じ」コンテナ環境であり、Ubuntuのデスクトップ環境における一定の立ち位置とは別に、サーバー環境では苦しい立場に立たされています。juju を用いることで複数のSnapコンテナをデプロイすることができるものの、事実上、利用できるのはUbuntu環境だけに限られており、異なるLinuxディストリビューションやWindows環境でも利用可能なDockerほどのエコシステムの確立には至っていません。これはCanonical/Ubuntuが、「 Dockerで良い」もののために一定のコストを支払うことを意味しており、競争上はあまり良い状態ではありません。
こうした状況から、2019年はサーバーにおけるSnapにとって、試練の一年となるかもしれません。一方で、「 Snapを使ってDockerをより良く使える環境にできるようになりました」あるいは「K8s環境で発生する○○という問題をSnapで解決できるようになりました」的な新プロダクトの投入の可能性もあります。これによりSnapの存在意義が確立する、という可能性もあります。
逆に、「 コンテナ技術を利用した仮想マシンの提供」に注力しているLXD はある程度補完的な立ち位置にある こともあり、Dockerの進展によって住処を奪われる、という展開にはなりにくいと言えます[6] 。
SSDとHDDの価格逆転、Intel Optaneと新しいメモリモデル
2019年にPC業界で生じる大きな変化として、「 SSDとHDDの価格逆転」があります。
容量単価そのものはSSDのほうが劣る状態は続くであろうものの、順調に進むと「もっとも廉価なモデルで比較すると、HDDよりもSSDの方が安い」( 注7 )という状態が生じる可能性が高く、おそらく「市販されているPCのうち、安いモデルにはSSDが積まれている」( 2TBや3TBといった数字のインパクトを重視して、ミッドレンジ以上の価格帯ではHDDが残る)という構図が現実になると思われます。
直接的にUbuntuに大きな影響を及ぼすものではないものの、「 多くのユーザーがSSDを利用している」状態に切り替わることで、SSDを前提にしたメンテナンス機能がより充実していくことが考えられます。
[7] なぜこのようなことが起きるかというと、HDDを構成するモーターとプラッタと制御基板のコストは(特にモーターのせいで)1台あたりの限界コストがある程度のラインに存在するものの、SSDは本質的にNANDメモリが載った制御基板でしかないので、モーターやプラッタに比べるとより安くできる、という構造があります。これに加えて、「 メインのストレージの容量はある程度を越えると増やす意味が薄くなる」=容量単価が安くても特に意味のない限界がある、という構造があり(たとえば、たいていの「ふつうに売られている」PCにとってはメインのストレージは1TBもあれば十分で、これよりも容量を増やしても顧客にとっての価値はあまり増えません) 、結果として「HDDである必要性がどこにもない」という状態がやってきます。このことはSSDが投入された10年ほど前から継続して言われてきており、2018年から今年にかけて現実化すると見られます。
また、今年発生する「面白い」技術的変化の一つとして、Intelの“ Optane” (3D XPoint)があります。
Intel Optane(コードネーム“ Cold Stream )は、3D XPointを利用したメモリ製品に与えられているブランド名で、「 次世代のSSD」的な立ち位置にあるメモリ技術です。
現時点において、Intel Optaneには、既存製品として大きく分けて次の3つの製品ラインが存在します。
16GBライン(NVMe/M2フォームファクタ)
50-120GBライン(NVMe/M2 or PCI Express x4フォームファクタ)
240GB+ライン(NVMe/M2 or PCI Express x4フォームファクタ)
それぞれの用途は次のようになっています。
16GBライン:NVMeデバイスとしてアクセスされるが、ソフトウェア的な支援により、HDDのキャッシュとして機能する。これにより、頻繁にアクセスされる読込主体のデータの高速化がもたらされる。
50-120GBライン:NVMeデバイスとしてアクセスする。主に、OSを導入する領域として利用する。既存のNVMe SSDよりも高速。
240GB+ライン:OSを導入したり、ランダムアクセス性能が要求されるストレージ(例:データベース用)として利用する。かつてのioDrive と類似する用途。
いずれもおおむね、「 高性能なSSD」から離れるものではありません。Ubuntu的には、いずれもLinuxカーネルから見たドライバはnvme.ko(NVMeデバイス用の汎用ドライバ)で利用できる[8] ため、現時点で利用できます。いずれもPCIe接続で利用できるものである、と言い換えることもできるでしょう。
2019年に投入されるであろうOptaneの新ラインである『Intel Optane DC Persistent Memory 』があります。これは既存の「PCIe接続」のストレージデバイスとは異なり、DDR4互換のNVDIMM として投入されます。性能や容量単価はDRAMとNANDフラッシュメモリの間に位置する可能性が高く、これまでの常識をいくつか書き換える可能性があります。
……これだけだと業界の人が「あああれね」と納得して終わってしまうので、簡単にみていきましょう。
まず、NVDIMM(電源を切ってもデータを保持できるDIMM、すなわちメインメモリ)はすでにいくつか の製品 として投入されています。
NVDIMMを利用するメリットは、「 電源を切ってもデータが失われないメインメモリ」という、新しい概念を利用できることにあります。ごく単純にNVDIMMを利用するには、メインメモリの一部をRAMベースのファイルシステムとしてマッピングします。これにより、「 広帯域・低レイテンシの高速なストレージ」として扱うことができます。
また、DIMM上にあるデータは電源を切ると失われてしまうので、インメモリデータベースのような「メモリ上にデータが存在する」ことが前提のワークロードを実行するには、ストレージからデータを読み込むというある種の「余熱」が必要になります。NVDIMMはデータが保持されるので、「 余熱」不要なメインメモリ、という使い方もできます。
これだけでもストレージの遅さに困らされている業界人を喜ばせるには十分なのですが、Optane Persistent Memoryが業界の常識を変える可能性があるのは、こうした使い方だけではありません。NVDIMMの存在を前提としてOSがメモリアクセスのあり方を変えることで、「 これまで」のPCの常識の何割かが書き換わる可能性があります。
CPUから見た「メインメモリ」は、DIMM(DRAM)で構成された「高速だが電源が切れると失われる」ものと、NVDIMM(Optaneやその類似デバイス)で構成された「そこまで高速では無いが、電源が切れても保持される」ものの2種類に分かれることになります。現時点のWindowsやLinuxはこの前提を織り込んだものになっていませんが、実装が上手く進めば、早ければ2019年中にはこの前提が取り込まれ、「 2種類のメモリを使い分ける」状態が実現されることになります。
これはUbuntuを含めた、各種デスクトップ環境に大きな影響を与える変化になります。
たとえば、そもそも「ストレージ」という概念が必要な理由は「電源を切るとメモリにあるデータは失われてしまう」ことにあります。「 メモリにあるデータが消えない」という前提が導入されると、「 PCのシャットダウン」という操作は、単にCPUや周辺デバイスを不活性化することを意味するようになるかもしれません。サスペンド(メモリへの通電は維持したままデバイスを不活性化する)や、ハイバネート(メインメモリの中身をストレージに書き出してデバイスを不活性化する)も、この文脈では大きく形を変えることになるでしょう。スイートスポット以外はできるだけNVDIMM側にデータを置いておき、性能が要求される領域だけをDRAM上に保持する、といったモデルになると、「 シャットダウン」は、DRAM上にある領域をNVDIMMに書き出す処理が中心になるはずです。
もちろんOptaneは現状で(DRAM比では廉価なものの)NANDフラッシュメモリよりも数倍高価なので、ただちに世界が変わるほどの変化がやってくるわけではありませんが、徐々に常識が書き換わっていくことになるでしょう。また、これに併せてストレージとしてのOptaneも量産効果で価格が落ちていくことになる可能性が高く、「 とにかく高性能なストレージが欲しい」という用途にも適合していくことになります。
UbuntuがNVDIMM Readyになる時期を正確に予測することは困難ですが、20.04 LTSでの搭載は業界動向から見てほぼ必須であり、逆算すると19.10に搭載されることを期待できそうに思えます。
その他の傾向
今年は5G通信が実用化される最初の年でもあり(日本国内では2020年が主戦場になります) 、さまざまな通信 が無線にシフトしはじめる年になります。
2018年は、Steam Play とProton によって、「 Linuxでゲームをプレイする」ことが現実的になった年でした。ここから今年、Linuxでのゲーミング事情がどのように変化するかを予測することは困難ではありますが、この2, 3年のゲーミング市場の拡大を考えると、Ubuntuにも何らかの変化が訪れるかもしれません。
2019年の技術的トレンドとして、SGX やSEV を前提にしたメモリの中身を保護するメカニズムがあります。これらはハイエンドな動画コンテンツやブロックチェーンのような、「 利用者にもメモリの中身を見せたくない」タイプの処理に使われるはずです。Ubuntuからもこれらが利用できるようになる可能性は高いと思われます。
2018年に業界を騒がせた“ Spectre” の、Variant 2対策になる“ Enhanced IBRS” をハードウェアサポートしたプロセッサがおそらく2019年前半には リリースされるはずです。