سحابی باز یادداشت های کوتاه

سحابی باز یادداشت های کوتاه

سلام به همه. این مقاله برای کسانی نوشته شده است که هنوز بین انتخاب پلتفرم های مجازی سازی سرگردان هستند و پس از خواندن مقاله از سری "ما proxmox را نصب کردیم و در کل همه چیز خوب است، 6 سال آپ تایم بدون یک وقفه" نوشته شده است. اما پس از نصب یک یا دیگری راه حل خارج از جعبه، این سوال پیش می آید: چگونه می توانم این را در اینجا اصلاح کنم تا نظارت بیشتر قابل درک باشد، و در اینجا، برای کنترل پشتیبان گیری .... و بعد زمان می رسد و متوجه می شوید که چیزی کاربردی تر می خواهید یا می خواهید همه چیز در سیستم شما روشن شود و نه این جعبه سیاه یا می خواهید از چیزی بیشتر از یک هایپروایزر و یکسری ماشین های مجازی استفاده کنید. این مقاله حاوی برخی از افکار و تمرینات مبتنی بر پلت فرم Opennebula است - من آن را انتخاب کردم زیرا. نیازی به منابع ندارد و معماری آن چندان پیچیده نیست.

و بنابراین، همانطور که می بینیم، بسیاری از ارائه دهندگان ابر روی kvm کار می کنند و اتصالات خارجی را برای کنترل ماشین ها ایجاد می کنند. واضح است که هاست های بزرگ چارچوب های خود را برای زیرساخت ابری می نویسند، برای مثال همان YANDEX. شخصی از openstack استفاده می کند و بر این اساس اتصال برقرار می کند - SELECTEL، MAIL.RU. اما اگر سخت‌افزار خود و تعداد کمی از متخصصان را دارید، معمولاً چیزی آماده را انتخاب می‌کنید - VMWARE، HYPER-V، مجوزهای رایگان و پولی وجود دارد، اما این چیزی نیست که اکنون در مورد آن صحبت می‌کنیم. بیایید در مورد علاقه مندان صحبت کنیم - اینها کسانی هستند که از ارائه و امتحان چیز جدیدی نمی ترسند، علیرغم این واقعیت که شرکت به وضوح اعلام کرده است، "چه کسی بعد از شما این خدمات را ارائه می دهد"، "آیا ما بعداً این را به تولید خواهیم رساند." ? ترسناک." اما می‌توانید ابتدا این راه‌حل‌ها را در یک میز آزمایش اعمال کنید و اگر همه آن را دوست داشتند، می‌توانید سؤال توسعه بیشتر و استفاده در محیط‌های جدی‌تر را مطرح کنید.

همچنین لینک گزارش در اینجا آمده است www.youtube.com/watch?v=47Mht_uoX3A از یک شرکت کننده فعال در توسعه این پلتفرم.

شاید در این مقاله چیزی اضافی و از قبل برای یک متخصص با تجربه قابل درک باشد، و در برخی موارد من همه چیز را شرح نمی دهم زیرا دستورات و توضیحات مشابه در اینترنت موجود است. این فقط تجربه من با این پلتفرم است. امیدوارم شرکت کنندگان فعال در نظرات اضافه کنند که چه کارهایی را می توان بهتر انجام داد و چه اشتباهاتی را مرتکب شدم. تمام اقدامات در یک استند خانگی متشکل از 3 رایانه شخصی با ویژگی های مختلف انجام شد. همچنین، من به طور خاص به نحوه کار این نرم افزار و نحوه نصب آن اشاره نکردم. نه، فقط تجربه مدیریت و مشکلاتی که با آن برخورد کردم. شاید این برای کسی در انتخابش مفید باشد.

بنابراین، بیایید شروع کنیم. به عنوان یک مدیر سیستم، نکات زیر برای من مهم است که بدون آنها بعید است از این راه حل استفاده کنم.

1. تکرارپذیری نصب

