• 検索結果がありません。

仮想環境におけるI/O性能評価及び最適化手法提案

N/A
N/A
Protected

Academic year: 2021

シェア "仮想環境におけるI/O性能評価及び最適化手法提案"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. 仮想環境における I/O 性能評価及び最適化手法提案 水野和彦†1. 今田貴之†1. 概要:大規模なデータを処理するビッグデータ解析では,大量のデータを処理するために高い I/O 性能が求められて おり,SSD 等のフラッシュメモリデバイスをベースとした Storage Class Memory(SCM)の導入が提唱されている. また,この SCM 向けデバイスには,NVMe(Non-Volatile Memory Express)という規格が提供されており,仮想環境 に適用されつつある.仮想サーバ(VM)に NVMe デバイスを割り当てる場合,ハードウェア/ソフトウェアの構成 等の要件に適した方法を選定することになる.しかし,仮想環境では,様々な組み合わせで環境を構築するため要件 に合わせた対象構成を容易に選定することができない問題がある.そこで,本研究では,仮想環境に NVMe SSD を適 用した実機環境による I/O 性能評価,および,この評価結果より仮想環境に NVMe SSD を適用した時の I/O 性能最適 化手法を策定した.実機環境による I/O 性能評価では,Bare/KVM 環境の構成等により I/O 性能が Bare 環境に比べて 20%から同等の性能まで大きく変化することがわかった.また,I/O 性能最適化手法の検討では,評価構成の特徴整理, I/O 性能の関連要素の分析,および,I/O 性能を最適化するためのポイントを検討し,仮想環境の導入・運用時の I/O 性能を最適化する「コンフィグガイドライン」 ,および,実運用時の I/O 性能を最適化する「チューニングガイドライ ン」を策定した.このコンフィグガイドラインを用いれば,要件に適した仮想環境の構成を明らかにすることができ, かつ,その構成を利用した時の I/O 性能を把握することができる.また,チューニングガイドラインを用いれば,リ ソースの利用状況により I/O 性能が限界に達しているか明らかにすることができる. キーワード:SSD,I/O 性能,仮想環境,KVM. I/O Performance Evaluation in the Virtual Environment and Optimization Method Suggestion KAZUHIKO MIZUNO†1 TAKAYUKI IMADA†1 Abstract: As high I/O performance is required in big data analysis, storage class memories (SCM) such as solid state drives (SSD) are introduced for big data analysis. Recently, NVMe (Non-Volatile Memory Express) is standardized for SCM device. Especially in the virtual environment, NVMe is applied to improve I/O performance. To assign NVMe device to a virtual machine (VM), administrators should consider assignment according to requirements of hardware/software configuration. However, it is difficult to configure optimal virtual environment due to the enormous number of variations and combinations of configurations such as VM, physical/logical device, direct/indirect assignment, virtual device interface, assignment options, etc. This research evaluates I/O performance in several kinds of virtual environment with NVMe SSD, and proposes I/O performance optimization method for virtual environment with NVMe SSD. The results show that I/O performance in virtual environment varies from 20% to 100% of the performance on bare metal environment, by configurations and options. The proposed I/O performance optimization method is considered as guidelines for optimization on I/O performance in virtual environment. This report proposes "Configuration Guidelines" on optimization of the I/O performance at deployment of the virtual environment, and "Tuning Guidelines" for run-time tuning of the I/O performance. With "Configuration Guidelines", suitable virtual configuration and I/O performance on it could be estimated easily. And also with "Tuning Guidelines", resource utilization may clarify whether I/O performance reaches the limit or not. Keywords: SSD, I/O Performance, Virtual Environment, KVM. 1. はじめに. されている.日立では,高速インメモリ DB である SAP HANA®に 特 化 した 専 用サ ーバ 機 として Hitachi Unified. 近年,企業システムが取り扱うデータ量は増大し続けて. Compute Platform for SAP HANA(UCP for SAP HANA)®[2]. おり,IDC Digital Universe Study[1]によれば 2020 年には 44. 等を出荷している.また,日立独自の仮想化技術である. ゼタバイトのデータが生成・複製されると試算されている.. Virtage™[3][4][5]では,SAP HANA®の動作可能なハードウ. この巨大なデータ群はビッグデータと呼ばれ,データ間の. ェア仮想化技術として認定を取得しており[6],複数の SAP. 関係性等を分析することで有益な情報が得られると期待さ. HANA®システムを Virtage™の仮想環境に統合できるため,. れている.. システムの運用管理コストを削減させ,サービス水準の安. ビッグデータの分析では,リアルタイムな解析が求めら れており,高速な分析を可能とするインメモリ DB が活用. 定した高信頼なクラウドサービスを提供している. このインメモリ DB では,仮想環境の導入や NAND フラ ッ シ ュ メ モ リ よ り も 高 速 高 性 能 な SCM ( Storage Class. †1 (株)日立製作所 研究開発グループ 情報通信イノベーションセンタ Hitachi, Ltd., Research & Development Group, Center for Technology Innovation – Information and Telecommunications. ⓒ2016 Information Processing Society of Japan. Memory),および,NVMe SSD(Non-Volatile Memory Express Solid State Drive)[7]の適用が進められている.. 86.

