OpenStack:Cinderスケジューラは、アクティブ/アクティブ環境で古い統計を使用します
環境
- OpenStack(すべてのリリース)
問題
Cinderスケジューラは、etcdデータベースのような信頼できる「単一の真実のソース」を利用しません。 たとえば、次のように指定
- を含むバックエンド統計
total_capacity_gb
provisioned_capacity_gb
max_over_subscription_ratio
情報。すべての情報は、各Cinderスケジューラのメモリにあります。 - ボリュームノードはCinderスケジューラノードにバックエンド統計情報の更新を定期的に送信します
- ただし、次のような場合には、レース条件が可能です。
- Cinderボリュームは数秒以内に作成されます
- Cinderスケジューラの統計は、新しいボリューム作成要求を受信する前に更新されません
- Cinderスケジューラでフィルタリングするバックアップストレージプール(Cinderスケジューラのデータ統計が最大である場合)にCinderボリュームを作成できます。
max_over_subscription_ratio
これには、で設定された上限を超えてバッキングストレージプールをプロビジョニングできる、が無視するシナリオが含まれますmax_over_subscription_ratio
- また、使用可能なスペースが多いプールよりも、ほぼフルのストレージプールが選択される場合もあります。
この問題 は、汎用CinderドライバとネットアップCinderドライバの両方に影響します。