QoS didefinisikan sebagai kemampuan untuk menjamin kebutuhan jaringan
tertentu seperti bandwidth, latency, jitter, dan kehandalan untuk
memenuhi Service Level Agreement (SLA) antara provider aplikasi dan end
user.
Perangkat jaringan seperti switch dan router bisa menandai traffic sehingga ditangani dengan prioritas yang lebih tinggi untuk memenuhi persyaratan QoS yang disetujui di bawah SLA. Dalam kasus lain, traffic jaringan tertentu seperti Voice over IP (VoIP) dan video streaming perlu ditransmisikan dengan keterbatasan bandwidth minimal. Pada sistem tanpa manajemen QoS jaringan, semua traffic akan ditransmisikan dalam cara “best-effort” membuat hal itu mustahil untuk menjamin pelayanan kepada pelanggan.
QoS adalah layanan canggih plug-in. QoS dipisahkan dari sisa kode OpenStack Networking pada beberapa tingkat dan tersedia melalui driver ekstensi ml2.
Rincian tentang model DB, ekstensi API, dan use case berada di luar cakupan panduan ini tetapi dapat ditemukan dalam Neutron QoS specification.
Catatan
Dalam kasus yang paling sederhana, properti dapat diwakili oleh daftar Python sederhana yang didefinisikan di kelas.
Untuk plug-in ml2, daftar tipe aturan QoS yang didukung didefinisikan sebagai subset anuran umum yang didukung oleh semua driver mekanisme aktif.
Catatan
Pada node jaringan:
Catatan
Memodifikasi entri kebijakan /etc/neutron/policy.json sebagai berikut:
Untuk mengaktifkan aturan batas bandwidth:
Untuk mengaktifkan aturan DSCP marking:
Jika tenant dipercaya untuk membuat kebijakan mereka sendiri, periksa tenant dipercaya bagian konfigurasi policy.json.
Pertama, buatlah kebijakan QoS dan aturan batas bandwidth:
Catatan
Catatan
Kedua, mengaitkan kebijakan dibuat dengan port neutron yang ada.
Untuk melakukan ini, user mengekstrak id port yang akan dikaitkan dengan
kebijakan yang sudah dibuat. Pada contoh berikut, kita akan menetapkan
kebijakan bw-limiter ke VM dengan alamat IP 10.0.0.3
Dalam rangka untuk melepaskan port dari kebijakan QoS, hanya update ulang konfigurasi port.
Port dapat dibuat dengan kebijakan yang menyertainya juga.
Anda dapat melekatkan jaringan untuk kebijakan QoS. Artinya ini
adalah bahwa port komputasi terhubung ke jaringan akan menggunakan
kebijakan jaringan secara default kecuali port memiliki kebijakan
tertentu yang melekat padanya. Jaringan port yang dimiliki seperti DHCP
dan router port dikecualikan dari kebijakan aplikasi jaringan.
Dalam rangka untuk melekatkan kebijakan QoS ke jaringan, update jaringan yang ada, atau sejak awal ciptakan jaringan yang melekat pada kebijakan.
Catatan
Jika kebijakan ini bersama, tenant mampu melekatkan atau melepaskan kebijakan tersebut dari port dan jaringan sendiri.
Sama seperti dengan bandwidth yang membatasi, membuat kebijakan untuk aturan DSCP marking:
Anda dapat membuat, memperbarui, mendaftar, menghapus, dan menunjukkan DSCP marking dengan klien neutron:
Perangkat jaringan seperti switch dan router bisa menandai traffic sehingga ditangani dengan prioritas yang lebih tinggi untuk memenuhi persyaratan QoS yang disetujui di bawah SLA. Dalam kasus lain, traffic jaringan tertentu seperti Voice over IP (VoIP) dan video streaming perlu ditransmisikan dengan keterbatasan bandwidth minimal. Pada sistem tanpa manajemen QoS jaringan, semua traffic akan ditransmisikan dalam cara “best-effort” membuat hal itu mustahil untuk menjamin pelayanan kepada pelanggan.
QoS adalah layanan canggih plug-in. QoS dipisahkan dari sisa kode OpenStack Networking pada beberapa tingkat dan tersedia melalui driver ekstensi ml2.
Rincian tentang model DB, ekstensi API, dan use case berada di luar cakupan panduan ini tetapi dapat ditemukan dalam Neutron QoS specification.
Supported QoS rule types¶
Plug-in atau ml2 mechanism driver dapat mengklaim dukungan untuk beberapa tipe aturan QoS dengan memberikan plug-in/driver class property yang disebut supported_qos_rule_types yang mengembalikan daftar string yang sesuai dengan QoS rule types.
Untuk rilis Newton seterusnya DSCP marking akan didukung.
Untuk plug-in ml2, daftar tipe aturan QoS yang didukung didefinisikan sebagai subset anuran umum yang didukung oleh semua driver mekanisme aktif.
Daftar tipe aturan yang dilansir core plug-in tidak
diberlakukan ketika mengakses QoS rule resources. Hal ini terutama
karena kita tidak akan mampu untuk membuat aturan apapun sementara satu
ml2 driver tidak memiliki dukungan untuk QoS (pada saat penulisan, hanya
macvtap adalah driver tersebut).
Konfigurasi¶
Untuk mengaktifkan layanan ini, ikuti langkah-langkah di bawah ini:Pada node jaringan:
- Menambahkan layanan QoS untuk pengaturan service_plugins di `` / etc / neutron / neutron.conf``. Sebagai contoh:
service_plugins = \ neutron.services.l3_router.l3_router_plugin.L3RouterPlugin, neutron.services.metering.metering_plugin.MeteringPlugin, neutron.services.qos.qos_plugin.QoSPlugin
- Opsional, mengatur diperlukan `` notification_drivers`` di `` [QoS] `` bagian dalam `` / etc / neutron / neutron.conf`` (`` message_queue`` is the default).
- Dalam `` / etc / neutron / plugins / ML2 / ml2_conf.ini``, menambahkan `` qos`` untuk extension_drivers di bagian `` [ml2] ``. Sebagai contoh:
[ml2] extension_drivers = port_security, qos
- Jika agen Open vSwitch sedang digunakan, atur `` extensions`` untuk `` qos`` di `` [agen] `` bagian dari /etc/neutron/plugins/ml2/openvswitch_agent.ini. Sebagai contoh:
[agent] extensions = qos
- Dalam `` / etc / neutron / plugins / ML2 / ml2_conf.ini``, menambahkan `` qos`` ke pengaturan `` extensions`` di bagian `` [agen] ``. Sebagai contoh:
[agent] extensions = qos
QoS saat ini bekerja dengan ml2 saja (SR-IOV, Open
vSwitch, dan linuxbridge adalah driver yang diaktifkan untuk QoS dalam
rilis Mitaka).
Konfigurasi terpercaya tenants policy.json¶
Jika tenant dipercaya untuk administrate kebijakan QoS sendiri di cloud Anda, file neutron policy.json ini dapat dimodifikasi untuk memungkinkan ini.Memodifikasi entri kebijakan /etc/neutron/policy.json sebagai berikut:
"get_policy": "rule:regular_user",
"create_policy": "rule:regular_user",
"update_policy": "rule:regular_user",
"delete_policy": "rule:regular_user",
"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",
"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",
Alur kerja user¶
Kebijakan QoS hanya dibuat oleh admin dengan default policy.json. Oleh karena itu, Anda harus memiliki cloud operator mengaturnya atas nama cloud tenant.Jika tenant dipercaya untuk membuat kebijakan mereka sendiri, periksa tenant dipercaya bagian konfigurasi policy.json.
Pertama, buatlah kebijakan QoS dan aturan batas bandwidth:
$ neutron qos-policy-create bw-limiter
Created a new policy:
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | |
| id | 0ee1c673-5671-40ca-b55f-4cd4bbd999c7 |
| name | bw-limiter |
| rules | |
| shared | False |
| tenant_id | 85b859134de2428d94f6ee910dc545d8 |
+-------------+--------------------------------------+
$ neutron qos-bandwidth-limit-rule-create bw-limiter --max-kbps 3000 \
--max-burst-kbps 300
Created a new bandwidth_limit_rule:
+----------------+--------------------------------------+
| Field | Value |
+----------------+--------------------------------------+
| id | 92ceb52f-170f-49d0-9528-976e2fee2d6f |
| max_burst_kbps | 300 |
| max_kbps | 3000 |
+----------------+--------------------------------------+
Burst value diberikan dalam kilobit, bukan di kilobit
per detik sebagai nama parameter mungkin menyarankan. Ini adalah jumlah
data yang dapat dikirim sebelum batas bandwidth berlaku.
Pelaksanaan QoS memerlukan burst value untuk memastikan
perilaku yang tepat dari aturan batas bandwidth dalam Open vSwitch dan
agen Linux bridge. Jika Anda tidak memberikan nilai, standarnya ke 80%
dari batas bandwidth yang bekerja untuk typical TCP traffic.
$ 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
$ 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-limiter
Created 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 |
+-----------------------+--------------------------------------------------+
Dalam rangka untuk melekatkan kebijakan QoS ke jaringan, update jaringan yang ada, atau sejak awal ciptakan jaringan yang melekat pada kebijakan.
$ neutron net-update private --qos-policy bw-limiter
Updated network: private
Konfigurasi burst value tepat sangat penting. Jika burst
value diatur terlalu rendah, penggunaan bandwidth akan mencekik begitu
juga dengan pengaturan batas bandwidth yang tepat. Masalah ini dibahas
dalam berbagai sumber dokumentasi, misalnya di Juniper’s documentation.
Burst value untuk traffic TCP dapat ditetapkan sebagai 80% dari nilai
yang diinginkan batas bandwidth. Sebagai contoh, jika batas bandwidth
diatur ke 1000kbps maka nilai yang cukup meledak akan 800kbit. Jika
burst value dikonfigurasi terlalu rendah, batas bandwidth dicapai akan
lebih rendah dari yang diharapkan. Jika burst value dikonfigurasi
terlalu tinggi, terlalu sedikit paket bisa dibatasi dan batas bandwidth
mencapai akan lebih tinggi dari yang diharapkan.
Penegakan administrasi¶
Administrator dapat menegakkan kebijakan pada port tenant atau jaringan. Selama kebijakan tersebut tidak dibagi, tenant tidak dapat melepaskan kebijakan apa saja yang melekat ke jaringan atau port.Jika kebijakan ini bersama, tenant mampu melekatkan atau melepaskan kebijakan tersebut dari port dan jaringan sendiri.
Modifikasi aturan¶
Anda dapat memodifikasi aturan pada saat runtime. Modifikasi aturan akan disebarkan ke port yang terpasang.$ 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 |
+----------------+--------------------------------------+
$ neutron qos-policy-create dscp-marking
Created a new policy:
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | |
| id | 8569fb4d-3d63-483e-b49a-9f9290d794f4 |
| name | dscp-marking |
| rules | |
| shared | False |
| tenant_id | 85b859134de2428d94f6ee910dc545d8 |
+-------------+--------------------------------------+
$ neutron qos-dscp-marking-rule-create dscp-marking --dscp-mark 26
Created 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-marking
Deleted dscp_rule: 115e4f70-8034-4176-8fe9-2c47f8878a7d
$ neutron qos-dscp-marking-rule-list
+--------------------------------------+----------------------------------+
| id | dscp_mark |
+--------------------------------------+----------------------------------+
| 115e4f70-8034-4176-8fe9-2c47f8878a7d | 22 |
+--------------------------------------+----------------------------------+
Sumber : https://docs.openstack.org/mitaka/id/networking-guide/config-qos.html
Tidak ada komentar:
Posting Komentar