دستورالعمل های زیادی برای نصب opennebula وجود دارد، نباید هیچ مشکلی وجود داشته باشد. از نسخه ای به نسخه دیگر، ویژگی های جدیدی ظاهر می شوند که همیشه هنگام انتقال از نسخه ای به نسخه دیگر کار نمی کنند.

2. نظارت بر

ما خود گره، kvm و opennebula را نظارت خواهیم کرد. خوشبختانه، از قبل آماده است. گزینه های زیادی در مورد نظارت بر هاست های لینوکس وجود دارد، همان Zabbix یا صادرکننده گره - هر کسی که دوست دارد چه بهتر - در حال حاضر آن را به عنوان معیارهای نظارتی سیستم (دمای جایی که می توان آن را اندازه گیری کرد، ثبات آرایه دیسک)، از طریق zabbix تعریف می کنم. ، و در مورد برنامه های کاربردی از طریق صادر کننده Prometheus. مثلا برای مانیتورینگ kvm میتونید پروژه رو بگیرید github.com/zhangjianweibj/prometheus-libvirt-exporter.git و تنظیم کنید که از طریق systemd اجرا شود، کاملاً خوب کار می کند و متریک های kvm را نشان می دهد، داشبورد آماده هم دارد grafana.com/grafana/dashboards/12538.

مثلا فایل من اینه:

/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

و بنابراین ما 1 صادرکننده داریم، ما به یک دومی برای نظارت بر خود opennebula نیاز داریم، من از این استفاده کردم github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

قابل اضافه شدن به حالت عادی node_exporter برای نظارت بر سیستم موارد زیر.

در فایل node_exporter شروع را به این صورت تغییر می دهیم:

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

یک دایرکتوری mkdir -p /var/lib/opennebula_exporter ایجاد کنید

اسکریپت bash ارائه شده در بالا، ابتدا کار را از طریق کنسول بررسی می کنیم، اگر آنچه را که نیاز داریم را نشان می دهد (اگر خطا می دهد، xmlstarlet را نصب کنید)، آن را در /usr/local/bin/opennebula_exporter.sh کپی کنید.

برای هر دقیقه یک کار cron اضافه کنید:

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

متریک ها ظاهر شدند، می توانید آنها را مانند یک پرومتئوس بگیرید و نمودار بسازید و هشدار ایجاد کنید. در Grafana می توانید مثلاً یک داشبورد ساده بکشید.

سحابی باز یادداشت های کوتاه

(روشن است که در اینجا cpu، ram overcommit می کنم)

برای کسانی که عاشق Zabbix هستند و از آنها استفاده می کنند، وجود دارد github.com/OpenNebula/addon-zabbix

تا آنجا که به نظارت مربوط می شود، نکته اصلی این است که وجود دارد. البته، علاوه بر این، می‌توانید از ابزارهای نظارت ماشین مجازی داخلی استفاده کنید و داده‌ها را در صورت‌حساب آپلود کنید، در اینجا هر کسی دیدگاه خود را دارد، من هنوز کار دقیق‌تری روی این موضوع شروع نکرده‌ام.

من واقعاً هنوز ثبت نام را شروع نکرده ام. ساده ترین گزینه اضافه کردن td-agent برای تجزیه پوشه /var/lib/one با عبارات منظم است. به عنوان مثال، فایل sunstone.log با nginx regexp و سایر فایل‌هایی که تاریخچه دسترسی به پلتفرم را نشان می‌دهند مطابقت دارد - مزیت این چیست؟ خوب، به عنوان مثال، ما می توانیم به صراحت تعداد "خطا، خطا" را ردیابی کنیم و به سرعت ردیابی کنیم که کجا و در چه سطحی نقص وجود دارد.

3. پشتیبان گیری

