[ English | English (United Kingdom) | Deutsch | Indonesia | русский | 한국어 (대한민국) | français ]
Mengelola cloud Anda¶
Bab ini dimaksudkan untuk mendokumentasikan tugas operasi OpenStack yang merupakan bagian integral dari dukungan operasi dalam penyebaran OpenStack-Ansible.
Ini menjelaskan operasi seperti mengelola image, instance, atau jaringan.
[ English | English (United Kingdom) | Deutsch | Indonesia | русский | 한국어 (대한민국) | français ]
Mengelola images¶
Image mewakili sistem operasi, perangkat lunak, dan pengaturan apa pun yang diperlukan oleh instance, tergantung pada sasaran proyek. Buat image terlebih dahulu sebelum membuat instance apa pun.
Menambahkan images dapat dilakukan melalui Dasbor, atau command line. Pilihan lain yang tersedia adalah alat python-openstackclient
, yang dapat diinstal pada node controller, atau di workstation.
Menambahkan image menggunakan Dasbor¶
Untuk menambahkan image menggunakan Dasbor, siapkan file biner image, yang harus dapat diakses melalui HTTP menggunakan URL yang valid dan langsung. Image dapat dikompresi menggunakan .zip
atau .tar.gz
.
Catatan
Mengunggah image menggunakan Dasbor akan tersedia untuk pengguna dengan hak istimewa administrator. Operator dapat mengatur hak akses pengguna.
Log in ke Dasbor.
Pilih tab Admin di panel navigasi dan klik images.
Klik tombol Create Image. Kotak dialog Create Image akan muncul.
Masukkan detail image, termasuk Image Location, yang mana lokasi URL image diperlukan.
Klik tombol Create Image. Image yang baru dibuat mungkin memerlukan beberapa waktu sebelum benar-benar diunggah karena image tiba dalam antrean image.
Menambahkan image menggunakan command line¶
Kontainer utilitas menyediakan lingkungan CLI untuk konfigurasi dan manajemen tambahan.
Akses kontainer utilitas:
$ lxc-attach -n `lxc-ls -1 | grep utility | head -n 1`
Gunakan klien openstack dalam kontainer utilitas untuk mengelola semua glance images. See the openstack client official documentation on managing images.
[ English | English (United Kingdom) | Deutsch | Indonesia | русский | 한국어 (대한민국) | français ]
Mengelola instance¶
Bab ini menjelaskan cara membuat dan mengakses instance.
Membuat instance menggunakan Dasbor¶
Menggunakan image, buat instance baru melalui opsi Dasbor.
Log in ke Dasbor, dan pilih proyek Compute dari daftar tarik-turun.
Klik opsi Images.
Cari image yang akan bertindak sebagai basis instance dari tabel Images.
Klik Launch dari kolom Actions.
Periksa dialog Launch Instances, dan temukan tab details. Masukkan nilai yang sesuai untuk instance.
Dalam dialog Launch Instance, klik tab Access & Security. Pilih keypair. Setel grup keamanan sebagai "default".
Klik Networking tab. Tab ini tidak akan tersedia jika jaringan OpenStack (neutron) belum diaktifkan. Jika jaringan diaktifkan, pilih jaringan tempat instance akan berada.
Klik Volume Options tab. Tab ini hanya akan tersedia jika volume Block Storage ada untuk instance. Pilih Don't boot from a volume untuk saat ini.
Untuk informasi lebih lanjut tentang melampirkan volume Block Storage ke instance untuk penyimpanan persisten, lihat bagian Managing volumes for persistent storage di bawah ini.
Tambahkan skrip kustomisasi, jika diperlukan, dengan mengklik tab Post-Creation. Ini berjalan setelah instance telah dibuat. Beberapa instance mendukung data pengguna, seperti kata sandi root, atau pengguna admin. Masukkan informasi khusus untuk instance di sini jika diperlukan.
Klik Advanced Options. Tentukan apakah instance menggunakan drive konfigurasi untuk menyimpan metadata dengan memilih jenis partisi disk.
Klik Launch untuk membuat instance. Instance akan dimulai pada node komputasi. Halaman Instance akan terbuka dan mulai membuat instance baru. Halaman Instance yang terbuka akan mencantumkan nama, ukuran, status, dan tugas instance. Status daya dan alamat IP publik dan pribadi juga tercantum di sini.
Prosesnya akan memakan waktu kurang dari satu menit untuk selesai. Pembuatan instance selesai ketika status terdaftar sebagai aktif. Segarkan halaman untuk melihat instance aktif baru.
¶ Field Name
Required
Details
Availability Zone
Optional
Zona ketersediaan tempat layanan image membuat instance. Jika tidak ada zona ketersediaan yang ditentukan, tidak akan ada instance yang ditemukan. Penyedia awan menetapkan zona ketersediaan ke nilai tertentu.
Instance Name
Required
Nama instance baru, yang menjadi nama host awal server. Jika nama server diubah dalam API atau langsung diubah, nama Dasbor tetap tidak berubah
Image
Required
Jenis format kontainer, salah satunya
ami
,ari
,aki
,bare
, atauovf
Flavor
Required
Konfigurasi vCPU, Memory, dan Disk. Perhatikan bahwa flavor yang lebih besar dapat membutuhkan waktu lama untuk dibuat. Jika membuat instance untuk pertama kalinya dan menginginkan sesuatu yang kecil untuk diuji, pilih
m1.small
.Instance Count
Required
Jika membuat beberapa instance dengan konfigurasi ini, masukkan bilangan integer ke nomor yang diizinkan oleh kuota, yaitu
10
secara default.Instance Boot Source
Required
Tentukan apakah instance akan didasarkan pada image atau snapshot. Jika ini kali pertama membuat instance, belum akan ada snapshot yang tersedia.
Image Name
Required
Instance akan boot dari image yang dipilih. Opsi ini akan terisi sebelumnya dengan instance yang dipilih dari tabel. Namun, pilih
Boot from Snapshot
di Instance Boot Source, dan itu akan menjadi default untukSnapshot
sebagai gantinya.Security Groups
Optional
Opsi ini memberikan grup keamanan ke instance. Grup keamanan default diaktifkan ketika tidak ada grup khusus yang ditentukan di sini. Grup Keamanan, mirip dengan firewall cloud, menentukan lalu lintas jaringan masuk yang diteruskan ke instance.
Keypair
Optional
Tentukan pasangan kunci dengan opsi ini. Jika image menggunakan static key set (tidak disarankan), pasangan kunci tidak diperlukan.
Selected Networks
Optional
Untuk menambahkan jaringan ke suatu instance, klik + dalam Networks field.
Customisation Script
Optional
Tentukan skrip penyesuaian. Skrip ini berjalan setelah instance diluncurkan dan menjadi aktif.
Membuat instance menggunakan command line¶
Pada command line, pembuatan instance dikelola dengan perintah openstack server create. Sebelum meluncurkan sebuah instance, tentukan image dan flavor apa yang tersedia untuk membuat instance baru menggunakan perintah openstack image list dan openstack flavor list.
Masuk ke kontainer utilitas apa pun.
Berikan perintah openstack server create dengan nama untuk instance, bersama dengan nama image dan flavor untuk digunakan:
$ openstack server create --image precise-image --flavor 2 --key-name example-key example-instance +-------------------------------------+--------------------------------------+ | Property | Value | +-------------------------------------+--------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | instance-0000000d | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | accessIPv4 | | | accessIPv6 | | | adminPass | ATSEfRY9fZPx | | config_drive | | | created | 2012-08-02T15:43:46Z | | flavor | m1.small | | hostId | | | id | 5bf46a3b-084c-4ce1-b06f-e460e875075b | | image | precise-image | | key_name | example-key | | metadata | {} | | name | example-instance | | progress | 0 | | status | BUILD | | tenant_id | b4769145977045e2a9279c842b09be6a | | updated | 2012-08-02T15:43:46Z | | user_id | 5f2f2c28bdc844f9845251290b524e80 | +-------------------------------------+--------------------------------------+
Untuk memeriksa apakah instance telah berhasil dibuat, berikan perintah openstack server list:
$ openstack server list +------------------+------------------+--------+-------------------+---------------+ | ID | Name | Status | Networks | Image Name | +------------------+------------------+--------+-------------------+---------------+ | [ID truncated] | example-instance | ACTIVE | public=192.0.2.0 | precise-image | +------------------+------------------+--------+-------------------+---------------+
Mengelola sebuah instance¶
Masuk ke Dasbor. Pilih salah satu proyek, dan klik Instances.
Pilih sebuah instance dari daftar instance yang tersedia.
Periksa kolom Actions, dan klik opsi More . Pilih status instance.
Kolom Actions berisi opsi berikut:
Ubah ukuran atau rekondisi setiap instance
Lihat log konsol instance
Edit instance
Ubah grup keamanan
Jeda, lanjutkan, atau tangguhkan instance
Pengaturan ulang perangkat lunak atau keras instance
Catatan
Hentikan instance di bawah kolom Actions.
Managing volumes for persistent storage¶
Volume melampirkan ke instance, memungkinkan penyimpanan persisten. Penyimpanan volume menyediakan sumber memori untuk instance. Administrator dapat melampirkan volume ke instance yang sedang berjalan, atau memindahkan volume dari satu instance ke instance lainnya.
Instance Nova migrasi langsung¶
Nova mampu melakukan migrasi langsung dari satu host ke host yang berbeda untuk mendukung berbagai tugas operasional termasuk:
Pemeliharaan Host
Manajemen kapasitas host
Mengubah ukuran dan memindahkan instance ke perangkat keras yang lebih baik
Implikasi drive konfigurasi Nova¶
Bergantung pada versi OpenStack-Ansible yang digunakan, Nova dapat dikonfigurasi untuk memaksa attachment drive konfigurasi ke instance. Dalam hal ini, image CD-ROM ISO9660 akan tersedia untuk instance melalui titik mount /mnt
. Ini dapat digunakan oleh alat, seperti cloud-init, untuk mendapatkan akses ke metadata instance. Ini adalah cara alternatif untuk mengakses Metadata bergaya Nova EC2.
Untuk memungkinkan migrasi langsung instance Nova, ini memaksa penyediaan drive config (CD-ROM) perlu dimatikan, atau format dari drive konfigurasi perlu diubah ke format disk seperti vfat, format yang baik Linux dan Instance Windows dapat mengakses.
Pekerjaan ini diperlukan untuk semua versi Libvirt sebelum 1.2.17.
Untuk mematikan penyediaan paksa dari drive config, tambahkan penggantinya berikut ke file /etc/openstack_deploy/user_variables.yml
:
nova_force_config_drive: False
Untuk mengubah format drive konfigurasi, ke format gaya hard disk, gunakan konfigurasi berikut di dalam yang sama file /etc/openstack_deploy/user_variables.yml
:
nova_nova_conf_overrides:
DEFAULT:
config_drive_format: vfat
force_config_drive: false
Tunneling versus transportasi langsung¶
Dalam konfigurasi default, Nova menentukan URL transportasi yang benar untuk cara mentransfer data dari satu host ke yang lain. Tergantung pada nova_virt_type
mengganti konfigurasi berikut yang digunakan:
kvm default ke
qemu+tcp://%s/system
qemu default ke
qemu+tcp://%s/system
xen defaults ke
xenmigr://%s/system
Libvirt port TCP untuk mentransfer data untuk bermigrasi.
OpenStack-Ansible mengubah pengaturan default dan menggunakan koneksi SSH terenkripsi untuk mentransfer data instance.
live_migration_uri = "qemu+ssh://nova@%s/system?no_verify=1&keyfile={{ nova_system_home_folder }}/.ssh/id_rsa"
Konfigurasi lain dapat dikonfigurasi di dalam ke /etc/openstack_deploy/user_variables.yml
:
nova_nova_conf_overrides:
libvirt:
live_migration_completion_timeout: 0
live_migration_progress_timeout: 0
live_migration_uri: "qemu+ssh://nova@%s/system?keyfile=/var/lib/nova/.ssh/id_rsa&no_verify=1"
Melaksanakan migrasi¶
Migrasi langsung dapat diakses melalui klien nova.
nova live-migration [--block-migrate] [--force] <uuid> [<host>]
Examplarery live migration pada penyimpanan lokal:
nova live-migration --block-migrate <uuid of the instance> <nova host>
Memantau status¶
Setelah permintaan migrasi langsung diterima, status dapat dipantau dengan klien nova:
nova migration-list
+-----+------------+-----------+----------------+--------------+-----------+-----------+---------------+------------+------------+------------+------------+-----------------+
| Id | Source Node | Dest Node | Source Compute | Dest Compute | Dest Host | Status | Instance UUID | Old Flavor | New Flavor | Created At | Updated At | Type |
+----+-------------+-----------+----------------+--------------+-----------+-----------+---------------+------------+------------+------------+------------+-----------------+
| 6 | - | - | compute01 | compute02 | - | preparing | f95ee17a-d09c | 7 | 7 | date | date | live-migration |
+----+-------------+-----------+----------------+--------------+-----------+-----------+---------------+------------+------------+------------+------------+-----------------+
Untuk memfilter daftar, opsi --host
atau --status
dapat digunakan:
nova migration-list --status error
Dalam kasus di mana migrasi langsung gagal, baik sumber dan tujuan menghitung node perlu diperiksa untuk kesalahan. Biasanya cukup mencari UU UU hanya untuk menemukan kesalahan yang terkait dengan migrasi langsung.
Bentuk lain dari migrasi instance¶
Selain migrasi langsung, Nova menawarkan opsi untuk memigrasikan seluruh host dalam migrasi online (langsung) atau offline (dingin).
Perintah klien nova berikut disediakan:
host-evacuate-live
Live bermigrasi semua instance dari host yang ditentukan ke host lain jika pemanfaatan sumber daya memungkinkan. Cara terbaik adalah menggunakan penyimpanan bersama seperti Ceph atau ZFS untuk evakuasi host.
host-servers-migrate
Perintah ini mirip dengan meng-host evakuasi tetapi memindahkan semua instance dari host yang ditentukan saat mereka shutdown.
resize
Mengubah (peningkatan) flavor instance Nova saat melakukan boot ulang dan juga memigrasikan (cold) instance ke host baru untuk mengakomodasi persyaratan sumber daya baru. Operasi ini dapat mempertimbangkan waktu, tergantung ukuran image disk.
[ English | English (United Kingdom) | Deutsch | Indonesia | русский | 한국어 (대한민국) | français ]
Mengelola jaringan¶
Pertimbangan operasional, seperti kepatuhan, dapat membuatnya perlu untuk mengelola jaringan. Misalnya, menambahkan jaringan penyedia baru ke cloud yang dikelola OpenStack-Ansible. Bagian berikut adalah tugas administratif paling umum yang digariskan untuk menyelesaikan tugas itu.
Untuk informasi lebih umum tentang pemecahan masalah jaringan Anda, lihat Network Troubleshooting chapter dalam Operations Guide.
Untuk informasi lebih mendalam tentang Networking, lihat Networking Guide.
Tambahkan jembatan penyedia (provider bridge) menggunakan antarmuka jaringan baru¶
Tambahkan setiap jaringan penyedia ke cloud Anda untuk diketahui OpenStack-Ansible dan sistem operasi sebelum Anda dapat menjalankan playbook yang diperlukan untuk menyelesaikan konfigurasi.
Konfigurasi OpenStack-Ansible¶
Semua jaringan penyedia perlu ditambahkan ke konfigurasi OpenStack-Ansible.
Edit file /etc/openstack_deploy/openstack_user_config.yml
dan tambahkan blok baru di bawahnya bagian provider_networks
:
Pengaturan container_bridge
menentukan jembatan jaringan (network bridge) fisik yang digunakan untuk menghubungkan pasangan veth dari host fisik ke container. Di dalam container, pengaturan container_interface
menentukan nama di mana jaringan fisik akan tersedia. Pengaturan container_interface
tidak diperlukan saat agen Neutron digunakan pada bare metal. Pastikan kedua pengaturan didefinisikan secara unik di seluruh jaringan penyedia mereka dan antarmuka jaringan dikonfigurasi dengan benar di dalam sistem operasi Anda. group_binds
menentukan ke mana jaringan ini harus dihubungkan (attached), ke container atau host fisik dan pada akhirnya tergantung pada tumpukan jaringan (network stack) yang digunakan. Misalnya, Linuxbridge versus OVS. Konfigurasi range
mendefinisikan ID segmentasi fisik Neutron yang secara otomatis digunakan oleh pengguna akhir (end user) saat membuat jaringan melalui horizon utama dan API Neutron. Mirip dengan true untuk konfigurasi net_name
yang mendefinisikan nama addressable di dalam konfigurasi Neutron. Konfigurasi ini juga harus unik di seluruh jaringan penyedia lainnya.
Untuk informasi lebih lanjut, lihat Configure the deployment dalam OpenStack-Ansible Deployment Guide.
Memperbarui node dengan konfigurasi baru¶
Jalankan playbook yang sesuai tergantung pada bagian group_binds
.
Misalnya, jika Anda memperbarui jaringan yang membutuhkan perubahan di semua node dengan agen bridge linux, dengan asumsi Anda memiliki infra node bernama infra01, infra02, dan infra03, jalankan:
# openstack-ansible containers-deploy.yml --limit localhost,infra01,infra01-host_containers
# openstack-ansible containers-deploy.yml --limit localhost,infra02,infra02-host_containers
# openstack-ansible containers-deploy.yml --limit localhost,infra03,infra03-host_containers
Kemudian perbarui konfigurasi neutron.
# openstack-ansible os-neutron-install.yml --limit localhost,infra01,infra01-host_containers
# openstack-ansible os-neutron-install.yml --limit localhost,infra02,infra02-host_containers
# openstack-ansible os-neutron-install.yml --limit localhost,infra03,infra03-host_containers
Kemudian perbarui node komputasi Anda jika perlu.
Hapus jembatan penyedia (provider bridge) dari OpenStack¶
Mirip dengan menambahkan jaringan penyedia, proses penghapusan menggunakan prosedur yang sama tetapi dalam urutan terbalik. Port Neutron perlu dihapus, sebelum penghapusan konfigurasi OpenStack-Ansible.
Batalkan penetapan semua IP mengambang neutron:
Catatan
Ekspor jaringan Neutron yang akan dihapus sebagai UUID tunggal.
export NETWORK_UUID=<uuid> for p in $( neutron port-list -c id --device_owner compute:nova --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2}' ); do floatid=$( neutron floatingip-list -c id --port_id=$p | awk '/([A-Fa-z0-9]+-){3}/ { print $2 }' ) if [ -n "$floatid" ]; then echo "Disassociating floating IP $floatid from port $p" neutron floatingip-disassociate $floatid fi done
Hapus semua port Neutron dari instance:
export NETWORK_UUID=<uuid> for p in $( neutron port-list -c id -c device_id --device_owner compute:nova --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2}' ); do echo "Removing Neutron compute port $p" neutron port-delete $p done
Hapus port router Neutron dan agen DHCP:
export NETWORK_UUID=<uuid> for line in $( neutron port-list -c id -c device_id --device_owner network:router_interface --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2 "+" $4}' ); do p=$( echo "$line"| cut -d'+' -f1 ); r=$( echo "$line"| cut -d'+' -f2 ) echo "Removing Neutron router port $p from $r" neutron router-interface-delete $r port=$p done for agent in $( neutron agent-list -c id --agent_type='DHCP Agent' --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2}' ); do echo "Remove network $NETWORK_UUID from Neutron DHCP Agent $agent" neutron dhcp-agent-network-remove "${agent}" $NETWORK_UUID done
Hapus jaringan Neutron:
export NETWORK_UUID=<uuid> neutron net-delete $NETWORK_UUID
Hapus jaringan penyedia dari konfigurasi
provider_networks
dari konfigurasi OpenStack-Ansible/etc/openstack_deploy/openstack_user_config.yml
dan jalankan kembali playbook berikut:# openstack-ansible lxc-containers-create.yml --limit infra01:infra01-host_containers # openstack-ansible lxc-containers-create.yml --limit infra02:infra02-host_containers # openstack-ansible lxc-containers-create.yml --limit infra03:infra03-host_containers # openstack-ansible os-neutron-install.yml --tags neutron-config
Nyalakan kembali kontainer agen Jaringan¶
Dalam keadaan tertentu, konfigurasi atau masalah sementara, satu kontainer khusus atau semua kontainer neutron perlu di-restart.
Ini dapat diselesaikan dengan beberapa perintah:
Contoh rebooting kontainer yang masih dapat diakses.
Contoh ini akan mengeluarkan reboot ke kontainer yang bernama dengan
neutron_agents_container_hostname_name
dari dalam:# ansible -m shell neutron_agents_container_hostname_name -a 'reboot'
Contoh reboot satu kontainer pada satu waktu, 60 detik terpisah:
# ansible -m shell neutron_agents_container -a 'sleep 60; reboot' --forks 1
Jika kontainer tidak merespons, dapat dimulai kembali dari host jaringan fisik:
# ansible -m shell network_hosts -a 'for c in $(lxc-ls -1 |grep neutron_agents_container); do lxc-stop -n $c && lxc-start -d -n $c; done' --forks 1