nebula terbuka. Catatan singkat

nebula terbuka. Catatan singkat

Всем привет. Данная статья написана для тех, кто до сих пор мечется между выбором платформ виртуализации и после прочтения статьи из серии «Поставили proxmox и вообще все отлично, 6 лет аптайм не единого разрыва». Но после установки того или иного коробочного решения, возникает вопрос, а как бы тут подправить и тут, чтобы мониторинг был более понятный и вот тут, чтобы контролировать бэкапы…. А потом приходит время и вы понимаете, что хочется чего то более функционального, ну или хочется чтобы внутри вашей системы стало все понятно, а не этот черный ящик или хочется использовать что то больше, чем гипервизор и куча виртуальных машин. В данной статье будет немного размышлений и практика на основе платформы Opennebula — выбрал т.к. не требовательна к ресурсам и архитектура не такая сложная.

Jadi, seperti yang kita lihat, banyak penyedia cloud bekerja di kvm dan membuat koneksi eksternal untuk mengontrol mesin. Jelas bahwa hoster besar menulis kerangka kerja mereka sendiri untuk infrastruktur cloud, seperti YANDEX yang sama misalnya. Seseorang menggunakan openstack dan membuat koneksi atas dasar ini - SELECTEL, MAIL.RU. Tetapi jika Anda memiliki perangkat keras sendiri dan sedikit staf spesialis, maka Anda biasanya memilih sesuatu yang sudah jadi - VMWARE, HYPER-V, ada lisensi gratis dan berbayar, tetapi bukan itu yang kita bicarakan sekarang. Mari kita bicara tentang peminat - ini adalah mereka yang tidak takut untuk menawarkan dan mencoba sesuatu yang baru, meskipun faktanya perusahaan dengan jelas menyatakan, “Siapa yang akan melayani ini setelah Anda”, “Apakah kami akan meluncurkannya ke dalam produksi nanti? ? Menakutkan." Namun Anda dapat menerapkan solusi ini terlebih dahulu di bangku pengujian, dan jika semua orang menyukainya, maka Anda dapat mengajukan pertanyaan tentang pengembangan lebih lanjut dan penggunaan di lingkungan yang lebih serius.

Ini juga tautan ke laporannya www.youtube.com/watch?v=47Mht_uoX3A dari peserta aktif dalam pengembangan platform ini.

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

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

1. Pengulangan instalasi

Есть куча инструкций по установке opennebula, тут не должно возникнуть проблем. От версии к версии появляются новые фичи, которые не всегда смогут заработать при переходе от версии к версии.

2. Pemantauan

Kami akan memantau node itu sendiri, kvm dan opennebula. Untungnya, ini sudah siap. Ada banyak pilihan tentang pemantauan host Linux, Zabbix atau pengekspor node yang sama - siapa pun yang lebih suka - saat ini saya mendefinisikannya sebagai pemantauan metrik sistem (suhu di mana dapat diukur, konsistensi susunan disk), melalui zabbix , dan untuk aplikasi melalui eksportir Prometheus. Untuk pemantauan kvm, misalnya, Anda dapat mengambil proyek tersebut github.com/zhangjianweibj/prometheus-libvirt-exporter.git и поставить запуск через systemd, вполне хорошо работает и показывает метрики kvm, также есть готовый dashboard grafana.com/grafana/dashboards/12538.

Misalnya, ini 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 eksportir kedua untuk memantau opennebula itu sendiri, saya menggunakan ini github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

Можно добавить в обычный node_eksportir untuk memantau sistem berikut ini.

Pada file node_exporter kita ubah startnya seperti ini:

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

Создаем директорию mkdir -p /var/lib/opennebula_exporter

skrip bash yang disajikan di atas, pertama kita periksa pekerjaannya melalui konsol, jika itu menunjukkan apa yang kita butuhkan (jika memberikan kesalahan, maka instal xmlstarlet), salin ke /usr/local/bin/opennebula_exporter.sh

Tambahkan tugas cron untuk setiap menit:

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

Metrik mulai muncul, Anda dapat menganggapnya seperti prometheus dan membuat grafik serta membuat peringatan. Di Grafana Anda dapat menggambar, misalnya, dasbor yang sederhana.

nebula terbuka. Catatan singkat

(видно что тут я сделал overcommit cpu, ram)

Bagi mereka yang menyukai dan menggunakan Zabbix, ada github.com/OpenNebula/addon-zabbix

Kalau soal pengawasan, yang penting ada. Tentu saja, Anda juga dapat menggunakan alat pemantauan mesin virtual bawaan dan mengunggah data ke penagihan, di sini setiap orang memiliki visinya sendiri, saya belum mulai mengerjakannya lebih dekat.