(2) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. 以降では,最初に NVMe SSD を仮想環境に適用する際の. ポート方法等の運用方針,および,実機評価による I/O 性. 問題点について報告し,次に問題点に対するアプローチと. 能評価結果に基づいて利用環境の選定等を定めることにな. して実機環境による I/O 性能評価,および,I/O 性能評価結. る.. 果より I/O 性能を最適化させるガイドラインとして策定し た I/O 性能最適化手法について報告する.. そこで,本研究では,上記指標の一つとして仮想環境で の NVMe SSD の効果検証を目的に実機環境で I/O 性能評価 を実施した.また,本評価結果に基づき NVMe SSD を適用. 2. NVMe SSD を適用した仮想環境の概要 2.1 NVMe SSD の概要 NVMe SSD では,高負荷時に発行キューと完了キューの 構成となる1つのキューペアを CPU コア毎に割り当て,低 負荷時には複数の発行キューを 1 つの完了キューに共有さ せる等のようにキュー数の調整を行える点や,コマンドを. した仮想環境の I/O 性能最適化手法を策定した. 以降では,まず,NVMe SSD の実機評価に関して説明し, 次に I/O 性能最適化手法について説明する.. 3. Bare/KVM 環境による NVMe SSD の基本性 能評価 3.1 Bare/KVM 環境における性能評価方針. 処理するキューが 1 つではなく複数(6 万 5536 個)になって. NVMe SSD の I/O 性能評価では,SSD に複数の処理が同. いるという点等が特徴となる[7].これにより多数のディス. 時にアクセスした際の I/O 性能を実機環境により測定し,. ク I/O 要求を同時に処理するサーバでは,大幅な高速化が. 物理環境と仮想環境の稼働状態の分析,および,I/O 性能. 実現される.この NVMe SSD は,Redhat®や Windows®等. に影響を与える要因調査を目的とする. 本性能評価には,仮想環境として Linux®で提供される. の各 OS,および,VMware®,Linux® KVM 等の仮想環境 でサポートされている. NVMe SSD のような高性能デバイスでは,高い I/O 性能 を得るために複数の I/O 処理を並列に処理するマルチキュ. KVM を利用し,ディスク I/O のベンチマーク測定ツールで ある fio ツールを測定に利用する.なお,以降では,物理 環境を Bare 環境,仮想環境を KVM 環境と称する.. ーが必要となる.また,仮想環境の仮想化デバイスドライ 表 1. バにおいても同様にマルチキューの効果が高いと考えられ. 仮想環境の主な構成要素. る.例えば,Linux®で提供される仮想環境 KVM では,仮. #. 構成要素. 選択範囲. 評価構成. 想化デバイスドライバである virtio-blk がマルチキューに. 1 2. CPU メモリ量. 1~max 1~max. 3 4. VM 数 仮想化 デバイス ドライバ. 5. ディスク. 1~max virtio-blk virtio-scsi virtio-nvme HDD SSD. 全ての CPU コア数を利用 VM 数に合わせて均等に割り当 て 最小:1,最大:CPU コア数 本評価に利用 本評価で未使用 本評価で未使用 本評価では未使用 SSD を 1~2 枚利用. 対応している[8].このマルチキューで解決できないデバイ スネック等では,I/O 処理の対象となるブロックデバイス を配置する SSD を分散させる対策が効果的である. 2.2 NVMe SSD を適用した仮想環境の問題点 仮想環境で NVMe SSD 等を利用する場合には,利用要件. 表 2. に適した物理/仮想環境の構成,および,仮想環境の提供. 仮想環境の主な構成要素. 機能等を選定することになる.例えば,利用要件として I/O. #. 性能評価項目. 内容. 性能を保証させたい場合には,NVMe SSD 等の物理デバイ. 1. Bare/KVM の 性能評価. SSD 利用時の I/O 性能検証 仮想化によるオーバヘッド検証 VM 構成による I/O 性能への影響調査 SSD の割り当て方による I/O 性能への 影響調査 KVM で提供されるオプションの効果検 証. スを直接 VM に割り当てる,あるいは,仮想環境で提供さ れる仮想化デバイスドライバの利用,および,I/O 性能に. 2. 関するオプションを設定することになる.. 3. このように仮想環境では,利用要件に適した環境構築が 行われるが,利用要件に適した仮想環境を検討する場合, 仮想環境の構成や機能の組み合わせが多種多様であるため 対象構成を容易に選定することができない問題がある.ま た,仮想環境では,構成や機能により I/O 性能が大きく変 動するため,NVMe SSD 等の物理デバイスを利用しても I/O 性能が向上しない可能性がある. この問題を解決するためには,選定範囲を狭めるように 指標を定めればよい.ここでの指標とは,利用要件を詳細 化するためのガイドラインである.例えば, 「I/O 性能保証」 を利用要件と定めた場合,指標には,I/O 性能低下時のサ. ⓒ2016 Information Processing Society of Japan. SSD の割り当て方 による性能評価 オプションによる 性能評価. KVM 環境では,VM を構築する場合に CPU やメモリ等 の物理サーバのリソース割り当て等を実施する.表 1 に KVM 環境の主な構成要素を示す. 本性能評価で評価対象とする KVM 環境には,最小 VM 数と最大 VM 数の構成を利用し,仮想化デバイスドライバ に virtio-blk を割り当て,ディスクには SSD を 1~2 枚利用 することとした.ここでの最小 VM 数とは,CPU を全て割 り当てた 1 つの VM であり,最大 VM 数とは,CPU コアを 各 VM に割り当てることを想定した CPU コア数分の VM である.. 87.