همچنین پروژه های تکمیل شده پرداخت شده وجود دارد - به عنوان مثال سپتامبر wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:OpenNebula_Backup. در اینجا باید درک کنیم که تهیه نسخه پشتیبان از تصویر ماشین به هیچ وجه در این مورد یکسان نیست، زیرا ماشین های مجازی ما باید با یکپارچگی کامل کار کنند (همان فایل زمینه که تنظیمات شبکه، نام vm و تنظیمات سفارشی برنامه های شما را توضیح می دهد) . بنابراین، در اینجا تصمیم می گیریم از چه چیزی و چگونه پشتیبان گیری کنیم. در برخی موارد بهتر است از آنچه در خود vm وجود دارد کپی کنید. و شاید شما فقط نیاز به پشتیبان گیری از یک دیسک از یک دستگاه خاص داشته باشید.

به عنوان مثال، ما تعیین کردیم که همه ماشین‌ها با تصاویر ثابت شروع می‌شوند، بنابراین، پس از خواندن docs.opennebula.io/5.12/operation/vm_management/img_guide.html

این بدان معنی است که ابتدا می توانیم تصویر را از vm خود آپلود کنیم:

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

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

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

تو اینترنت هم پیدا کردم گزارش جالب و بیشتر وجود دارد چنین پروژه باز، اما فقط ذخیره سازی برای qcow2 وجود دارد.

اما همانطور که همه ما می دانیم، دیر یا زود زمانی فرا می رسد که می خواهید پشتیبان گیری افزایشی داشته باشید، اینجا دشوارتر است و شاید مدیریت پول را برای یک راه حل پولی اختصاص دهد، یا راه دیگری را برود و بفهمد که در اینجا فقط منابع را کاهش می دهیم. و تهیه نسخه پشتیبان در سطح برنامه و افزودن تعدادی گره جدید و ماشین های مجازی - بله، در اینجا می گویم که استفاده از ابر صرفاً برای راه اندازی کلاسترهای برنامه و راه اندازی پایگاه داده بر روی پلتفرم دیگر یا گرفتن یک پلتفرم آماده در صورت امکان از تامین کننده

4. سهولت استفاده

در این پاراگراف من مشکلاتی را که با آن مواجه شدم شرح خواهم داد. به عنوان مثال، با توجه به تصاویر، همانطور که می دانیم، پایدار وجود دارد - زمانی که این تصویر بر روی vm نصب می شود، تمام داده ها روی این تصویر نوشته می شود. و اگر پایدار نباشد، تصویر در فضای ذخیره‌سازی کپی می‌شود و داده‌ها به آنچه از تصویر منبع کپی شده است نوشته می‌شود - الگوهای الگو اینگونه کار می‌کنند. من بارها و بارها با فراموش کردن مشخص کردن persistent برای خودم مشکل ایجاد کردم و تصویر 200 گیگابایتی کپی شد، مشکل این است که این رویه مطمئناً قابل لغو نیست، شما باید به گره بروید و روند "cp" فعلی را بکشید.

یکی از معایب مهم این است که نمی توانید به سادگی با استفاده از رابط کاربری، اقدامات را لغو کنید. یا بهتر بگوییم آنها را لغو می کنید و می بینید که هیچ اتفاقی نمی افتد و دوباره آنها را شروع می کنید، آنها را لغو می کنید و در واقع از قبل 2 پردازش cp وجود دارد که تصویر را کپی می کند.

و سپس می فهمیم که چرا opennebula هر نمونه جدید را با یک شناسه جدید شماره گذاری می کند، به عنوان مثال، در همان proxmox یک vm با id 101 ایجاد کرد، آن را حذف کرد، سپس دوباره آن را ایجاد کرد و id 101 را ایجاد کرد. در opennebula این اتفاق نمی افتد. هر نمونه جدید با یک شناسه جدید ایجاد می شود و این منطق خاص خود را دارد - به عنوان مثال، پاک کردن داده های قدیمی یا نصب ناموفق.

در مورد ذخیره سازی هم همینطور است؛ بیشتر از همه، این پلتفرم ذخیره سازی متمرکز را هدف قرار داده است. افزونه هایی برای استفاده از محلی وجود دارد، اما این چیزی نیست که در این مورد در مورد آن صحبت می کنیم. من فکر می کنم که در آینده کسی مقاله ای در مورد چگونگی استفاده از ذخیره سازی محلی در گره ها و استفاده موفقیت آمیز از آن در تولید خواهد نوشت.

