Opennebula. Catatan pendek





Halo. Artikel ini ditulis untuk mereka yang masih terburu-buru dalam memilih platform virtualisasi dan setelah membaca artikel dari seri "Kami menginstal proxmox dan semuanya baik-baik saja secara umum, waktu aktif 6 tahun bukanlah celah tunggal." Tetapi setelah menginstal satu atau beberapa solusi kotak, muncul pertanyaan, bagaimana saya bisa memperbaikinya di sini, sehingga pemantauan lebih dapat dipahami dan di sini, untuk mengontrol cadangan…. Dan kemudian saatnya tiba dan Anda memahami bahwa Anda menginginkan sesuatu yang lebih fungsional, baik, atau Anda ingin semuanya menjadi jelas di dalam sistem Anda, dan bukan kotak hitam ini, atau Anda ingin menggunakan sesuatu yang lebih dari sekadar hypervisor dan sekumpulan mesin virtual. Pada artikel ini, akan ada sedikit pemikiran dan latihan berdasarkan platform Opennebula - saya memilihnya. tidak menuntut sumber daya dan arsitekturnya tidak terlalu rumit.



Jadi, seperti yang bisa kita lihat, banyak penyedia cloud yang bekerja pada kvm dan membuat koneksi eksternal untuk mengontrol mesin. Jelas bahwa host besar menulis koneksinya untuk infrastruktur cloud, YANDEX yang sama misalnya. Seseorang menggunakan openstack dan membuat pengikatan atas dasar ini - SELECTEL, MAIL.RU. Tetapi jika Anda memiliki perangkat keras Anda sendiri dan sedikit staf spesialis, maka Anda biasanya memilih sesuatu dari yang sudah jadi - VMWARE, HYPER-V, ada lisensi gratis dan berbayar, tetapi sekarang ini bukan tentang itu. Mari kita bicara tentang penggemar - mereka adalah mereka yang tidak takut untuk menyarankan dan mencoba sesuatu yang baru, meskipun perusahaan telah menjelaskan dengan jelas, β€œSiapa yang akan menyajikannya setelah Anda?” β€œDan kami akan meluncurkannya ke produksi nanti? Mengerikan." Tapi bagaimanapun, Anda dapat menerapkan solusi ini terlebih dahulu di bangku tes, dan jika semua orang menyukainya,maka pertanyaan tentang pengembangan lebih lanjut dan penggunaan di lingkungan yang lebih serius dapat diangkat.



Juga di sini adalah tautan ke laporan www.youtube.com/watch?v=47Mht_uoX3A dari peserta aktif dalam pengembangan platform ini.



Mungkin dalam artikel ini akan ada sesuatu yang berlebihan dan sudah jelas bagi spesialis berpengalaman, dan dalam beberapa kasus saya tidak akan menjelaskan semuanya, karena perintah dan deskripsi seperti itu ada di jaringan. Inilah pengalaman saya dengan platform ini. Saya berharap peserta aktif akan menambahkan komentar apa yang bisa dilakukan dengan lebih baik dan kesalahan apa yang saya buat. Semua aksi berada di home stand yang terdiri dari 3 PC dengan karakteristik berbeda. Selain itu, saya secara khusus tidak menjelaskan cara kerja perangkat lunak ini dan cara menginstalnya. Tidak, hanya pengalaman administrasi dan masalah yang saya temui. Mungkin seseorang akan merasa berguna dalam memilih.



Jadi, mari kita mulai. Sebagai administrator sistem, poin-poin berikut penting bagi saya, tanpanya saya tidak akan menggunakan solusi ini.



1.



Pengulangan Instalasi Ada banyak sekali instruksi untuk menginstal opennebula, jadi seharusnya tidak ada masalah. Dari versi ke versi, fitur baru muncul yang mungkin tidak selalu dapat diperoleh saat berpindah dari versi ke versi.



2. Pemantauan



Kami akan memantau node itu sendiri, kvm dan opennebula. Kebaikan sudah ada. Ada banyak pilihan tentang memantau host linux, zabbix atau eksportir node yang sama - siapa pun yang menyukai apa - saat ini saya tentukan sehingga pemantauan metrik sistem (suhu di mana dapat diukur, konsistensi array disk), melalui zabbix, tetapi untuk aplikasi melalui eksportir ke prometheus. Untuk memantau kvm, misalnya, Anda dapat mengambil proyek github.com/zhangjianweibj/prometheus-libvirt-exporter.git dan meluncurkan peluncuran melalui systemd, ini berfungsi cukup baik dan menunjukkan metrik kvm, ada juga dasbor yang sudah jadi grafana.com/grafana/dashboards/12538 .