(3) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. 本評価構成の I/O 性能評価項目については,表 2 に I/O 性能評価項目,図 1,2 に評価構成を示す.. を評価する.KVM では,VM に virtio-blk を割り当てた場 合,I/O スレッドを複数割り当てるオプション(iothreads). まずは,Bare/KVM 環境の基本的な I/O 性能評価として, 実機環境で SSD を十分に利用できることを確認するため. を設定することが可能であり,このオプションによる I/O 性能の向上が期待できる.. に SSD の基本スペックと同等の I/O 性能を実機環境で得ら れるか検証する.また,仮想化によるオーバヘッドを確認 するために Bare 環境と KVM 環境の I/O 性能を検証する.. 3.2 NVMe SSD 性能評価向け実機環境の概要 図 3 に NVMe SSD の I/O 性能評価を行う実機環境の概要. 本性能評価の KVM 環境には,最大 VM 数の構成(1fio/vm. を示す.実機環境には,Quanta®社の QuantaPlex T41SP-2U. ×N) (図 1-(a)),および,最小 VM 数の構成(N fio/vm) (図. を物理サーバとして利用する.本物理サーバには,SSD が. 1-(b))を利用する.. 2 台搭載されており,ページサイズを 4kB としてランダム I/O の負荷をかけた場合,Read 性能として 450kIOPS,Write. Fedora23(Linux 4.2.3). Fedora23(Linux 4.2.3). KVM VM#1. KVM. VM#N. fioツール. VM#1. fioツール. fio プ ロセス#1. fioツール. fio プ ロセス#N. この物理サーバには,Fedora23(Linux 4.2.3)を準備し, 仮想環境として Linux で提供される KVM を利用する.. fioツール. fio プ ロセス #1. 性能として 75kIOPS の I/O 性能を得ることができる[9].. fio プ ロセス #N. Linux では,ディスク I/O のベンチマーク測定ツールである fio ツール,および,Linux では CPU の稼働情報を取得する. Block Device#1. SSD#1. Block Device#N. Block Device#1. (a)別々の VM に集約. れている.これらツールにより I/O 性能評価時の稼働情報 を自動的に集計できるように実機環境を構築した.. (b) 1VM に集約. (1fio/vm×N) 図 1. mpstat や I/O に関する稼働情報を取得する iostat 等が提供さ. Block Device#N. SSD#1. I/O 性能評価では,fio プロセスがかける負荷としてペー. (N fio/vm). ジサイズに 4kB,SSD へのアクセス方式にランダム I/O,. Bare/KVM の性能評価構成概要. オプションにバッファを利用しないで直接 SSD に I/O をか けるオプション(O_DIRECT)を設定した.また,本性能. Fedora23(Linux 4.2.3). 評価では,入力負荷に対する I/O 性能と稼働状況の変化を. KVM. VM#1. VM#N/2. fioツール. VM#(N/2)+1. fioツール. fio プロセス#1. fioツール. fio プロセス#N/2. VM#N. 分析するが,ここでの入力負荷とは,fio プロセスが個々に. fioツール. fio プロセス#(N/2)+1. fio プロセス#N. かける負荷ではなく,SSD に対してかける負荷(各 fio プ ロセスの負荷の総和)を表す.. Block Device#1. Block Device#N/2. SSD#1. Block Device#(N/2)+1. Block Device#N. SSD#2. (a)1fio/vm×N で 1 枚の SSD に集約させたケース. 管理LAN BMC. NIC#0. NIC#1. Fedora23(Linux 4.2.3) KVM VM#1. VM#N/2. fioツール. fioツール. fio プロセス#1. fio プロセス#N/2. VM#(N/2)+1. VM#N. fioツール. fioツール. fio プロセス#(N/2)+1. fioツール (2.2.8-2) Fedora23 (Linux 4.2.3). fioツール Fedora23 (Linux 4.2.3) (2.2.8-2). VM. KVM: Compiled against library: libvirt 1.2.18 Using library: libvirt 1.2.18 Using API: QEMU 1.2.18 Running hypervisor: QEMU 2.4.0. fio プロセス#N. HDD#1. HDD#2. SSD#1. SSD#2. Node#1 Quanta(R)サーバ. Block Device#1. SSD#1. Block Device#N/2. Block Device#(N/2)+1. SSD#2. Block Device#N. (b)1fio/vm×N で 2 枚の SSD に分散させたケース 図 2. SSD の割り当て方変更による性能評価構成概要. 次に,本性能評価では,ディスク構成による I/O 性能の. サーバ. 仕様. Quanta サーバ. QuantaPlex T41SP-2U CPU:Intel(R) Xeon(R) E5-2640 v3(Haswell) @2.6GHz ×2sockets CPU core: 8 x2sockets メモリ:DDR-4 RAM – DDR4 normal Voltage(1.2V) メモリ量:8192[MB]@1.866GHz ×8 slots NIC:Intel(R) X540-AT2 10GbE ×2port HDD:SATA 2.5“ 7.2Krpm 500GB(Intel C610) SSD:NVMe SSD 2.5“ 400GB(Intel DC P3700). 図 3. 実機環境概要. 影響を検証するために VM に割り当てる SSD を変更した時 の性能評価を実施する.具体的には,fio ツールで負荷をか けるブロックデバイスの配置を 1 つの SSD に集約したケー ス(図 2-(a)),および,2 つの SSD に分散させたケース(図 2-(b))で I/O 性能の評価を実施する. 最後に,仮想環境のオプションによる I/O 性能への影響. ⓒ2016 Information Processing Society of Japan. 4. NVMe SSD を適用した仮想環境の I/O 性能 評価結果 4.1 Bare/KVM の I/O 性能評価結果 図 4 に Bare/KVM 環境における I/O 性能の評価結果を示. 88.

(4) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. す.図 4 では,fio ツールの入力負荷に対して SSD で処理. スビジー率,および,入力負荷を参照のみとした場合の. された IOPS の結果が示されており,左側のグラフには参. CPU 利用率の結果を示す.なお,図 6 の左側のグラフには,. 照のみ(Read 比率:100%)の場合,右側のグラフには更. 横軸に fio ツールでかける入力負荷を,縦軸にデバイスビ. 新のみ(Write 比率:100%)の結果を示しおり,横軸に fio. ジー率の結果を示しており,右側のグラフには,横軸に fio. ツールでかける入力負荷を,縦軸に SSD で処理された IOPS. ツールでかける入力負荷を,縦軸に CPU 利用率の結果を示. の結果を示している.. している.. Bare 環境の I/O 性能は,入力負荷が参照のみの場合に約. 入力負荷が更新のみの場合には,入力負荷によらず常に. 438kIOPS,入力負荷が更新のみの場合に約 90kIOPS であり,. デバイスビジー率が 100%であり,入力負荷が参照のみの. SSD の基本スペックと同等の性能が得られることがわかっ. 場合には,入力負荷が 600kIOPS 以上でデバイスビジー率. た.. が 100%となり SSD のデバイスネックが発生したと考えら. KVM 環境の I/O 性能は,1fio/vm×16 のケースの場合,. れる.. 入力負荷が参照のみの場合に Bare 環境に比べて約 0.79 倍. また,入力負荷が参照のみの場合にデバイスネックが発. であり,入力負荷が更新のみの場合に Bare 環境と同等とな. 生するタイミングでは,CPU 利用率がアプリケーションで. った.また,16fio/vm のケースの場合,入力負荷が参照の. 利用される CPU 利用率(%usr)よりもカーネルで利用され. みの場合に Bare 環境に比べて約 0.21 倍であり,入力負荷. る CPU 利用率(%sys)が高くなることがわかった.これ. が更新のみの場合に Bare 環境に比べて約 0.93 倍となった. FIOで集計したIOPS (HOST:Read比率による性能評価). は,fio ツールの処理に対してサーバ側の処理が間に合って. [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. いないため,I/O 処理が停滞し I/O 性能の上限に達したと考. 100000 90000 FIOで集計したIOPS (HOST:Read比率による性能評価) Write比率:100% [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. 70000. Bare. 1fio/vm x16:virtio-blk. x 0.93. 40 200000 400000 600000 800000 1000000 1200000 400000 600000 800000 800000 1000000 00200000 200000 400000 600000 1000000 1200000 Fioプロセス で 設定したIOPS 入力負荷:IOPS Fioプロセス で 設定したIOPS. 16fio/vm:virtio-blk. Bare. Bare Bare. 1fio/vm x16:virtio-blk. 1200000. 20. 16fio/vm:virtio-blk. 1fio/vm x16:virtio-blk 1fio/vm x16:virtio-blk. 16fio/vm:virtio-blk 16fio/vm:virtio-blk. 0. 80 80 60 60. 20 20. 10 10. 88 66. 44. カーネルで利用されるCPU利用率が増加し、 アプリケーションで利用されるCPU利用率が低下. 22. 0. 0 200000 0 1000000 00 500000 400000 600000 800000 1200000 200000 400000 600000 800000 1000000 1200000 200000 00 200000 400000 600000 800000 1000000 1200000 00 200000 Fioプロセスで設定したIOPS Fioプロセスで設定したIOPS 入力負荷:IOPS. 0. 0. 図 4. (Read比率:100%). 12 12 10. デバイスネックが発生 5 ⇒性能上限の原因 ※Read比率:100%では、600kIOPSで デバイスネックが発生. 40 40. CPU利用率[ave] (HOST:Read比率:100%) CPU利用率 [random r/w,bs=4kB, iodepth=6,numa,cpu:0-1]. 15. CPU利用率[%]. 400000 600000 800000 1000000 1200000 0 400000 600000 800000 1000000 1200000 Fioプロセスで設定したIOPS 入力負荷:IOPS. 100 100. CPU利用率 [%]. 0 200000 200000. 120 120. 60. CPU利用率[%]. 10000. 00. デバイスビジー率[ave] (HOST:Read比率による性能評価) デバイスビジー率 [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. 80. %util[%]. 20000. 20. 100. デバイスビジー率[%]. 30000. 120. 500000 500000 450000 450000 400000 400000 350000 350000 300000 300000 250000 250000 200000 200000 150000 150000 100000 100000 50000 50000 00. %util[%]. 40000. 25. NVMe SSD IOPS. 60000. x 0.21 50000. NVMe SSD:IOPS. x 0.79. NVMe SSD IOPS. 500000 500000 450000 450000 400000 400000 350000 350000 300000 300000 250000 250000 200000 200000 150000 150000 100000 100000 50000 50000 00. NVMe SSD IOPS. NVMe SSD:IOPS. FIOで集計したIOPS (HOST:Read比率による性能評価) Read比率:100% [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. CPU利用率[ave] (HOST:Read比率:100%) [random r/w,bs=4kB, iodepth=6,numa,cpu:0-1]. デバイスビジー率[ave] (HOST:Read比率による性能評価) えられる. [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. 80000. Bare/KVM 環境の I/O 性能結果. Read比率:100%. Read比率:100% Read比率:100%. 図 6. Write比率:100%. 1000000. 1500000. %usr. Write比率:100% Write比率:100%. 2000000. 400000 600000 800000 1000000 1200000 400000 600000 800000 1000000 1200000 Fioプロセスで設定したIOPS Fioプロセスで設定したIOPS 入力負荷:IOPS %sys. %usr %usr. %sys %sys. 2500000. %iowait. %iowait %iowait. Bare 環境での性能ネック解析. 図 5 には,KVM 環境で SSD のブロックデバイスを直接 VM に割り当てた時の I/O 性能の評価結果を示す.図 5 の. 4.2 SSD の割り当て方変更による性能評価結果. グラフの縦軸と横軸は,図 4 のグラフと同様である.. 前節で示したように実機環境の性能上限は,デバイスネ. 16fio/vm のケースで VM にブロックデバイスを直接割り. ックが原因と考えられる.そこで,fio ツールで負荷をかけ. 当てた場合(Path Through 設定を実施した場合)には,Bare. るブロックデイバスを 2 つの SSD に分散させることでデバ. 環境での I/O 性能と同等の結果となった.従って,図 4 に. イスネックを緩和させた状態で I/O 性能を測定した.図 7. おける 16fio/vm の性能低下は,virtio-blk の処理によるオー. には,1fio/vm×16 のケースにおいてブロックデバイスを配. バヘッドと考えられる.なお,SSD のブロックデバイスを. [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15] 置する SSD を分散させた時の I/O 性能の評価結果を示す.. 直接 VM に割り当てた場合には,ハイパバイザとなるホス. なお,図 7 のグラフの縦軸と横軸は図 4 のグラフと同様で. トから SSD が認識できなくなる.そのため,この SSD を. ある.. FIOで集計したIOPS (VM Total:Read比率による性能評価). 300000. 250000. NVMe SSD:IOPS. FIOで集計したIOPS (HOST:Read比率による性能評価) [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15] 100000 90000 80000. NVMe SSD IOPS. 200000 200000. FIOで集計したIOPS (HOST:Read比率による性能評価) Write比率:100% [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. x 1.57. 400000 400000 300000 300000 200000 200000 100000 100000 00. 500000 500000 60000. 00. 200000 200000. 150000 FIOで集計したIOPS (HOST:Read比率による性能評価) Write比率:100% [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. SSD片側利用時. 800000 800000. 100000 700000. 400000 600000 800000 1000000 1200000 400000 600000 800000 1000000 1200000 Fioプロセスで設定したIOPS 入力負荷:IOPS SSD両側利用時. 700000 600000 600000 500000 500000. 50000. 400000 400000 300000 300000 200000 200000 0 100000 100000 0 00 00. x 2.75. 200000 200000 200000. 400000. 600000. 図 7 200000. 200000 200000. 16fio/vm:PathThrough. 400000. 600000. 800000. 400000 600000 800000 1000000 1200000 400000 600000 800000 1000000 1200000 Fioプロセスで設定したIOPS Fioプロセスで設定したIOPS 入力負荷:IOPS Bare. 16fio/vm:PathThrough. Bare Bare. 16fio/vm:PathThrough 16fio/vm:Path Through. KVM 環境(Path Through 設定)の I/O 性能結果. 1000000. 800000. 400000 600000 800000 1000000 1200000 400000 600000 800000 1000000 1200000 Fioプロセスで設定したIOPS Fioプロセスで設定したIOPS 入力負荷:IOPS SSD片側利用時. SSD両側利用時. SSD片側利用時 SSD片側利用時. NVMe SSD IOPS. 450000 450000 50000 400000 400000 350000 350000 40000 300000 300000 30000 250000 250000 200000 200000 20000 150000 150000 10000 100000 100000 50000 0 50000 0 00 400000 600000 800000 1000000 1200000 400000 600000 800000 1000000 1200000 00 Fioプロセスで設定したIOPS 入力負荷:IOPS Bare. 図 5. 70000. NVMe SSD:IOPS. NVMe SSD IOPS. NVMe SSD:IOPS. FIOで集計したIOPS (HOST:Read比率による性能評価) Read比率:100% [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. 700000 700000 600000 600000 500000 500000. NVMe SSD IOPS. ることができない.. 500000 500000 450000 450000 400000 400000 350000 350000 300000 300000 250000 250000 200000 200000 150000 150000 100000 100000 50000 50000 00 00. NVMe SSD IOPS. FIOで集計したIOPS (HOST:Read比率による性能評価) Read比率:100% [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15] 800000 800000. NVMe SSD:IOPS. なケースでは,Path Through 設定による I/O 性能を評価す. 200000. NVMe SSD IOPS. 他の VM に割り当てることができず,1fio/vm×16 のよう. SSD両側利用時 SSD両側利用時. SSD の割り当て方変更による I/O 性能結果. 1200000. ブロックデバイスを配置する SSD を分散させた場合に は,入力負荷が参照のみの場合に約 689kIOPS であり,入 力負荷が更新のみの場合に約 247kIOPS となった.SSD を. 図 6 には,Bare 環境の I/O 性能評価時に取得したデバイ. ⓒ2016 Information Processing Society of Japan. 分散させる前の構成(図 4 の I/O 性能評価結果)と比較し. 89. 1000000. 1200000.

(5) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. た場合には,入力負荷が参照のみの場合に約 1.57 倍,入力 負荷が更新のみの場合に約 2.75 倍と I/O 性能が向上する結 果となった.. なる. 構成 4 は, 「N fio/vm+iothread」のケースであり,構成 2, 3 と同様に管理コストは小さく,また,構成 1 と同等の I/O 性能を得ることができる.しかし,VM に割り当てて全デ. 4.3 KVM 環境のオプション設定による性能評価結果 KVM の virtio-blk では,マルチキュー対応として I/O ス レッドを複数割り当てるオプション(iothread オプション). バイスに設定が必要となり,また,virtio-blk 特有のオプシ ョンとなるため高度な SCSI 機能を利用する virtio-scsi 等の 他の仮想化デバイスドライバ利用する場合に適用できない.. が提供されている.そこで,このオプションによる効果を 16fio/vm のケースで評価した.図 8 にオプション利用時に おける I/O 性能の評価結果を示す.図 8 のグラフの縦軸と 横軸は,図 4 のグラフと同様である. オプション設定により 16fio/vm のケースでは,入力負荷 が参照のみの場合に約 342kIOPS となり,入力負荷が更新 のみの場合に約 89kIOPS となった.この I/O 性能は,1fio/vm ×16 のケースと同等でありオプションによる改善効果が 高いことがわかった.. FIOで集計したIOPS (HOST:Read比率による性能評価) [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. 100000 90000 80000. NVMe SSD IOPS. 00. 200000 200000. Bare. FIOで集計したIOPS (HOST:Read比率による性能評価) Write比率:100% [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. 500000 500000 450000 450000 50000 400000 400000 350000 350000 40000 300000 300000 30000 250000 250000 オプションにより「1fio/vm x16」 200000 200000 20000 と同等の性能に向上 150000 150000 10000 100000 100000 50000 50000 0 0 200000 400000 600000 800000 1000000 1200000 00 400000 600000 800000 1000000 1200000 400000 600000 800000 1000000 1200000 0 200000 400000 600000 800000 1000000 1200000 0 200000 400000 600000 800000 1000000 1200000 Fioプロセスで設定したIOPS Fioプロセスで設定したIOPS Fioプロセスで設定したIOPS 入力負荷:IOPS 入力負荷:IOPS. 1fio/vm x16:virtio-blk. 16fio/vm:virtio-blk. 16fio/vm+option. Bare Bare. 図 8. NVMe SSD IOPS. 60000. NVMe SSD:IOPS. 500000 500000 450000 450000 400000 400000 350000 350000 300000 300000 250000 250000 200000 200000 150000 150000 100000 100000 50000 50000 00. NVMe SSD IOPS. NVMe SSD:IOPS. FIOで集計したIOPS (HOST:Read比率による性能評価) Read比率:100% 70000 [random r/w,bs=4kB, iodepth=6,numa,cpu:0-15]. 表 3. Bare. 1fio/vm x16:virtio-blk. 1fio/vm x16:virtio-blk 1fio/vm x16:virtio-blk. 1fio/vm x16:virtio-scsi. 1fio/vm x16:virtio-scsi 16fio/vm:virtio-blk. I/O 性能評価構成. 特徴 No 評価構成 メリット 1 1fio/VM×N  VM 数の増減で I/O 性 能を制御可能  VM 数の増減は仮想 環境で容易に対応可 2 N fio/VM  メンテナンス時等の 管理コスト小  仮想環境への移行が 容易 3 N fio/VM +  メンテナンス時等の Path Through 管理コスト小  仮想化のオーバヘッ ド小 4 N fio/VM + Iothread. デメリット  メンテナンス時等で 全 VM の管理要(管理 コスト大)  I/O 性能が非常に低い  fio 増設時等で VM の 再設定要.  fio 増設時等で VM の 再設定要  他の VM で SDD を利 用不可  VM 側で SSD 設定要  メンテナンス時等の  fio 増設時等で VM の 管理コスト小 再設定要  仮想化のオーバヘッ  全 ブ ロ ッ ク デ バ イ ス ドは構成 1 と同等 に対して設定要  virtio-blk 以 外 に 利 用 不可. 16fio/vm+option. 16fio/vm+option 16fio/vm+option. マルチキュー対応オプションによる I/O 性能結果. (2)I/O 性能の関連要素の分析 実機環境による性能評価では,様々な影響を受けて I/O. 5. NVMe SSD を適用した仮想環境の I/O 性能 最適化手法の検討. 性能が変動していたことから I/O 性能に関連する要素を 3 つ選定した.表 4 に I/O 性能の関連要素を示す. 関連要素 1 には,Bare 環境の I/O 性能評価でブロックデ. 5.1 I/O 性能評価結果の考察 本節では,I/O 性能を最適化させる I/O 性能最適化手法の 事前検討として性能評価の考察内容について説明する.. バイスの配置変更により I/O 性能の上限が向上したことか ら「利用する SSD 数」を選定した. 関連要素 2 には,I/O 性能の上限時にデバイスビジー率 と CPU 利用率の挙動が変化することから「物理サーバのリ. (1)評価構成の特徴整理 KVM 環境の I/O 性能評価では,主に 4 つの構成を利用し た.表 3 に I/O 性能評価時の評価構成と特徴について示す. 構成 1 は, 「1fio/vm×N」のケースであり,VM 数を増減. ソース利用状況」を選定した. 関連要素 3 には,入力負荷が更新時と参照時で I/O 性能 の変化が異なり,かつ,入力負荷が参照時に I/O 性能が高 くなることから「入力負荷の参照・更新比率」を選定した.. させることで容易に入力負荷を変更できるが,メンテナン ス時等では,全 VM に対して管理を行うため管理コストが 大きくなる. 構成 2 は, 「N fio/VM」のケースであり,メンテナンス等. 表 4 No 要素 1 SSD 数. を VM 単体に対して行えば良いため管理コストが小さくな るが,Bare 環境に比べて I/O 性能が非常に低く,かつ,fio ツール等を増設する場合に VM の再設定が必要となる. 構成 3 は,「N fio/vm+Path Through」のケースであり, 構成 2 と同様に管理コストは小さく,かつ,SSD を直接 VM に割り当てるため,Bare 環境と同等の I/O 性能を得る ことができる.しかし,他の VM で SSD を利用することが できず,かつ,SSD のデバイス設定を VM 側で行うことに. ⓒ2016 Information Processing Society of Japan. 2 リソース 利用状況 3 Read/Write 比率. I/O 性能の関連要素. 内容  空き SSD の利用(ブ ロックデバイスの配 置を分散)  CPU 利用率の統計情 報  入力負荷の参照と更 新の割合. 特徴  デバイスビジー率の 緩和による I/O 性能向 上  I/O 性能の上限予兆  入力負荷で参照が多 い場合に I/O 性能向上. (3)I/O 性能を最適化するためのポイント 仮想環境で I/O 性能を向上させる場合には,アプリケー ションを実行する VM 数を増やすこと,および,実機環境 を構成するハードウェア/ソフトウェア等のスペック向上. 90.

(6) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. が考えられる.ここでは,前者をスケールアウトと称し,. I/O 性能を最適化する(図 9-(c)).具体的には,SSD を VM. 後者をスケールアップと称する.. に 占 有 さ せ る こ と が 可 能 で あ れ ば ,「 N fio/vm + Path. 仮想環境の導入・運用時では,このスケールアウトとス. Through」を選定する(図 9-(d)).また,SSD を他の VM に. ケールアップの利用方法により仮想環境の構成が異なる. 利用する場合には,「N fio/vm+iothread」を選定する(図. (VM の管理方法が異なる)ため,I/O 性能を構成により最. 9-(e)).但し,iothread オプションは,VM に virtio-blk を利. 適化する 1 つのポイントになると考えられる.. 用している時に設定可能であり,virtio-blk を利用しない場. スケールアウトで I/O 性能を向上させる場合には,VM. 合には,「N fio/vm」が選定されることになる.. を容易に増設できることがポイントとなるため,「1fio/vm. 以上のようにコンフィグガイドラインを用いれば,利用. ×N」のケースが適している.他の評価構成では,VM 上. 要件に適した仮想環境の構成を明らかにすることができ,. に複数のアプリケーションを集約した構成となるため適し. かつ,その構成を利用した時の I/O 性能を把握することが. ていない.. できる.また,本ガイドラインでは,環境構築時に適用す. スケールアップで I/O 性能を向上させる場合には,実機. ることで最適な仮想環境構成を選定することができるため,. 環境を構成するハードウェアやソフトウェアの変更時に. スタートアップ工数の削減が期待できる.実運用中であれ. VM を容易に稼働・停止できることがポイントになるため,. ば,本手法で選定した仮想環境構成により環境変更時の I/O. 「N fio/vm」のケースが適している.但し,「N fio/vm」の. 性能の変化量を把握することができる.. ケースでは,I/O 性能が極端に低いため,仮想環境の提供 機能等を利用することで I/O 性能を向上させることになる. 一方,実運用時には,実機環境のリソースの利用状況が I/O 性能を最適化させるポイントになると考えられる.例 えば,性能評価では,デバイスビジー率と CPU 利用率の挙 動により I/O 性能の上限を判別することが可能である.ま た,ブロックデバイスを配置する SSD に余裕があれば,複 数の SSD にブロックデバイスを分散させることで I/O 性能 の向上が期待できる.. I/O性能最適化手法. (a) SSDボリューム占有可能 (占有で割り当てていない). Yes. No. VMのPath Though設定により I/O性能向上の可能性あり. (b) SSDボリュームに 空きがある. Yes 利用するSSDボリュームを分散さ せることでI/O性能向上の可能性 あり. No. (c) 1VMに2つ以上の fioを搭載 No. Yes. (d) (入力負荷の)Write 比率が高い Yes. No. (e) デバイスビジー率 が高い Yes. No. Yes. No (g) CPU利用率: %usr > %sys. No. Yes. I/O性能限界の可能性あり. 5.2 I/O 能最適化手法の策定と考察. (f) Iothredオプション利用可 (本オプション設定未済). 図 10. 1fio/VMを増やす(スケールアウト する)ことでI/O性能向上の 可能性あり. I/O性能限界の可能性あり. Iothreadオプションにより I/O性能向上の可能性あり. チューニングガイドラインの概要. I/O 性能最適化手法では,コンフィグガイドラインとチ ューニングガイドラインを策定した.本節では,各ガイド ラインについて説明する.. チューニングガイドラインでは,実運用時における I/O 性能の上限を明らかにする.図 10 にチューニングガイドラ インの概要を示す. まずは,VM に直接 SSD を割り当てていない場合に SSD. I/O性能最適化手法 開始. (a) VMのスケール アウト可能. を占有可能か確認する(図 10-(a)).SSD を占有できれば,. No. Bare 環境と同等の I/O 性能が得られるため,I/O 性能の向. Yes (b) スケールアウトにより I/O性能最適化. (d)1VMにSSDを占有 割当可能 Yes ◆構成1 ・1 fio/vm x N ・Bare性能比:0.79倍. 図 9. 上が期待できる.. (c) VMの設定により I/O性能最適化. ◆構成3 ・N fio/vm ・I/O:Path Through設定 ・Bare性能比:1.00倍. No. (e) virtio-blk利用. 次に,SSD の空き状況を確認する(図 10-(b)).SSD に空. No. きがある場合には,ブロックデバイスの配置先となる SSD. Yes ◆構成4 ・N fio/vm ・オプション:iothread設定 ・Bare性能比:0.78倍. ◆構成2 ・N fio/vm ・Bare性能比:0.21倍. コンフィグガイドラインの概要. を分散できるので I/O 性能の向上が期待できる. 次に,VM 上で稼働するアプリケーション(fio ツール) 数を確認する(図 10-(c)).VM 上で複数の fio ツールを稼 働させている場合には,iothread オプションの利用有無を. コンフィグガイドラインでは,仮想環境の導入・変更時. 確認する(図 10-(f)).この時に iothread オプションを利用. における最適な仮想環境の構成を明らかにする.図 9 にコ. していれば I/O 性能限界と考えられ,本オプションを利用. ンフィグガイドラインの概要を示す.. していなければ I/O 性能の向上が期待できる.. まずは,選定する仮想環境構成を VM のスケールアウト. VM 上で複数の fio ツールを稼働させていない場合には,. の利用有無で 2 つに分ける(図 9-(a)).スケールアウトを. 入力負荷の参照・更新の割合を確認する(図 10-(d)).入力. 行う場合には,VM の増設が容易に行える「1fio/vm×N」. 負荷の更新比率が高い場合には,入力負荷の IOPS によら. を選定する.. ずデバイスビジー率が高くなっているため,アプリケーシ. スケールアウトを行わない場合には,VM の設定により. ⓒ2016 Information Processing Society of Japan. ョンで利用される CPU 利用率(%usr)とカーネルで利用さ. 91.

(7) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. れる CPU 利用率(%sys)を確認する(図 10-(g)).この%usr. させた場合には,I/O 性能は Bare 環境に比べて 20%程度と. が高ければ VM をスケールアウトさせることで I/O 性能の. なるが,ブロックデバイスを直接 VM に割り当てることで. 向上が期待できるが,%sys が高ければ I/O 性能限界と考え. Bare 環境と同等の I/O 性能を得ることができる.. られる.. この実機評価に基づいて,仮想環境の導入・運用時に I/O. 入力負荷の参照比率が高い場合には,デバイスビジー率. 性能を最適化させるコンフィグガイドライン,および,実. を確認する(図 10-(e)).このデバイスビジー率が高い場合. 運用時に得られる I/O 性能を最適化させるチューニングガ. には,デバイスネックが発生しているため I/O 性能限界と. イドラインを I/O 性能最適化手法として策定した.. 考えられるが,デバイスビジー率が低い場合には,VM を. コンフィグガイドラインでは,利用要件に適した仮想環. スケールアウトさせることで I/O 性能の向上が期待できる.. 境の構成を明らかにすることができ,かつ,その構成を利. 以上のようにチューニングガイドラインを用いれば,リ. 用した時の I/O 性能を把握することができる.また,チュ. ソースの利用状況により I/O 性能限界を容易に明らかにす. ーニングガイドラインを用いれば,リソースの利用状況に. ることができる.また,本手法では,各リソースの利用状. より I/O 性能が限界に達しているか容易に明らかにするこ. 況から I/O 性能限界を判定しているため,不要なリソース. とができる.. (余剰リソース)も判断することができコストパフォーマ ンスの削減効果も期待することができる.. 今後の課題としては,実機評価の条件をより詳細化する ことで仮想環境の構成や挙動をより明確化させて本手法の 精度を向上させる必要がある.また,I/O 性能最適化手法. 6. 関連研究 仮想環境に NVMe SSD を利用する際の I/O 性能に関する. は,KVM 環境の性能評価により策定しているため,他の 仮想化基盤でも同様に効果を得られるか検証する必要があ る.. 研究として,Kim らは,virtio-blk の data-plane 機能[10]をベ ースとして QEMU のドライバに CPU の Affinity 設定,ゲ. 参考文献. スト(VM)の IPI(Inter-process interrupt)処理の簡素化,. [1] Digital Universe,“The DIGITAL UNIVERSE of OPPORTUNITIES: RICH DATA & the Increasing Value of the INTERNET OF THINGS,”2014 年. [2] 日立製作所,“Hitachi Unified Compute Platform for SAP HANA(UCP for SAP HANA),” http://www.hitachi.co.jp/products/it/unified/products/model/saphana /. [3] 上野仁他,“情報システムの運用効率を向上する 「BladeSymphony」のサーバ仮想化機構「Virtage」,” http://www.hitachihyoron.com/jp/pdf/2007/07/2007_07_10.pdf,日 立評論,7 月号,Vol.89 No.07 562-567(2007) . [4] 日立製作所,“サーバ仮想化機構「Virtage」ハードウェア透過 性,” http://www.hitachi.co.jp/products/bladesymphony/virtual/dl/virtage _wp03.pdf,ホワイトペーパー. [5] 上野仁,長谷川里美,“Virtage: Hitachi’s Virtualization Technology,”4th Workshop on Virtualization and High-Performance Cloud Computing-VHPC’09,2009 年 08 月 25 日. [6] 日立製作所,“日立のサーバ論理分割機構 Virtage が SAP HANA®の動作可能な仮想化技術として SAP 社から認定,” http://www.hitachi.co.jp/New/cnews/month/2014/10/1021b.html, ニュースリリース,2014 年 10 月 21 日. [7] SNIA,“PCIe SSD 101 標準,マーケット,性能の概要,” http://www.snia-j.org/tech/WH/PCIe_SSD/files/PCIe_SSD_101_J.p df,2013 年. [8] Ming Lei,“Virtio-blk Multi-queue Conversion and QEMU Optimization,” http://www.linux-kvm.org/images/6/63/02x06a-VirtioBlk.pdf, 2014 年. [9] Intel,“Intel Solid State Driver DC P3700 Series,” http://www.intel.cn/content/dam/www/public/us/en/documents/prod uct-specifications/ssd-dc-s3700-spec.pdf,Product Specification, 2015 年 10 月. [10] IBM,Suse,“KVM Virtualized I/O Performance,” IEEE Computer Society,pp. 1-11, (2015).. I/O 要求のダイナミック調整等の機能実装,および,論理 CPU に I/O スレッドと queue を割り当てる(vCPU-dedicated I/O thread)機能を実装することで仮想環境の I/O 性能が向 上することが報告されている[11].Oh らは,I/O スタック を最適化するために考案した Pipelined polling 機能により 複数の I/O 処理を並列に処理させることでロック競合の解 消や割り込み処理による遅延を緩和し I/O 性能の向上や CPU 利用率の改善等が報告されている[12].Oikawa らは, NVMe SSD 等ストレージを仮想化する VMMS(Virtual Main Memory Storage)により OS の軽量化を図り I/O 性能を向上 させる手法[13][14]等が報告されている. 本研究では,実機検証による I/O 性能最適化手法を提案 しており,上述した研究内容により NVMe SSD の I/O 性能 の向上が期待できるため,本手法の精度向上・利用用途の 拡充が期待できると考えている.. 7. おわりに 本研究では,仮想環境で提供できる構成や機能の組み合 わせが多種多様であるため対象構成を容易に選定すること ができない問題に対して,選定範囲を狭める指標を定める ために実機環境による I/O 性能評価,および,I/O 性能最適 化手法を策定した. 実機環境による I/O 性能評価では,利用する Bare/KVM 環境の構成やオプションの設定により I/O 性能が大きく変 化することがわかった.例えば,単純に1つの VM に集約. ⓒ2016 Information Processing Society of Japan. 92.

(8) コンピュータシステム・シンポジウム Computer System Symposium. ComSys2016 2016/11/29. https://www.suse.com/docrep/documents/xvbozdzzxj/kvm_virtualiz ed_io_performance.pdf, 2013 年 6 月. [11] Kim, T. Y.; Kang, D.; Lee, D. & Eom, Y. I.,“Improving performance by bridging the semantic gap between multi-queue SSD and I/O virtualization framework.,”in 'MSST',IEEE Computer Society,pp. 1-11,(2015). [12] M. Oh et al.,“Enhancing the I/O system for virtual machines using high performance SSDs,” in Proc. IEEE int. Performance Computing and Commun. Conf., Austin, TX, pp. 1-8,(2014). [13] 追川修一,“ゲスト OS 軽量化のためのストレージ仮想化手 法,”情報処理学会,Vol.8 No.1 1-11 ,2015 年 3 月. http://www.hitachi.co.jp/New/cnews/month/2014/10/1021b.html, ニュースリリース,2014 年 10 月 21 日. [14] Oikawa,“Virtual Storage as Memory for High Performance Storage Access,” in Proc. IEEE int. computer society,(2014).. ⓒ2016 Information Processing Society of Japan. 93.

(9)

図  4  Bare/KVM 環境の I/O 性能結果
図  8  マルチキュー対応オプションによる I/O 性能結果  5.  NVMe SSD を適用した仮想環境の I/O 性能 最適化手法の検討  5.1  I/O 性能評価結果の考察  本節では, I/O 性能を最適化させる I/O 性能最適化手法の 事前検討として性能評価の考察内容について説明する.  (1)評価構成の特徴整理  KVM 環境の I/O 性能評価では,主に 4 つの構成を利用し た.表 3 に I/O 性能評価時の評価構成と特徴について示す.    構成 1 は, 「1fio/vm×N」

参照

関連したドキュメント

[No.20 優良処理業者が市場で正当 に評価され、優位に立つことができる環 境の醸成].

産業廃棄物を適正に処理するには、環境への有害物質の排出(水系・大気系・土壌系)を 管理することが必要であり、 「産業廃棄物に含まれる金属等の検定方法」 (昭和

(5) 帳簿の記載と保存 (法第 12 条の 2 第 14 項、法第 7 条第 15 項、同第 16

Dual I/O リードコマンドは、SI/SIO0、SO/SIO1 のピン機能が入出力に切り替わり、アドレス入力 とデータ出力の両方を x2

 大都市の責務として、ゼロエミッション東京を実現するためには、使用するエネルギーを可能な限り最小化するととも

 大都市の責務として、ゼロエミッション東京を実現するためには、使用するエネルギーを可能な限り最小化するととも

「有価物」となっている。但し,マテリアル処理能力以上に大量の廃棄物が