5. حداکثر سادگی

البته، هر چه جلوتر بروید، کسانی که شما را درک خواهند کرد کمتر می شوند.

تحت شرایط استند من - 3 گره با ذخیره سازی nfs - همه چیز خوب کار می کند. اما اگر آزمایش‌هایی شامل قطع برق انجام دهیم، به عنوان مثال، هنگام اجرای یک عکس فوری و خاموش کردن برق گره، تنظیماتی را در پایگاه داده ذخیره می‌کنیم که یک عکس فوری وجود دارد، اما در واقع هیچ‌یک وجود ندارد (خوب، همه ما می‌دانیم که ما در ابتدا پایگاه داده را در مورد این عمل در sql نوشت، اما خود عملیات موفقیت آمیز نبود). مزیت این است که هنگام ایجاد یک عکس فوری، یک فایل جداگانه تشکیل می شود و یک "والد" وجود دارد، بنابراین در صورت بروز مشکل و حتی اگر از طریق gui کار نکرد، می توانیم فایل qcow2 را برداریم و جداگانه آن را بازیابی کنیم. docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

در شبکه ها، متأسفانه، همه چیز به این سادگی نیست. خوب، حداقل ساده تر از openstack است، من فقط از vlan (802.1Q) استفاده کردم - بسیار خوب کار می کند، اما اگر از شبکه الگو تغییراتی در تنظیمات ایجاد کنید، این تنظیمات برای ماشین های در حال اجرا اعمال نمی شوند، یعنی. شما باید کارت شبکه را حذف و اضافه کنید، سپس تنظیمات جدید اعمال می شود.

اگر هنوز هم می خواهید آن را با openstack مقایسه کنید، می توانید این را بگویید: در opennebula تعریف روشنی از اینکه کدام فناوری برای ذخیره داده ها، مدیریت شبکه، منابع استفاده شود وجود ندارد - هر مدیر خودش تصمیم می گیرد چه چیزی برای او راحت تر است.

6. پلاگین ها و نصب های اضافی

پس از همه، همانطور که ما درک می کنیم، پلت فرم ابری می تواند نه تنها kvm، بلکه vmware esxi را نیز مدیریت کند. متاسفانه من با Vcenter استخر نداشتم، اگر کسی امتحان کرده لطفا بنویسد.

پشتیبانی از سایر ارائه دهندگان ابر بیان شده است docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS، AZURE.

من همچنین سعی کردم Vmware Cloud را از Selectel وصل کنم، اما هیچ چیز کار نکرد - به طور کلی، مسدود شد زیرا عوامل زیادی وجود دارد و هیچ فایده ای برای نوشتن به پشتیبانی فنی ارائه دهنده میزبانی وجود ندارد.

همچنین، اکنون نسخه جدید دارای فشفشه است - این راه اندازی microvm است، نوعی مهار kvm بر روی داکر، که تطبیق پذیری، امنیت و بهره وری را افزایش می دهد زیرا نیازی به هدر دادن منابع برای تجهیزات شبیه سازی نیست. تنها مزیتی که نسبت به Docker می بینم این است که تعداد بیشتری از فرآیندها را اشغال نمی کند و هنگام استفاده از این شبیه سازی هیچ سوکت اشغالی وجود ندارد. استفاده از آن به عنوان متعادل کننده بار کاملاً ممکن است (اما احتمالاً ارزش نوشتن یک مقاله جداگانه در این مورد را دارد تا زمانی که همه آزمایش ها را به طور کامل انجام دهم).

7. تجربه مثبت استفاده و اشکال زدایی خطا

می خواستم مشاهداتم را در مورد کار به اشتراک بگذارم، برخی از آن را در بالا توضیح دادم، دوست دارم بیشتر بنویسم. در واقع، من احتمالاً تنها کسی نیستم که در ابتدا فکر می کنم این سیستم درست نیست و به طور کلی همه چیز اینجا یک عصا است - آنها حتی با این چگونه کار می کنند؟ اما پس از آن درک می شود که همه چیز کاملاً منطقی است. البته، شما نمی توانید همه را راضی نگه دارید و برخی از جنبه ها نیاز به بهبود دارند.

