IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第68回 Dockerストレージドライバーの性能比較 (中井悦司) 2015年6月

はじめに

 先週、米国ノースカロライナ州のRaleighにある、Red Hatの本社オフィスに出かける機会がありました(写真1)。米国のソフトウェア企業というと、西海岸のイメージがあるかも知れませんが、Raleighは、東海岸に位置します。古くから情報技術産業に力を入れている都市で、有名企業の研究・開発拠点が多いことで有名です。

fig01

写真1 Red Hatの本社ビル

 今回は、Docker/OpenShiftの開発メンバーと会う機会があったのですが、特にPerformance EngineerのJeremy Ederに見せてもらった、Dockerのディスクアクセス性能に関するデータが面白かったので、すこし紹介しておきたいと思います。

Dockerのストレージバックエンドの性能比較

 Dockerでは、Dockerイメージを保存するストレージ機能をプラグインドライバーで選択できるようになっています。Dockerがオープンソースとして公開された当初は、AUFSというレイヤー型ファイルシステムが使用されていましたが、Linuxカーネルの正式機能ではないという問題点がありました。そこで、Red Hatのエンジニアは、「dm-thin」というDevice Mapperのシンプロビジョニングモジュールを利用したプラグインを作成して、Dockerから利用できるようにしました。RHEL7/CentOS7に同梱のDockerでは、これがデフォルトのプラグインになっています。dm-thinの機能については、以前のコラムでの解説も参考にしてください。

 dm-thinは、論理ボリュームの内部にDockerイメージを保存しますが、この際、論理ボリュームを作成するバックエンドのデバイスにいくつかの選択肢があります。RHEL7/CentOS7にDockerをインストールしたデフォルトの構成では、スパース形式のイメージファイルをループバックマウントしたデバイス上に論理ボリュームが作成されるため、あまり、I/O性能がよくありません。開発目的にDockerを利用するユーザー向けに、環境に依存しない簡単なセットアップ手順を提供するため、このような構成を選択したということです。すこし手間がかかりますが、物理デバイスを用いて論理ボリュームを構成すると、大幅に性能が改善します。

 図1は、Jeremyが行った性能測定の結果です。1000個のコンテナーを一気に起動して、すべて起動したら、今度はすべてを停止/削除するという処理を行い、全体としてかかった時間を表しています。これを見ると、「loop-lvm」(ループバックマウントを使ったdm-thin)→「btrfs」→「direct-lvm」(物理ボリュームを使ったdm-thin)の順に性能が向上していることがわかります。この例では、direct-lvmは、loop-lvmの半分以下に時間が短縮されています。

fig02

図1 1000個のコンテナーを起動/停止する時間

 残念ながら詳細をお見せすることはできませんが、この他にも、Dockerイメージのレイヤーを大量に重ねた場合の性能影響や、Kubernetesで大量のコンテナーを起動する際のスケジューラー性能などのデータが取得されており、高性能/高スケーラビリティが要求される環境でのDockerの利用について、真剣に考えていることが伝わってくる資料でした。

次回予告

 ちなみに、先ほどの図1を見ると、direct-lvmよりもさらに高性能なプラグインに、「overlayfs」があります。これは、AUFSがLinuxカーネルの正式機能でないという問題を受けて、正式機能であるoverlayfsをDockerで利用できるようにと、Red HatのAlexander Larssonが作成したプラグインです。overlayfsは、Linuxカーネル3.18で正式採用された、AUFSに類似のオーバーレイ型のファイルシステムです。

 overlayfsで性能がよくなる理由については、次回にあらためてお話ししたいと思います。

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes