Nova Schedulerも捨てたもんじゃ無い

この記事は「OpenStack (2枚目) Advent Calendar 2014」 12/14 分です。

Nova Schedulerの状況

NovaのFilter Schedulerが使えないとの事で、風当たりが強い時期がありました。それを受けてSolver Schedulerや、Ganttと呼ばれる外部のスケジューラープロジェクトが立ち上がりました。最近はそれほどの熱気は感じませんが、現状はそれぞれで粛々と対応が行われているようです。現状のFilter Schedulerも改善が続けられており、機能を理解しておけばそれなりに使えるとは思います(機能を追うのは大変ですが)

Filter Schedulerについて

基本的に複数あるホストをフィルタリングして選択して、その後重み付けで最後の一台を選ぶ作業を行います。フィルターは様々なフィルターが用意されており、以下に一覧があります。

http://docs.openstack.org/developer/nova/devref/filter_scheduler.html

重み付けは標準ではRAMの残りで選択されます。重み付けはFilterに比べると少ないです。今の所RAM/Metric/IoOpsの3種類が用意されています。

skitch

静的なホスト属性でのフィルター

ホストの静的な属性を用いてフィルターを行いたい場合は既存で用意されているフィルターか、Host Aggregateを利用してある程度の属性でフィルタリング可能です。Host Aggregateでホストにラベル付けを行えばホストの状態(機器構成等)によっていの仮想マシン配置が可能になります。

動的なホスト属性でフィルター/ウェイト

ホストの動的な値例えばCPU使用率等を利用したい場合は、以前ブログで書いたUtilization based Schedulingの仕組みが利用出来ます。ある程度のPythonスクリプトを書く必要はあります。以前のエントリは以下になります。

https://hirokiaramaki.com/2014/12/06/openstack-nova%E3%81%AEutilization-aware-scheduling%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B/

テトリス問題

CERNは数値計算を行う事が多いため、大きな仮想マシンが多く作成されています。時々小さな仮想マシンが作成されるとNovaは仮想マシンを分散しようとするので、その影響によってホストを占有するに近い大きな仮想マシンが小さな仮想マシンの影響で作成出来なくなる問題が起こったとの事です。。解決策としてRAMのWeighterの倍率をマイナスにして、なるべく仮想マシンを寄せて対応しているようです。

以下で問題点とその解決策が示されてます。

http://openstack-in-production.blogspot.jp/2014/07/openstack-plays-tetris-stacking-and.html

3rd PartyのScheduler

Gantt

NovaのScheduler自体を外に出してしまうProjectです。個人的にはCinderやNeutronもScheduler使っているので一つにまとめてしまうのも一つの手かなとも思います。
スペック固めの最中
https://review.openstack.org/#/c/89893/

Solver Scheduler

CiscoとEricssonが中心となって開発しています。NFV(Teleco)関連で押しています。

https://github.com/CiscoSystems/nova-solver-scheduler

IBM Platform Resource Scheduler

IBMさんが開発と提供を行っています。IBMの長い歴史で培ったホストを効率的に利用するテクノロジが詰め込まれているらしいです。

まとめ

一時期より落ち着いたとはいえScheduler周りは今でもホットな状況ですが、幾つかの問題点をはらんでいるとは言え標準で用意されているFilter Schedulerもそれなりに使えますので自作Schedulerを作り始める前にしっかり調査して見てもらえればと思います。

広告
Nova Schedulerも捨てたもんじゃ無い

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中