ラベル AHV Turbo の投稿を表示しています。 すべての投稿を表示
ラベル AHV Turbo の投稿を表示しています。 すべての投稿を表示

2018年7月9日月曜日

AHV Turboモードによる高速I/O処理(その2)RHE7.2以降でAHV Turbo推奨利用の方法

前回はAHV Turboを利用するために推奨されるカーネルパラメーターがそもそも対応しているかの確認を行ってみました。
前回の記事通り、Redhat Enterprise Linux7.2(CentOS7.2)以降であれば、「scsi_mod.use_blk_mq」のパラメーターは利用可能となっていますが、デフォルトで無効になっています。

では、今回はこのパラメーターを有効にする方法をご紹介します。

まず、「scsi_mod.use_blk_mq」 は、カーネルパラメーターであることから、「/etc/sysctl.conf」に記載するイメージがありますが、このパラメーターは異なります。

このパラメーターはI/O処理にかかわるため、Linuxカーネル起動時に設定する必要があります。つまり、grubの設定に入れる必要があります。

では具体的に設定内容を見ていきたいと思います。

まず、grubファイルを編集します。
vi /etc/default/grub

もともとは以下のように記載されています。
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

これを以下のように変更します。
(GRUB_CMDLINE_LINUXに追加します)
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb scsi_mod.use_blk_mq=Y dm_mod.use_blk_mq=Y quiet"
GRUB_DISABLE_RECOVERY="true"

以下の2つのキーワードを、「GRIB_CMDLINE_LINUX」のquietより前に入れます。
挿入するパラメーター
  • scsi_mod.use_blk_mq=Y 
  • dm_mod.use_blk_mq=Y

パラメーターを追加後、作成したgrubファイルを適用する必要がありますが、Ubuntuでおなじみの「grub2-mkconfig」というコマンドをどうもCentOS(RHEL)では入っていないようです。
そのため直接GRUBファイルを作成するため、以下のコマンドを実行します。
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

その後OSを再起動します。
reboot

さて再起動後にパラメーターが正しく反映されたかを確認します。
cat /sys/module/scsi_mod/parameters/use_blk_mq
cat /sys/module/scsi_mod/parameters/dm_mod.use_blk_mq

いずれも結果に以下のようにYと帰ってくれば正しく反映されています。
Y

これで、AHV Turboの対応は完了です。

さらに高速になったAHV Turboをぜひ体感してみてください。



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を利用することができます。

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