OpenStack网络QoS
QoS被定義為保證某些網絡需求(如帶寬,延遲,抖動和可靠性)以滿足應用提供商與最終用戶之間的服務水平協議(SLA)的能力。
網絡設備(如交換機和路由器)可以標記流量,以便以更高的優先級處理流量,以滿足SLA下約定的QoS條件。在其他情況下,諸如IP語音(VoIP)和視頻流之類的某些網絡流量需要以最小的帶寬約束來傳送。在沒有網絡QoS管理的系統上,所有流量將以“盡力而為”的方式傳輸,使得不可能保證向客戶的服務傳遞。
QoS是一種高級服務插件。 QoS在多個級別上與OpenStack Networking代碼的其余部分分離,并且可以通過ml2擴展驅動程序獲得。
支持的QoS規則類型
任何插件或ml2機制驅動程序都可以通過提供一個名為supported_qos_rule_types的插件/驅動程序類屬性來聲明對某些QoS規則類型的支持,該屬性返回與QoS規則類型對應的字符串列表。
在最簡單的情況下,屬性可以通過在類上定義的簡單的Python列表來表示。
對于ml2插件,支持的QoS規則類型的列表被定義為所有活動機制驅動程序支持的規則的公共子集。
配置
要啟用該服務,請按照以下步驟操作:
1.在網絡節點上:
將QoS服務添加到/etc/neutron/neutron.conf中的service_plugins設置。 例如:
2.可選的,在/etc/neutron/neutron.conf中的[qos]部分中設置所需的notification_drivers(默認為message_queue)。
3.在/etc/neutron/plugins/ml2/ml2_conf.ini中,在[ml2]部分的extension_drivers中添加qos。 例如:
如果正在使用Open vSwitch代理,請在/etc/neutron/plugins/ml2/openvswitch_agent.ini的[agent]部分中將擴展設置為qos。 例如:
[agent] extensions = qos在計算節點上:
1.在/etc/neutron/plugins/ml2/openvswitch_agent.ini中,將qos添加到[agent]部分中的擴展設置。 例如:
受信任的項目policy.json配置
如果項目被信任在您的云中管理自己的QoS策略,可以修改neutron的文件policy.json以允許這樣做。
修改/etc/neutron/policy.json策略條目,如下所示:
啟用帶寬限制規則:
"get_policy_bandwidth_limit_rule": "rule:regular_user", "create_policy_bandwidth_limit_rule": "rule:admin_only", "delete_policy_bandwidth_limit_rule": "rule:admin_only", "update_policy_bandwidth_limit_rule": "rule:admin_only", "get_rule_type": "rule:regular_user",啟用DSCP標記規則:
"get_policy_dscp_marking_rule": "rule:regular_user", "create_dscp_marking_rule": "rule:admin_only", "delete_dscp_marking_rule": "rule:admin_only", "update_dscp_marking_rule": "rule:admin_only", "get_rule_type": "rule:regular_user",用戶工作流
QoS策略僅由具有默認policy.json的管理員創建。 因此,您應該讓云運營商代表云項目設置它們。
如果項目受信任以創建自己的策略,請檢查受信任項目policy.json配置部分。
首先,創建QoS策略及其帶寬限制規則:
第二,將創建的策略與現有中子端口關聯。 為此,用戶提取要與已創建的策略關聯的端口ID。 在下一個示例中,我們將為具有IP地址10.0.0.3的VM分配bw-limiter策略
$ neutron port-list+--------------------------------------+----------------------------------+ | id | fixed_ips | +--------------------------------------+----------------------------------+ | 0271d1d9-1b16-4410-bd74-82cdf6dcb5b3 | { ... , "ip_address": "10.0.0.1"}| | 88101e57-76fa-4d12-b0e0-4fc7634b874a | { ... , "ip_address": "10.0.0.3"}| | e04aab6a-5c6c-4bd9-a600-33333551a668 | { ... , "ip_address": "10.0.0.2"}| +--------------------------------------+----------------------------------+$ neutron port-update 88101e57-76fa-4d12-b0e0-4fc7634b874a --qos-policy bw-limiter Updated port: 88101e57-76fa-4d12-b0e0-4fc7634b874a為了將端口從QoS策略中分離,只需再次更新端口配置。
$ neutron port-update 88101e57-76fa-4d12-b0e0-4fc7634b874a --no-qos-policy Updated port: 88101e57-76fa-4d12-b0e0-4fc7634b874a端口可以通過附加的策略創建。
$ neutron port-create private --qos-policy-id bw-limiterCreated a new port: +-----------------------+--------------------------------------------------+ | Field | Value | +-----------------------+--------------------------------------------------+ | admin_state_up | True | | allowed_address_pairs | | | binding:vnic_type | normal | | device_id | | | device_owner | | | dns_assignment | {"hostname": "host-10-0-0-4", ... } | | dns_name | | | fixed_ips | {"subnet_id": | | | "fabaf9b6-7a84-43b6-9d23-543591b531b8", | | | "ip_address": "10.0.0.4"} | | id | c3cb8faa-db36-429d-bd25-6003fafe63c5 | | mac_address | fa:16:3e:02:65:15 | | name | | | network_id | 4920548d-1a6c-4d67-8de4-06501211587c | | port_security_enabled | True | | qos_policy_id | 0ee1c673-5671-40ca-b55f-4cd4bbd999c7 | | security_groups | b9cecbc5-a136-4032-b196-fb3eb091fff2 | | status | DOWN | | tenant_id | 85b859134de2428d94f6ee910dc545d8 | +-----------------------+--------------------------------------------------+您可以將網絡連接到QoS策略。 這意味著任何連接到網絡的計算端口將默認使用網絡策略,除非端口具有特定的策略。 網絡擁有的端口,如DHCP和路由器端口從網絡策略應用程序中排除。
為了將QoS策略附加到網絡,更新現有網絡或初始創建附加到策略的網絡。
配置正確的突發值非常重要。 如果突發值設置得太低,即使使用適當的帶寬限制設置,帶寬使用也會受到限制。 此問題在各種文檔源中討論,例如在Juniper的文檔中。 TCP流量的突發值可以設置為所需帶寬限制值的80%。 例如,如果帶寬限制設置為1000kbps,則足夠的突發值將為800kbit。 如果配置的突發值太低,實現的帶寬限制將低于預期。 如果配置的突發值太高,則可能限制太少的分組,并且實現的帶寬限制將高于預期。
管理員強制
管理員能夠在項目端口或網絡上實施策略。 只要策略不共享,項目就無法分離任何連接到網絡或端口的策略。
如果策略是共享的,則項目能夠將其從其自己的端口和網絡附加或分離。
規則修改
您可以在運行時修改規則。 規則修改將傳播到任何連接的端口。
$ neutron qos-bandwidth-limit-rule-update 92ceb52f-170f-49d0-9528-976e2fee2d6f bw-limiter --max-kbps 2000 --max-burst-kbps 200 Updated bandwidth_limit_rule: 92ceb52f-170f-49d0-9528-976e2fee2d6f$ neutron qos-bandwidth-limit-rule-show 92ceb52f-170f-49d0-9528-976e2fee2d6f bw-limiter+----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | id | 92ceb52f-170f-49d0-9528-976e2fee2d6f | | max_burst_kbps | 200 | | max_kbps | 2000 | +----------------+--------------------------------------+與帶寬限制一樣,創建DSCP標記規則的策略:
$ neutron qos-policy-create dscp-markingCreated a new policy: +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | description | | | id | 8569fb4d-3d63-483e-b49a-9f9290d794f4 | | name | dscp-marking | | rules | | | shared | False | | tenant_id | 85b859134de2428d94f6ee910dc545d8 | +-------------+--------------------------------------+您可以使用neutron客戶端創建,更新,列出,刪除和顯示DSCP標記:
$ neutron qos-dscp-marking-rule-create dscp-marking --dscp-mark 26Created a new dscp marking rule +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | id | 115e4f70-8034-4176-8fe9-2c47f8878a7d | | dscp_mark | 26 | +----------------+--------------------------------------+ $ neutron qos-dscp-marking-rule-update 115e4f70-8034-4176-8fe9-2c47f8878a7d dscp-marking --dscp-mark 22 Updated dscp_rule: 115e4f70-8034-4176-8fe9-2c47f8878a7d$ neutron qos-dscp-marking-rule-show 115e4f70-8034-4176-8fe9-2c47f8878a7d dscp-marking+----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | id | 115e4f70-8034-4176-8fe9-2c47f8878a7d | | dscp_mark | 22 | +----------------+--------------------------------------+$ neutron qos-dscp-marking-rule-delete 115e4f70-8034-4176-8fe9-2c47f8878a7d dscp-markingDeleted dscp_rule: 115e4f70-8034-4176-8fe9-2c47f8878a7d$ neutron qos-dscp-marking-rule-list dscp-marking+--------------------------------------+----------------------------------+ | id | dscp_mark | +--------------------------------------+----------------------------------+ | 115e4f70-8034-4176-8fe9-2c47f8878a7d | 22 | +--------------------------------------+----------------------------------+總結
以上是生活随笔為你收集整理的OpenStack网络QoS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么叫耦合
- 下一篇: 邮件客户端里的网络设置