ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

OpenStackのSecurity GroupのQuotaをいじる

kakine というOpenStackerには便利なツールがあり、ノリノリでセキュリティグループを20件ほど定義していたのだが。

www.hsbt.org

github.com

いざ適用しようとしたら以下のようなエラーが出たのであった。怖い...何者なんだ...

$ bundle exec kakine apply -t pepabo
NeutronError:Quota exceeded for resources: ['security_group']

OpenStackの様々なQuota


実は、AWSでいうインスタンスの数の制限とか、セキュリティグループは100件までですよとか、そういうアレがOpenStackにも存在する。詳細は以下のドキュメントを眺めるといいと思う。


今回は、セキュリティグループ周りのQuotaを上げるのだが、セキュリティグループはNovaとNeutronの両方に項目があるのでややこしい。。

今回僕が出くわした設定は security_group_api=neutron なので、Neutron側の設定の変更だけで済むと思われる。


気になるならNova側も変えましょう...という感じで...

ということで設定を変える

具体的には

  • quota_security_group - 1テナントで作成できるSGの数
  • quota_security_group_rule - 1つのSG内に作成できるルールの数

これらがそれぞれデフォルト 10(!) / 100 なのを、 25 / 150 とかにする。

/etc/neutron/neutron.conf の、 [quota] ディレクティブの下の以下のコメントの辺を編集。

 # number of security groups allowed per tenant, and minus means unlimited
 # quota_security_group = 10
+quota_security_group = 25
 
 # number of security group rules allowed per tenant, and minus means unlimited
 # quota_security_group_rule = 100
+quota_security_group_rule = 150
 
 # default driver to use for quota checks
 # quota_driver = neutron.db.quota_db.DbQuotaDriver
 ...

Novaの場合も、 /etc/nova/nova.conf に似たような項目がある。

あとは(novaと)neutronのAPIデーモンを再起動すればOK。

コマンドで確認

$ neutron quota-show                                        
+---------------------+-------+
| Field               | Value |
+---------------------+-------+
| floatingip          | 50    |
| network             | -1    |
| port                | -1    |
| router              | 10    |
| security_group      | 25    |
| security_group_rule | 100   |
| subnet              | -1    |
+---------------------+-------+

反映されています。よかったですね。

たぶん neutron quota-update とかでもいいんだけど、設定ファイルを構成管理ツールなどであれすれば履歴管理もできて便利、ということでこっちのやり方を紹介した。

なお、

セキュリティグループが増えれば増えるほど、当然 compute node 上に自動生成される iptables の様子も複雑怪奇になるので、なんかパフォーマンスとかの影響が出るかもしれない。何かしらの形で計測して値を調整しましょう。