Misalnya, inilah file saya:



/etc/systemd/system/libvirtd_exporter.service
[Unit]
Description=Node Exporter

[Service]
User=node_exporter
ExecStart=/usr/sbin/prometheus-libvirt-exporter --web.listen-address=":9101"

[Install]
WantedBy=multi-user.target


Jadi kami memiliki 1 eksportir, kami memerlukan yang kedua untuk memantau opennebula itu sendiri, saya menggunakan github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter



Anda dapat menambahkan yang berikut ini ke node_exporter biasa untuk memantau sistem.



Di file untuk node_exporter, ubah awal dengan cara ini:



ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collector


Buat direktori mkdir -p / var / lib / opennebula_exporter



skrip bash yang disajikan di atas, pertama periksa pekerjaan melalui konsol, jika menunjukkan apa yang diperlukan (jika ada kesalahan, lalu letakkan xmlstarlet), salin ke /usr/local/bin/opennebula_exporter.sh



Tambahkan ke Tugas CZK untuk setiap menit:



*/1 * * * * (/usr/local/bin/opennebula_exporter.sh > /var/lib/opennebula_exporter/textfile_collector/opennebula.prom)




Metrik mulai muncul, Anda dapat mengambilnya dengan prometheus dan membuat grafik dan membuat peringatan. Misalnya, Anda dapat menggambar dashboard sederhana dalam grafan.







(Anda dapat melihat bahwa di sini saya melakukan overcommit cpu, ram)



Bagi mereka yang mencintai dan menggunakan zabbiks, ada github.com/OpenNebula/addon-zabbix



Memantau semuanya, yang utama itu. Tentu saja, Anda dapat, sebagai tambahan, menggunakan alat pemantauan bawaan untuk mesin virtual dan mengunggah data ke penagihan, di sini setiap orang memiliki visinya sendiri, hingga mereka mendalami lebih dekat.



Saya belum mulai masuk. Opsi termudah adalah menambahkan td-agent untuk mengurai direktori / var / lib / one dengan ekspresi reguler. Misalnya, file sunstone.log cocok untuk regexp nginx dan file lain yang menampilkan riwayat panggilan ke platform - apa plusnya? Misalnya, kita dapat secara eksplisit melacak jumlah "Error, error" dan dengan cepat melacak di mana dan pada tingkat apa ada malfungsi.



3. Cadangan



Ada juga proyek doped berbayar - misalnya sep wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon: OpenNebula_Backup. Di sini kita harus memahami bahwa hanya mencadangkan gambar mesin, dalam hal ini, sama sekali tidak sama, karena mesin virtual kita harus bekerja dengan integrasi penuh (konteks file yang sama, yang menjelaskan pengaturan jaringan, nama vm dan pengaturan kustom untuk aplikasi Anda). Oleh karena itu, di sini kami memutuskan apa dan bagaimana kami akan mendukung. Dalam beberapa kasus, lebih baik membuat salinan dari apa yang ada di vm itu sendiri. Dan mungkin Anda hanya perlu mencadangkan satu disk dari mesin ini.



Misalnya, kami memutuskan bahwa semua mesin dimulai dengan gambar persisten, oleh karena itu, setelah membaca docs.opennebula.io/5.12/operation/vm_management/img_guide.html,



maka pertama-tama kami dapat membongkar gambar dari vm kami:



onevm disk-saveas 74 3 prom.qcow2
Image ID: 77

,     

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
     . ,   .   ,    opennebula    .




Juga dalam luasnya jaringan saya menemukan laporan yang menarik dan ada juga proyek terbuka seperti itu , tetapi di sini hanya untuk penyimpanan qcow2.



Tapi seperti yang kita semua tahu, cepat atau lambat akan tiba saatnya kita menginginkan pencadangan tambahan, lebih sulit di sini dan mungkin manajemen akan mengalokasikan uang untuk solusi berbayar, atau sebaliknya dan memahami bahwa di sini kita hanya menggergaji sumber daya, dan membuat redundansi di tingkat aplikasi dan menambahkan sejumlah node baru dan mesin virtual - ya, di sini, saya katakan bahwa menggunakan cloud murni untuk meluncurkan cluster aplikasi, dan menjalankan database di platform lain atau mengambil database yang sudah jadi dari pemasok, jika memungkinkan.