Saya belum benar-benar mulai login. Opsi paling sederhana adalah menambahkan td-agent untuk mengurai direktori /var/lib/one dengan ekspresi reguler. Misalnya, file sunstone.log cocok dengan regexp nginx dan file lain yang menunjukkan riwayat akses ke platform - apa keuntungannya? Misalnya, kita dapat secara eksplisit melacak jumlah "Error, error" dan dengan cepat melacak di mana dan pada tingkat apa terjadi malfungsi.

3. Cadangan

Ada juga proyek berbayar yang telah selesai - misalnya September wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:BukaNebula_Backup. Di sini kita harus memahami bahwa hanya mencadangkan gambar mesin sama sekali tidak sama dalam kasus ini, karena mesin virtual kita harus bekerja dengan integrasi penuh (file konteks yang sama yang menjelaskan pengaturan jaringan, nama vm, dan pengaturan khusus untuk aplikasi Anda) . Oleh karena itu, di sini kami memutuskan apa dan bagaimana kami akan mencadangkannya. 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 tertentu.

Например мы определились, что все машины запускаются с persistent images следовательно почитав docs.opennebula.io/5.12/operation/vm_management/img_guide.html

Artinya pertama-tama kita bisa mengupload gambar dari vm kita:

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

Смотрим, под каким именем он сохранился

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
И далее копируем куда нам необходимо. Конечно, так себе способ. Просто хотел показать, что используя инструменты opennebula можно строить подобные решения.

Saya juga menemukannya di Internet интересный доклад dan masih ada lagi proyek terbuka seperti itu, tapi hanya ada penyimpanan untuk qcow2.

Namun seperti yang kita semua tahu, cepat atau lambat akan tiba saatnya Anda menginginkan pencadangan tambahan, di sini lebih sulit dan mungkin manajemen akan mengalokasikan uang untuk solusi berbayar, atau pergi ke arah lain dan memahami bahwa di sini kita hanya memotong sumber daya, dan membuat cadangan 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 meluncurkan database di platform lain atau mengambil yang sudah jadi dari pemasok, jika memungkinkan.

4. Kemudahan penggunaan

Pada paragraf ini saya akan menjelaskan permasalahan yang saya temui. Misalnya, menurut gambar, seperti yang kita tahu, ada yang persisten - ketika gambar ini dipasang ke vm, semua data ditulis ke gambar ini. Dan jika non-persisten, maka gambar disalin ke penyimpanan dan data ditulis ke apa yang disalin dari gambar sumber - beginilah cara kerja templat templat. Saya berulang kali membuat masalah pada diri saya sendiri karena lupa menentukan persisten dan gambar 200 GB disalin, masalahnya adalah prosedur ini pasti tidak dapat dibatalkan, Anda harus pergi ke node dan mematikan proses "cp" saat ini.

Salah satu kelemahan penting adalah Anda tidak dapat membatalkan tindakan hanya dengan menggunakan gui. Atau lebih tepatnya, Anda akan membatalkannya dan melihat bahwa tidak ada yang terjadi dan Anda akan memulainya lagi, membatalkannya dan sebenarnya sudah ada 2 proses cp yang menyalin gambar tersebut.

И тут приходит пониманием, почему opennebula каждый новый инстанс нумерует новым id, например в том же proxmox создал vm с id 101, удалил ее, потом вновь создаешь и id 101. В opennebula такого не будет, каждый новый инстанс будет создаваться с новым id и в этом есть своя логика — например, очистка старых данных или не успешных инсталляций.

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

5. Kesederhanaan maksimal

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

Dalam kondisi stand saya - 3 node dengan penyimpanan nfs - semuanya berfungsi dengan baik. Tetapi jika kita melakukan percobaan yang melibatkan pemadaman listrik, misalnya saat menjalankan snapshot dan mematikan daya node, kita menyimpan pengaturan di database bahwa ada snapshot, tetapi kenyataannya tidak ada (yah, kita semua mengerti bahwa kita awalnya menulis database tentang tindakan ini di sql, tetapi operasi itu sendiri tidak berhasil). Keuntungannya adalah ketika membuat snapshot, file terpisah terbentuk dan ada "induk", oleh karena itu jika terjadi masalah dan meskipun tidak berfungsi melalui gui, kita dapat mengambil file qcow2 dan memulihkannya secara terpisah docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

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

Jika Anda masih ingin membandingkannya dengan openstack, Anda dapat mengatakan ini: di opennebula tidak ada definisi yang jelas tentang teknologi mana yang digunakan untuk menyimpan data, mengelola jaringan, sumber daya - setiap administrator memutuskan sendiri apa yang lebih nyaman baginya.

