第10章 Quality-of-Service (QoS) の設定
Red Hat OpenStack Platform 11 ではネットワークの quality-of-service (QoS) ポリシーがサポートされるようになりました。これらのポリシーにより、OpenStack の管理者は、インスタンスの送信トラフィックに速度制限を適用して、さまざまなサービスレベルを提供することができます。QoS ポリシーを実装すると、指定した速度を超過するトラフィックはドロップされるようになります。
10.1. QoS ポリシースコープ
QoS ポリシーは個々のポートまたは特定のテナントネットワークに適用されます。テナントネットワークに適用される場合、そのポリシーは、ポリシーが適用されていないポートに継承されます。
10.2. QoS ポリシー管理
QoS ポリシーは、動的に適用、変更、削除することができます。以下の例では、帯域幅を制限するルールを手動で作成して、1 つのポートに適用します。
テナントの一覧を確認して、QoS ポリシーを作成するテナントの ID を決定します。
# openstack project list +----------------------------------+----------+ | ID | Name | +----------------------------------+----------+ | 4b0b98f8c6c040f38ba4f7146e8680f5 | auditors | | 519e6344f82e4c079c8e2eabb690023b | services | | 80bf5732752a41128e612fe615c886c6 | demo | | 98a2f53c20ce4d50a40dac4a38016c69 | admin | +----------------------------------+----------+
adminテナントにbw-limiterという名前の QoS ポリシーを作成します。# neutron qos-policy-create 'bw-limiter' --tenant-id 98a2f53c20ce4d50a40dac4a38016c69
bw-limiterの規制ルールを設定します。# neutron qos-bandwidth-limit-rule-create bw-limiter --max_kbps 3000 --max_burst_kbps 3000
bw-limiterポリシーを適用する neutron ポートを設定します# neutron port-update <port id> --qos-policy bw-limiter
QoS ルールを確認します。以下に例を示します。
# neutron qos-rule-show 9be535c3-daa2-4d7b-88ea-e8de16 +-------------------+---------------------------------+ | Field | Value | +-------------------+---------------------------------+ | id | 9be535c3-daa2-4d7b-88ea-e8de16 | | rule_type | bandwidth_limit | | description | | | max_kbps | 3000 | | max_burst_kbps | 300 | +-------------------+---------------------------------+
以下の値により、規制のアルゴリズムを適宜に設定することができます。
-
max_kbps: インスタンスが送信可能な最大速度 (Kbps 単位) -
max_burst_kbps: トークンのバッファーが満杯であった場合にそのポートが一度に送信することができたデータの最大量 (キロビット単位)。トークンのバッファーは「max_kbps」の速度で補充されます。
10.3. 送信トラフィックの DSCP マーキング
Differentiated Services Code Point (DSCP) では、IP ヘッダーに関連の値を埋め込むことで、ネットワーク上に QoS を実装することができます。OpenStack Networking (neutron) QoS ポリシーは、DSCP マーキングを使用して、neutron ポートとネットワーク上で送信トラフィックを管理することができるようになりました。現在、DSCP は Open vSwitch (OVS) を使用する VLAN とフラットプロバイダーネットワークのみに利用できます。今後、VXLAN もサポートされる予定です。
この実装では、最初にポリシーが作成され、DSCP ルールが定義されてポリシーに適用されます。これらのルールは、--dscp-mark パラメーターを使用して、DSCP マークに 10 進数の値を指定します。以下に例を示します。
1. 新規 QoS ポリシーを作成します。
neutron qos-policy-create qos-web-servers --tenant-id 98a2f53c20ce4d50a40dac4a38016c69
2. DSCP マーク 18 を使用して、DSCP ルールを作成し、qos-web-servers ポリシーに適用します。
neutron qos-dscp-marking-rule-create qos-web-servers --dscp-mark 18 Created a new dscp_marking_rule: +-----------+--------------------------------------+ | Field | Value | +-----------+--------------------------------------+ | dscp_mark | 18 | | id | d7f976ec-7fab-4e60-af70-f59bf88198e6 | +-----------+--------------------------------------+
3. QoS ポリシー qos-web-servers の DSCP ルールを表示します。
neutron qos-dscp-marking-rule-list qos-web-servers +-----------+--------------------------------------+ | dscp_mark | id | +-----------+--------------------------------------+ | 18 | d7f976ec-7fab-4e60-af70-f59bf88198e6 | +-----------+--------------------------------------+
4. qos-web-servers ポリシーに割り当てられた DSCP ルールの詳細を表示します。
neutron qos-dscp-marking-rule-show d7f976ec-7fab-4e60-af70-f59bf88198e6 qos-web-servers +-----------+--------------------------------------+ | Field | Value | +-----------+--------------------------------------+ | dscp_mark | 18 | | id | d7f976ec-7fab-4e60-af70-f59bf88198e6 | +-----------+--------------------------------------+
5. ルールに割り当てられた DSCP 値を変更します。
neutron qos-dscp-marking-rule-update d7f976ec-7fab-4e60-af70-f59bf88198e6 qos-web-servers --dscp-mark 22 Updated dscp_marking_rule: d7f976ec-7fab-4e60-af70-f59bf88198e6
6. DSCP ルールを削除します。
neutron qos-dscp-marking-rule-delete d7f976ec-7fab-4e60-af70-f59bf88198e6 qos-web-servers Deleted dscp_marking_rule(s): d7f976ec-7fab-4e60-af70-f59bf88198e6
10.4. QoS ポリシーの RBAC
Red Hat OpenStack Platform 11 では、QoS ポリシーのロールベースアクセス制御 (RBAC) が追加され、QoS ポリシーを特定のプロジェクトに適用できるようになりました。
たとえば、優先順位が低いネットワークトラフィックを許可する QoS ポリシーを作成して、特定のプロジェクトにのみ適用することができます。以下のコマンドでは、以前に作成した bw-limiter ポリシーが demo テナントに割り当てられます。
# neutron rbac-create 'bw-limiter' --type qos-policy --target-tenant 80bf5732752a41128e612fe615c886c6 --action access_as_shared

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.