4. Kemudahan penggunaan



Dalam paragraf ini, saya akan menjelaskan masalah yang saya temui. Misalnya, dengan gambar, seperti yang kita tahu ada persisten - ketika gambar ini dipasang ke vm, semua data ditulis ke gambar ini. Dan jika tidak tetap, maka gambar tersebut akan disalin ke penyimpanan dan datanya ditulis sesuai dengan apa yang disalin dari gambar aslinya - begitulah cara kerja template template. Berulang kali dia membuat masalah pada dirinya sendiri bahwa dia lupa untuk menentukan persisten dan gambar 200 GB disalin, masalahnya adalah bahwa pasti prosedur ini tidak dapat dibatalkan, Anda harus pergi ke node dan menyelesaikan proses "cp" saat ini.



Salah satu kelemahan utama adalah Anda tidak dapat membatalkan tindakan hanya dengan menggunakan gui. Sebaliknya, Anda membatalkannya dan melihat bahwa tidak ada yang terjadi dan mulai lagi, batalkan dan sebenarnya sudah ada 2 proses cp yang menyalin gambar.



Dan kemudian datang untuk memahami mengapa opennebula setiap instance baru diberi nomor dengan id baru, misalnya, di proxmox yang sama membuat vm dengan id 101, menghapusnya, lalu Anda membuat id 101 lagi. Di opennebula, ini tidak akan terjadi, setiap instance baru akan dibuat dengan id baru dan ini memiliki logikanya sendiri - misalnya, menghapus data lama atau instalasi yang tidak berhasil.



Hal yang sama berlaku untuk penyimpanan, yang terpenting, platform ini ditujukan untuk penyimpanan terpusat. Ada tambahan untuk menggunakan lokal, tetapi dalam kasus ini, bukan tentang itu. Saya pikir di masa depan seseorang akan menulis artikel tentang bagaimana mungkin menggunakan penyimpanan lokal pada node dan berhasil menggunakannya dalam produksi.



5. Kesederhanaan yang maksimal



Tentu saja, semakin jauh Anda melangkah, semakin sedikit orang yang akan memahami Anda.



Dalam kondisi stand saya - 3 node dengan penyimpanan nfs - semuanya bekerja dengan baik. Tetapi jika kita melakukan percobaan untuk mematikan daya, maka misalnya ketika memulai snapshot dan mematikan kekuatan node, kita menyimpan pengaturan di database, yang merupakan snapshot, tetapi sebenarnya tidak (yah, kita semua mengerti bahwa kita awalnya menulis database tentang tindakan ini di sql , tetapi operasinya sendiri tidak berhasil). Kelebihannya adalah saat membuat snapshot, file terpisah terbentuk dan ada "induk", oleh karena itu, jika terjadi masalah dan bahkan jika tidak bekerja melalui gui, kita dapat mengambil file qcow2 dan memulihkan secara terpisah docs.opennebula.io/5.8/operation/vm_management/vm_instances .html



Sayangnya, tidak semuanya sesederhana itu di jaringan. Yah, setidaknya lebih mudah daripada di openstack, saya hanya menggunakan vlan (802.1Q) - berfungsi dengan baik, tetapi jika Anda membuat perubahan dalam pengaturan dari jaringan template, maka pengaturan ini tidak akan diterapkan pada mesin yang sudah berjalan, yaitu, Anda perlu menghapus dan menambahkan jaringan peta, maka pengaturan baru diterapkan.



Jika Anda masih ingin membandingkan dengan openstack, maka kami dapat mengatakannya, di opennebula tidak ada definisi yang jelas tentang teknologi mana yang digunakan untuk menyimpan data, mengelola jaringan, sumber daya - setiap administrator memutuskan sendiri bagaimana dia merasa paling nyaman.



6. Plugin dan instalasi tambahan



Bagaimanapun, seperti yang kita pahami, platform cloud tidak hanya dapat mengelola kvm, tetapi juga vmware esxi. Sayangnya, saya tidak memiliki kolam renang dengan Vcenter, jika ada yang mencoba menulis.



Didukung oleh penyedia cloud lain docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html

AWS, AZURE.



Saya juga mencoba untuk mengacaukan Vmware Cloud dari pemilih, tetapi tidak ada yang berhasil - secara umum, saya mencetak gol karena ada banyak faktor, dan tidak ada gunanya menulis dukungan teknis dari penyedia hosting.



