Skip to main content
QUICK REVIEW

[論文レビュー] Improving Block-level Efficiency with scsi-mq

Blake Caldwell|arXiv (Cornell University)|Apr 28, 2015
Advanced Data Storage Technologies参考文献 1被引用数 3
ひとこと要約

本論文は、プロダクショングレードのLustre並列ファイルシステムにおけるブロックレベルI/O効率に、Linuxカーネルのマルチキュー・ブロックレイヤー(blk-mq)およびそのSCSIサブシステム再実装(scsi-mq)が与える影響を評価している。3.18カーネルにscsi-mqを搭載し、キャッシュを施したRAIDストレージアレイを用いた研究では、SCSI書き込みリクエストの遅延が13.6%低下し、CPUのアイドル時間が7倍に増加した。これは、レガシーワンキュー・ブロックレイヤーと比較して、I/O効率およびスケーラビリティに顕著な向上が図られたことを示している。

ABSTRACT

Current generation solid-state storage devices are exposing a new bottlenecks in the SCSI and block layers of the Linux kernel, where IO throughput is limited by lock contention, inefficient interrupt handling, and poor memory locality. To address these limitations, the Linux kernel block layer underwent a major rewrite with the blk-mq project to move from a single request queue to a multi-queue model. The Linux SCSI subsystem rework to make use of this new model, known as scsi-mq, has been merged into the Linux kernel and work is underway for dm-multipath support in the upcoming Linux 4.0 kernel. These pieces were necessary to make use of the multi-queue block layer in a Lustre parallel filesystem with high availability requirements. We undertook adding support of the 3.18 kernel to Lustre with scsi-mq and dm-multipath patches to evaluate the potential of these efficiency improvements. In this paper we evaluate the block-level performance of scsi-mq with backing storage hardware representative of a HPC-targerted Lustre filesystem. Our findings show that SCSI write request latency is reduced by as much as 13.6%. Additionally, when profiling the CPU usage of our prototype Lustre filesystem, we found that CPU idle time increased by a factor of 7 with Linux 3.18 and blk-mq as compared to a standard 2.6.32 Linux kernel. Our findings demonstrate increased efficiency of the multi-queue block layer even with disk-based caching storage arrays used in existing parallel filesystems.

研究の動機と目的

  • 実世界のHPCストレージ環境におけるLinuxマルチキュー・ブロックレイヤー(blk-mq)およびそのSCSIサブシステム統合(scsi-mq)のパフォーマンスメリットを評価すること。
  • blk-mqおよびscsi-mqによる効率改善が、Lustreのようなプロダクション並列ファイルシステムにおいて実際のパフォーマンス向上にどのように現れるかを評価すること。
  • 高IOPSワークロードを伴うキャッシュストレージアレイを使用する際の、従来のI/Oスタックにおけるスケーラビリティのボトルネックを同定すること。
  • マルチキューI/Oがメタデータおよびデータ集約的ワークロードにおけるCPU使用率と遅延に与える影響を調査すること。
  • 高可用性・高スループットストレージシステムにおける、遅延に敏感な操作を改善するためのscsi-mqの可能性を検討すること。

提案手法

  • scsi-mqおよびdm-multipathサポートを有効化するカスタムパッチを適用したLinux 3.18カーネルにLustreファイルシステムを移植した。
  • プロダクションLustreファイルシステムから得た代表的なI/Oパターンを用いて、ブロックレベルI/Oスルーレートおよび遅延を測定した。
  • サンプリングされたスタックトレースを用いてカーネルCPU使用率をプロファイルし、I/Oパスにおけるパフォーマンスボトルネックを同定した。
  • 回転型メディアを用いたキャッシュを施したRAIDストレージアレイを用い、HPC環境で一般的なOST(Object Storage Target)ワークロードをシミュレートした。
  • レガシーワンキュー・ブロックレイヤー(Linux 2.6.32)と、新しいマルチキュー・アーキテクチャ(Linux 3.18にscsi-mqを搭載)との結果を比較した。
  • 書き込みおよび読み取りI/Oワークロードを評価し、特に書き込み遅延とCPU効率の向上に注目した。

実験結果

リサーチクエスチョン

  • RQ1マルチキュー・ブロックレイヤー(blk-mq)およびそのSCSIサブシステム実装(scsi-mq)は、実際のHPCストレージスタックにおいて、どの程度SCSI書き込みリクエストの遅延を低減できるか?
  • RQ2Lustreファイルシステムに典型的な高I/Oワークロードにおいて、scsi-mqの使用はCPU使用率およびアイドル時間にどのように影響を与えるか?
  • RQ3合成的またはSSDベースのベンチマークではなく、キャッシュを施した回転型メディアを用いたストレージアレイを用いる場合、blk-mqおよびscsi-mqによるパフォーマンス向上が観察されるか?
  • RQ4マルチチャネル対応が理論的には並列性の向上をもたらすはずであるが、SRPドライバではなぜ性能が低下したのか?
  • RQ5現在のブロックレイヤーにおいて、メタデータ操作(特にファイルシステムリカバリ時のジャーナルリプレイなど)がI/Oスルーレートおよび遅延によってどの程度制限を受けるか?

主な発見

  • Linux 3.18カーネルにscsi-mqを搭載した場合、2.6.32のレガシーブロックレイヤーと比較して、SCSI書き込みリクエストの遅延が最大で13.6%低下した。
  • 3.18カーネルにscsi-mqを搭載した場合、CPUのアイドル時間が7倍に増加した。これは、I/O効率が著しく向上し、CPU競合が軽減されたことを示している。
  • キャッシュを施した回転型メディアを用いたストレージアレイであっても、マルチキュー・ブロックレイヤーは測定可能なパフォーマンス向上を示した。これは、通常はハードウェア制限でI/Oバッファリングが制限されるが、それでも改善が見られたことを意味する。
  • 理論的には複数のハードウェアキューが並列性を向上させるはずであるが、SRPドライバで複数チャネルを使用した場合、性能が低下した。これは、ドライバ設計とハードウェアの並列性との間に不一致があることを示唆している。
  • 本研究では、レガシーブロックレイヤーのスケーラビリティが、ロック競合、割り込み処理、キャッシュ一貫性の問題によって制限されることを確認した。これは、実際のHPCストレージワークロード下でも同様に成立する。
  • 結果から、ジャーナルリプレイなどのメタデータターゲット操作は、低遅延かつ高スルーレートI/Oスタック(例:scsi-mq)によって顕著に改善される可能性があると示唆された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。