6. Plugin dan instalasi tambahan

Ведь как мы понимаем облачная платформа может управлять не только kvm, но и vmware esxi. К сожалению пула с Vcenter у меня не оказалось, если кто пробовал напишите.

Dukungan untuk penyedia cloud lainnya dinyatakan docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS, BIRU.

Saya juga mencoba menghubungkan Vmware Cloud dari Selectel, tetapi tidak ada yang berhasil - secara umum diblokir karena banyak faktor, dan tidak ada gunanya menulis ke dukungan teknis dari penyedia hosting.

Selain itu, sekarang versi baru memiliki petasan - ini adalah peluncuran microvm, sejenis kvm harness over docker, yang memberikan lebih banyak fleksibilitas, keamanan, dan peningkatan produktivitas karena tidak perlu membuang sumber daya untuk meniru peralatan. Satu-satunya keuntungan yang saya lihat dibandingkan Docker adalah tidak memerlukan sejumlah proses tambahan dan tidak ada soket yang terisi saat menggunakan emulasi ini, mis. Sangat mungkin untuk menggunakannya sebagai penyeimbang beban (tetapi mungkin ada baiknya menulis artikel terpisah tentang ini sampai saya menjalankan semua pengujian sepenuhnya).

7. Положительный опыт использования и дебаг ошибок

Хотел поделится своими наблюдениями по поводу работы, часть описал выше, хочется написать побольше. Действительно, вероятно не я один, кто сначала думает, что эта не та система и вообще тут все костыльно — как с этим вообще работают? Но потом приходит понимание и что все вполне логично. Конечно всем не угодить и некоторые моменты требуют доработок.

Например, простая операция копирования образа диска с одного datastore на другой. В моем случае есть 2 ноды с nfs, отправляю образ — копирование идет через frontend opennebula, хотя все мы привыкли к тому, что данные должны копироваться напрямую между хостами — в той же vmware, hyper-v мы привыкли именно к этому, но тут по другому. Тут другой подход и другая идеология, и в 5.12 версии убрали кнопку «migrate to datastore» — переносится только сама машина, но не хранилище т.к. подразумевается централизованное хранилище.

Berikutnya adalah kesalahan populer dengan berbagai alasan: “Kesalahan saat menerapkan mesin virtual: Tidak dapat membuat domain dari /var/lib/one//datastores/103/10/deployment.5” Di bawah ini adalah hal teratas yang harus dilihat.

  • Hak gambar untuk pengguna oneadmin;
  • Izin bagi pengguna oneadmin untuk menjalankan libvirtd;
  • А правильно ли смонтирован datastore? Иди и проверь путь на самой ноде, возможно что то отвалилось;
  • Jaringan yang dikonfigurasi secara tidak benar, atau lebih tepatnya di frontend, dalam pengaturan jaringan antarmuka utama untuk vlan adalah br0, tetapi pada node ditulis sebagai bridge0 - harus sama.

penyimpanan data sistem menyimpan metadata untuk vm Anda, jika Anda menjalankan vm dengan gambar persisten, maka vm harus memiliki akses ke konfigurasi awal yang dibuat di penyimpanan tempat Anda membuat vm - ini sangat penting. Oleh karena itu, saat mentransfer vm ke penyimpanan data lain, Anda perlu memeriksa ulang semuanya.

8. Dokumentasi, komunitas. Pengembangan lebih lanjut

Selebihnya, dokumentasi yang baik, komunitas dan yang terpenting proyek ini terus berjalan di masa depan.

Secara umum, semuanya didokumentasikan dengan cukup baik dan bahkan menggunakan sumber resmi tidak akan menjadi masalah untuk menginstal 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 menarik untuk melihat bagaimana proyek ini berkembang. Pada awalnya, saya secara khusus menunjukkan beberapa vendor yang menggunakan solusi mereka dan apa yang ditawarkan industri ini. Tentu saja, tidak ada jawaban yang jelas tentang apa yang harus digunakan. Namun bagi organisasi yang lebih kecil, memelihara private cloud kecil mereka mungkin tidak semahal yang terlihat. Hal utama adalah mengetahui secara pasti apa yang Anda butuhkan.

Oleh karena itu, apa pun yang Anda pilih sebagai sistem cloud, Anda tidak boleh berhenti pada satu produk saja. Jika Anda punya waktu, ada baiknya melihat solusi lain yang lebih terbuka.

Есть хороший чатик t.me/opennebula Mereka secara aktif membantu dan tidak mengarahkan Anda untuk mencari solusi masalah di Google. Bergabunglah dengan kami.

Sumber: www.habr.com

Tambah komentar