OpenStack网络QoS
QoS被定義為保證某些網(wǎng)絡(luò)需求(如帶寬,延遲,抖動和可靠性)以滿足應(yīng)用提供商與最終用戶之間的服務(wù)水平協(xié)議(SLA)的能力。
網(wǎng)絡(luò)設(shè)備(如交換機和路由器)可以標記流量,以便以更高的優(yōu)先級處理流量,以滿足SLA下約定的QoS條件。在其他情況下,諸如IP語音(VoIP)和視頻流之類的某些網(wǎng)絡(luò)流量需要以最小的帶寬約束來傳送。在沒有網(wǎng)絡(luò)QoS管理的系統(tǒng)上,所有流量將以“盡力而為”的方式傳輸,使得不可能保證向客戶的服務(wù)傳遞。
QoS是一種高級服務(wù)插件。 QoS在多個級別上與OpenStack Networking代碼的其余部分分離,并且可以通過ml2擴展驅(qū)動程序獲得。
支持的QoS規(guī)則類型
任何插件或ml2機制驅(qū)動程序都可以通過提供一個名為supported_qos_rule_types的插件/驅(qū)動程序類屬性來聲明對某些QoS規(guī)則類型的支持,該屬性返回與QoS規(guī)則類型對應(yīng)的字符串列表。
在最簡單的情況下,屬性可以通過在類上定義的簡單的Python列表來表示。
對于ml2插件,支持的QoS規(guī)則類型的列表被定義為所有活動機制驅(qū)動程序支持的規(guī)則的公共子集。
配置
要啟用該服務(wù),請按照以下步驟操作:
1.在網(wǎng)絡(luò)節(jié)點上:
將QoS服務(wù)添加到/etc/neutron/neutron.conf中的service_plugins設(shè)置。 例如:
2.可選的,在/etc/neutron/neutron.conf中的[qos]部分中設(shè)置所需的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]部分中將擴展設(shè)置為qos。 例如:
[agent] extensions = qos在計算節(jié)點上:
1.在/etc/neutron/plugins/ml2/openvswitch_agent.ini中,將qos添加到[agent]部分中的擴展設(shè)置。 例如:
受信任的項目policy.json配置
如果項目被信任在您的云中管理自己的QoS策略,可以修改neutron的文件policy.json以允許這樣做。
修改/etc/neutron/policy.json策略條目,如下所示:
啟用帶寬限制規(guī)則:
"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標記規(guī)則:
"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的管理員創(chuàng)建。 因此,您應(yīng)該讓云運營商代表云項目設(shè)置它們。
如果項目受信任以創(chuàng)建自己的策略,請檢查受信任項目policy.json配置部分。
首先,創(chuàng)建QoS策略及其帶寬限制規(guī)則:
第二,將創(chuàng)建的策略與現(xiàn)有中子端口關(guān)聯(lián)。 為此,用戶提取要與已創(chuàng)建的策略關(guān)聯(lián)的端口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端口可以通過附加的策略創(chuàng)建。
$ 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 | +-----------------------+--------------------------------------------------+您可以將網(wǎng)絡(luò)連接到QoS策略。 這意味著任何連接到網(wǎng)絡(luò)的計算端口將默認使用網(wǎng)絡(luò)策略,除非端口具有特定的策略。 網(wǎng)絡(luò)擁有的端口,如DHCP和路由器端口從網(wǎng)絡(luò)策略應(yīng)用程序中排除。
為了將QoS策略附加到網(wǎng)絡(luò),更新現(xiàn)有網(wǎng)絡(luò)或初始創(chuàng)建附加到策略的網(wǎng)絡(luò)。
配置正確的突發(fā)值非常重要。 如果突發(fā)值設(shè)置得太低,即使使用適當?shù)膸捪拗圃O(shè)置,帶寬使用也會受到限制。 此問題在各種文檔源中討論,例如在Juniper的文檔中。 TCP流量的突發(fā)值可以設(shè)置為所需帶寬限制值的80%。 例如,如果帶寬限制設(shè)置為1000kbps,則足夠的突發(fā)值將為800kbit。 如果配置的突發(fā)值太低,實現(xiàn)的帶寬限制將低于預(yù)期。 如果配置的突發(fā)值太高,則可能限制太少的分組,并且實現(xiàn)的帶寬限制將高于預(yù)期。
管理員強制
管理員能夠在項目端口或網(wǎng)絡(luò)上實施策略。 只要策略不共享,項目就無法分離任何連接到網(wǎng)絡(luò)或端口的策略。
如果策略是共享的,則項目能夠?qū)⑵鋸钠渥约旱亩丝诤途W(wǎng)絡(luò)附加或分離。
規(guī)則修改
您可以在運行時修改規(guī)則。 規(guī)則修改將傳播到任何連接的端口。
$ 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 | +----------------+--------------------------------------+與帶寬限制一樣,創(chuàng)建DSCP標記規(guī)則的策略:
$ 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客戶端創(chuàng)建,更新,列出,刪除和顯示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 | +--------------------------------------+----------------------------------+總結(jié)
以上是生活随笔為你收集整理的OpenStack网络QoS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么叫耦合
- 下一篇: 邮件客户端里的网络设置