Layanan Nova mengontrol tempat instance dimulai dalam lingkungan cloud OpenStack. Artinya, nova-scheduler memutuskan hypervisor mana yang akan menjalankan instance tertentu dan perilaku ini dikontrol menggunakan dua filter (kebijakan grup Affinity/anti-afinitas) – yaitu, ServerGroupAntiAffinityFilter dan ServerGroupAffinityFilter . ServerGroupAffinityFilter memungkinkan pengguna menjalankan grup instance pada hypervisor/host yang sama dan ServerGroupAntiAffinityFilter akan memastikan semua instance yang diminta dimulai pada hypevisor/host yang berbeda.
Filter ini diaktifkan secara default di /etc/nova/nova.conf seperti yang ditunjukkan di bawah ini:
scheduler_driver_task_period =60scheduler_driver =nova.scheduler.filter_scheduler.FilterSchedulerscheduler_available_filters =nova.scheduler.filters.all_filtersscheduler_default_filters =RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter
Jika Anda tidak menemukan filter tersebut, edit nova.conf , tambahkan baris di atas dan mulai ulang nova-scheduler dan nova-conductor layanan.
# /etc/init.d/nova-scheduler restart
# /etc/init.d/nova-conductor restart
Catatan :Memulai ulang nova-scheduler service saja sudah cukup pada beberapa versi OpenStack, tetapi di OpenStack Mitaka, saya perlu me-restart nova-conductor layanan juga.
Untuk bekerja dengan filter ini, pengguna perlu membuat grup server, menetapkan kebijakan ke grup, dan menambahkan instance ke grup itu.
Catatan :Perintah di bawah ini dijalankan pada pengaturan OpenStack Mitaka.
Bagaimana cara menggunakan kebijakan ServerGroupAffinityFilter?
Langkah 1 :Buat grup server
# nova server-group-create afinitas
# nova server-group-create afinitasHost afinitas+-------------------------------------- +--------------+--------------- --------- +----------------------------------+------------- -+---------+--------- -+| ID | Nama | ID Proyek | ID Pengguna | Kebijakan | Anggota | Metadata |+---------------------------------------+-------- ------+------------------------- ---------+-------- --------------------------+---------------+------- --+--------- -+| 565948b0-076e-4de0-97dd-11d58862b64e | afinitasHost | 9563fa5bb6dd479aa9f18048 cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'afinitas'] | [] | {} |+--------------------------------------+------- -------+------------------------- ---------+------- ---------------------------+---------------+------ ---+--------- -+
Pastikan grup dibuat menggunakan perintah di bawah ini:
# nova server-group-get 565948b0-076e-4de0-97dd-11d58862b64e+------------------------------- -------+--------------+--------------------------- -------+----------------------------------+------- --------+---------+----------+| ID | Nama | ID Proyek | ID Pengguna | Kebijakan | Anggota | Metadata |+---------------------------------------+-------- ------+----------------------------------+-------- --------------------------+---------------+------- --+----------+| 565948b0-076e-4de0-97dd-11d58862b64e | afinitasHost | 9563fa5bb6dd479aa9f18048cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'afinitas'] | [] | {} |+--------------------------------------+------- -------+----------------------------------+------- ---------------------------+---------------+------ ---+----------+
Langkah 2 :Luncurkan instance dalam grup yang dibuat pada langkah 1
# nova boot --flavor 1 --image cirros --security-groups default --nic net-id=9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group=565948b0-076e-4de0-97dd-11d58862b64e --max 4 afinitasVM
Cari –grup petunjuk opsi dengan Id dari grup yang dibuat pada langkah 1. Selain itu, perintah di atas meminta 4 VM menggunakan –max pilihan.
Langkah 3 :Periksa apakah semua VM yang diminta diluncurkan pada host yang sama.
untuk saya di `seq 1 4`> melakukan> OpenStack Server acara affinityVM - $ {i} c hostid f shell> dilakukan hostid ="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid ="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid ="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid =" 1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d "
Perintah di atas mengatakan semua VM dimulai pada host yang sama.
Sekarang mari kita bekerja dengan kebijakan Anti-Afinitas Grup .
Cara menggunakan ServerGroupAntiAffinityFilter kebijakan?
Menggunakan ServerGroupAntiAffinityFilter, pengguna dapat memastikan bahwa VM dimulai pada hypervisor yang berbeda. Misalnya, pertimbangkan situasi di mana Anda tidak ingin semua layanan Anda dihosting di mesin yang sama, karena kegagalan mesin host akan memengaruhi semua layanan Anda. Menggunakan ServerGroupAntiAffinityFilter memastikan bahwa semua layanan Anda terganggu di host fisik yang berbeda.
Langkah 1 :Buat grup dengan kebijakan Antiafinitas
# nova server-group-create anti-affinityHost anti-affinity +--------------------------------- -----+-------------------+------------------------ -------+-----------------------------------+---- ----------------+---------+----------+ | ID | Nama | ID Proyek | ID Pengguna | Kebijakan | Anggota | Metadata | +---------------------------------------+---------- ---------+----------------------------------+----- -----------------------------+-------------------- +---------+----------+ | a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 | anti-afinitasHost | 9563fa5bb6dd479aa9f18048cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'anti-afinitas'] | [] | {} | +---------------------------------------+---------- ---------+----------------------------------+----- -----------------------------+-------------------- +---------+----------+
Langkah 2 :Luncurkan instance dalam grup anti-afinitas.
# nova boot --flavor 1 --image cirros --security-groups default --nic net-id=9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group=a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 --max 3 anti-afinitasVM
Cari –-grup petunjuk opsi dengan Id grup yang dibuat pada langkah 1. Juga, –maks meminta 3 VM dan semuanya diharapkan akan diluncurkan pada host yang berbeda.
Langkah 3 :Pastikan VM dimulai pada host/hypervisor yang berbeda.
# untuk i di `seq 1 3`; lakukan openstack server show anti-affinityVM-${i} -c hostId -f shell; selesai hostid="09fac9c46a3dc5f6219e2af3e3a7da6dad7de843cfba7d8d4feb9054" hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid="4e488190b3d7dfdf8605737716"Perintah di atas mengonfirmasi bahwa ketiga VM dimulai pada host yang berbeda.
Jika tidak ada sumber daya yang tersedia untuk memenuhi anti-afinitas kebijakan, lalu nova boot perintah akan gagal dengan pesan kesalahan di bawah ini:
# nova boot --flavor 1 --image cirros --security-groups default --nic net-id=9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group=a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 anti-afinitasVMContoh keluaran:
"Tidak ditemukan host yang valid. Jumlah host yang tersedia tidak cukup."Karena penyiapan saya hanya memiliki tiga host komputasi, perintah di atas tidak dapat menemukan host yang valid untuk memulai VM baru.
StartSSL Distrusted (Dihentikan), Migrasi ke LetsEncrypt! Ctrl+S membekukan Vi Editor &terminal Unix/PuTTY? Inilah cara Anda dapat melanjutkannya!Linux