2018年7月8日日曜日

AHV Turboモードによる高速I/O処理(その1)AHV Turboの推奨利用条件を確認

AHVにおけるI/Oのさらなる高速化技術として、AHV Turboモードがリリースされました。この機能によりAHVでのI/O性能が格段に上がると言われています。
Turboモードは(Frodo)という名前で開発されていたもので、今までQEMUを介してI/O処理をする部分をマルチキューで処理できるように変えたエンジンです。
アーキテクチャーの詳細は、こちらをごらんください。

機能的に早くなるのであればすぐ使いたいと思うのが人間の心理でありますが、この機能は標準で実装されていますが、LinuxOSの仮想マシンに対してAHV Turboを最大限に利用するためにあ一定の条件が必要となります。

その条件や実際の利用するまでのところを見ていきたいと思います。
AHV Turboの推奨利用条件
  • AOS5.5以上(必須)
  • Linux Kernel 3.17以上(もちろん4系にも対応)
  • 仮想マシンのOSがLinuxのみ
  • scsi_mod.use_blk_mqの有効化
という条件になります。
一つ目のAOSバージョンは特に問題が無いと思いますが、2番目のKernelバージョンの問題はちょっとややこしいです。Redhat Enterprise Linux(RHEL)はベースカーネルバージョンは、「3.10.0」(RHEL7.5の場合)であり、3.17に達していません。
ただ、そこはまり心配しなくても良いです。RHEL7.2から、「scsi_mod.use_blk_mq」の対応がなされていると記載があります。

(参考)RHEL7.2 リリースノート

ただ、こちらには、
「scsi-mq を有効にするにはカーネルコマンドラインで scsi_mod.use_blk_mq=y を指定します。デフォルト値は n (無効) です。」と書いてあり、デフォルトでは無効であることが記載されています。つまり手動で有効化する必要があります。

では、RHEL6系のユーザーやRHEL7.1までのユーザーの場合はどうすれば良いかというと、現状では、そのままの手法ではTurboモードは利用できません。
カーネルを新しいバージョンに入れ替える必要があります。

今回はこの「scsi_mod.use_blk_mq」を有効にするための手法を数回に分けてご紹介したいと思います。

まず、この「scsi_mod.use_blk_mq」が、現時点で有効かを確認してみたいと思います。

Linuxのシェル画面で、以下のコマンドを入力します。
cat /sys/module/scsi_mod/parameters/use_blk_mq
これを入力して、「そのようなファイルやディレクトリはありません」 と言われた場合は、そもそもカーネルバージョンがこのパラメーターに対応していない可能性が高いです。

以下のコマンドでカーネルバージョンを確認してみます。
uname -a
で、カーネルバージョンを確認してみましょう。

一方で、「Y」と出てきた場合は、scsi_mod.use_blk_mq=yが有効になっていますので、そのままAHV Turboが利用できている状態となります。
では、「N」と出てきた場合は、パラメーター設定をすることでAHV Turboを利用することができます。

次回は、このパラメーターの有効化についてお話ししたいと思います。







0 件のコメント:

コメントを投稿