به عنوان مثال، یک عملیات ساده کپی کردن یک تصویر دیسک از یک دیتا استور به دیگری. در مورد من، 2 گره با nfs وجود دارد، من تصویر را ارسال می کنم - کپی کردن از طریق سحابی opennebula frontend اتفاق می افتد، اگرچه همه ما به این واقعیت عادت کرده ایم که داده ها باید مستقیماً بین هاست ها کپی شوند - در همان vmware، hyper-v ما هستیم. عادت به این، اما اینجا به دیگری. رویکرد متفاوت و ایدئولوژی متفاوتی وجود دارد، و در نسخه 5.12 آنها دکمه "مهاجرت به دیتا استور" را حذف کردند - فقط خود ماشین منتقل می شود، اما نه ذخیره سازی زیرا به معنی ذخیره سازی متمرکز

در مرحله بعد یک خطای محبوب با دلایل مختلف وجود دارد: "خطا در استقرار ماشین مجازی: نمی توان دامنه را از /var/lib/one//datastores/103/10/deployment ایجاد کرد." در زیر مهمترین چیزی که باید به آن نگاه کرد وجود دارد.

  • حقوق تصویر برای کاربر oneadmin.
  • مجوز برای کاربر oneadmin برای اجرای libvirtd.
  • آیا دیتا استور به درستی نصب شده است؟ بروید و مسیر خود گره را بررسی کنید، شاید چیزی از بین رفته باشد.
  • شبکه ای که به درستی پیکربندی نشده است، یا بهتر است بگوییم در frontend، در تنظیمات شبکه است که رابط اصلی برای vlan br0 است، اما در گره به عنوان bridge0 نوشته شده است - باید یکسان باشد.

System datastore متادیتا را برای vm شما ذخیره می‌کند، اگر vm را با یک تصویر ثابت اجرا می‌کنید، VM باید به تنظیمات اولیه ایجاد شده در فضای ذخیره‌سازی جایی که vm را ایجاد کرده‌اید دسترسی داشته باشد - این بسیار مهم است. بنابراین، هنگام انتقال vm به دیتا استور دیگر، باید همه چیز را دوباره چک کنید.

8. اسناد، جامعه. پیشرفتهای بعدی

و بقیه، مستندات خوب، جامعه و نکته اصلی این است که پروژه در آینده به حیات خود ادامه می دهد.

به طور کلی، همه چیز کاملاً مستند است و حتی با استفاده از یک منبع رسمی نیز مشکلی برای نصب و یافتن پاسخ سوالات نخواهد بود.

انجمن، فعال راه حل های آماده بسیاری را منتشر می کند که می توانید در نصب خود از آنها استفاده کنید.

در حال حاضر، برخی از سیاست ها در شرکت از 5.12 تغییر کرده است forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 جالب است که ببینیم پروژه چگونه توسعه می یابد. در ابتدا، من به طور خاص به برخی از فروشندگانی که از راه حل های آنها استفاده می کنند و آنچه صنعت ارائه می دهد اشاره کردم. البته هیچ پاسخ روشنی در مورد استفاده از آن وجود ندارد. اما برای سازمان های کوچکتر، نگهداری ابر خصوصی کوچک آنها ممکن است آنقدر که به نظر می رسد گران نباشد. نکته اصلی این است که بدانید دقیقاً به چه چیزی نیاز دارید.

در نتیجه، صرف نظر از اینکه چه چیزی را به عنوان یک سیستم ابری انتخاب می کنید، نباید در یک محصول متوقف شوید. اگر وقت دارید، ارزش آن را دارد که به راه حل های بازتر دیگری نگاهی بیندازید.

چت خوبی هست t.me/opennebula آنها فعالانه کمک می کنند و شما را برای جستجوی راه حل مشکل در گوگل نمی فرستند. به ما بپیوند.

منبع: www.habr.com

اضافه کردن نظر