Juga, sekarang di versi baru ada petasan - ini adalah peluncuran mikrovm, seperti kvm mengikat melalui buruh pelabuhan, yang memberikan lebih banyak keserbagunaan, keamanan dan peningkatan kinerja, karena tidak perlu menghabiskan sumber daya untuk meniru perangkat keras. Saya hanya melihat keuntungan dalam kaitannya dengan buruh pelabuhan karena tidak membutuhkan sejumlah proses tambahan dan tidak ada soket yang ditempati saat menggunakan emulasi ini, mis. sangat mungkin untuk menggunakannya sebagai penyeimbang beban (tetapi mungkin ada baiknya menulis artikel terpisah tentangnya, sampai Anda menyelesaikan semua pengujian sepenuhnya).



7. Pengalaman positif dalam menggunakan dan men-debug kesalahan



Saya ingin berbagi pengamatan saya tentang pekerjaan, saya menjelaskan bagian di atas, saya ingin menulis lebih banyak. Memang, mungkin saya bukan satu-satunya yang pada awalnya berpikir bahwa ini bukan sistem yang tepat dan secara umum semuanya kruk di sini - bagaimana mereka umumnya bekerja dengan ini? Tapi kemudian pemahaman datang dan semuanya cukup logis. Tentu saja tidak untuk menyenangkan semua orang dan beberapa poin membutuhkan perbaikan.



Misalnya, operasi sederhana untuk menyalin image disk dari satu datastore ke yang lain. Dalam kasus saya, ada 2 node dengan nfs, saya mengirim gambar - menyalin melewati opennebula frontend, meskipun kita semua terbiasa dengan fakta bahwa data harus disalin langsung antara host - dalam vmware yang sama, hyper-v kita terbiasa dengan ini, tetapi di sini oleh ke yang lainnya. Berikut adalah pendekatan yang berbeda dan ideologi yang berbeda, dan pada versi 5.12 tombol "bermigrasi ke datastore" telah dihapus - hanya mesin itu sendiri yang ditransfer, tetapi bukan penyimpanannya. berarti penyimpanan terpusat.



Lebih lanjut, ada kesalahan populer dengan berbagai alasan "Kesalahan menerapkan mesin virtual: Tidak dapat membuat domain dari /var/lib/one//datastores/103/10/deployment.5" Di bawah ini adalah bagian teratas yang perlu Anda lihat.



  • Hak gambar untuk pengguna oneadmin;
  • Hak bagi pengguna oneadmin untuk menjalankan libvirtd;
  • datastore? , ;
  • , frontend , vlan br0, β€” bridge0 β€” .


system datastore menyimpan metadata untuk vm Anda, jika Anda memulai vm dengan gambar persisten, maka vm perlu memiliki akses ke konfigurasi yang pertama kali dibuat di penyimpanan tempat Anda membuat vm - ini sangat penting. Oleh karena itu, saat mentransfer vm ke datastore lain, Anda perlu memeriksa ulang semuanya.



8. Dokumentasi, komunitas. Pengembangan lebih lanjut



Dan selebihnya, dokumentasi yang baik, komunitas dan yang terpenting proyek terus jalan di masa depan.



Di sini, secara umum, semuanya terdokumentasi dengan cukup baik dan bahkan menurut sumber resmi tidak akan sulit untuk menetapkan dan menemukan jawaban atas pertanyaan.



Komunitas aktif. Menerbitkan banyak solusi siap pakai yang dapat Anda gunakan dalam instalasi Anda.



Saat ini, beberapa kebijakan di perusahaan telah berubah sejak 5.12.forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 akan sangat menarik untuk mengetahui bagaimana proyek ini akan berkembang. Pada awalnya, saya secara khusus menunjukkan beberapa vendor yang menggunakan solusi mereka dan apa yang ditawarkan industri. Tentu saja tidak ada jawaban yang jelas tentang apa yang harus digunakan. Tetapi untuk organisasi kecil, mempertahankan cloud pribadi kecil mereka mungkin tidak semahal kedengarannya. Hal utama adalah mengetahui dengan tepat apa yang Anda butuhkan.



Akibatnya, apa pun yang Anda pilih sebagai sistem cloud, Anda tidak boleh berhenti pada satu produk. Jika Anda punya waktu, ada baiknya mencari solusi lain yang lebih terbuka.



Ada t.me/opennebula obrolan yang baik secara aktif membantu dan tidak mengirim untuk mencari solusi untuk masalah di Google. Bergabunglah dengan kami.



All Articles