برنامه نویسی

🔧من Harvester HCI را برای homelab امتحان کردم و راه حل جالبی است

وقتی متوجه شدم کامپیوترهای قدیمی در محل من گرد و غبار را جمع آوری می کنند، در مورد امکان تغییر کاربری آنها می پرسم. با در نظر گرفتن این موضوع، من به عنوان یک سرگرمی شروع به ساخت یک خانه خانگی می کنم. هر دستگاه می‌تواند یک سرویس را میزبانی کند، اما من تصمیم می‌گیرم زیرساختم را مجازی کنم تا از هر بیت سخت‌افزاری که دارم به‌طور مؤثر استفاده کنم. راه حل های محبوبی مانند Proxmox، ESXI و XCP-ng وجود دارد، اما برای سرگرم کننده تر کردن آن، می خواهم راه حل مبهم تری را امتحان کنم. پس از نگاه کردن به اطراف، هاروستر، یک زیرساخت منبع باز Hyperconverged، انتخابی برای راه اندازی من است.

در این مقاله، اولین تجربه خود را با Harvester در یک خوشه از 3 گره مدیریتی مرور خواهم کرد. به خاطر داشته باشید که این مقاله بیشتر در مورد مستند کردن تجربه من است، نه اینکه یک آموزش مناسب باشد، بنابراین لطفاً آن را با یک دانه نمک درمان کنید.

سخت افزار

هنگام استفاده از Hypervisor نوع 1 مانند Harvester، کاربران باید به سخت‌افزار زیرساخت خود توجه کنند، زیرا مشکلات سازگاری زیادی در کمین هستند، بنابراین آنچه من تجربه می‌کنم ممکن است به خوبی در تنظیمات من مجزا باشد. همچنین، اینها کامپیوترهایی با تغییر کاربری هستند، بنابراین مشخصات به هیچ وجه به توصیه تیم Harvester نزدیک نیست.

نود 1، یک لپ تاپ قدیمی:

  1. پردازنده: Intel I7-7700HQ

  2. رم: 16 گیگابایت

  3. NIC: Realtek RTL8111 (NIC مدیریت)

  4. فضای ذخیره سازی: 1 ترابایت NVME SSD (برای داده های Harvester و VM استفاده می شود)

گره 2، یک کامپیوتر با فرم فاکتور متوسط:

  1. پردازنده: Intel I5-6500

  2. رم: 8 گیگابایت

  3. NIC 1: Intel I219-LM

  4. NIC 2: Realtek RTL8125 (نه نسخه A یا B، فقط 8125)

  5. NIC 3: Intel X710 DA-2 (NIC مدیریت)

  6. فضای ذخیره سازی: 128 گیگابایت SATA SSD (برای داده های Harvester و VM استفاده می شود)

نود 3، یک مینی کامپیوتر:

  1. پردازنده: Intel I5-6500T

  2. رم: 16 گیگابایت

  3. NIC: Intel I219-LM

  4. فضای ذخیره سازی: 256 GN NVME SSD (برای داده های Harvester و VM استفاده می شود)

تجربه نصب دروگر

مراحل اساسی

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

  1. ISO را دانلود کنید: این من را کمی گیج کرد، زیرا اولین “شروع به کار” در وب سایت Harvester منجر به نصب نشد، بلکه یک دکمه دانلود در پایین صفحه است. همچنین، سوئیچ به مخزن Harvester GitHub منتهی می شود، نه دانلود مستقیم.

    Harvester ISO را از مخزن GitHub خود دانلود کنید.

  2. یک درایو USB قابل بوت با استفاده از Rufus ایجاد کنید: در مورد این مرحله چیز زیادی وجود ندارد، زیرا Rufus می تواند تصویر را بدون هیچ مشکلی بسوزاند.

  3. Harvester را در Node 1 دیگر > Node 2 > Node 3 نصب کنید: نصب هر گره حدود 10 دقیقه طول می کشد. شاید راهی برای نصب همه آنها به یکباره وجود داشته باشد (IaC؟)، اگر چنین است، مقیاس بسیار بهتری خواهد داشت.

    Harvester روند نصب را نمایش می دهد.

مشکل عجیب اولین ورود؟

در اینجا یک چیز وجود دارد، اگرچه تصویر بالا نام را نشان می دهد، دامدار، من متوجه این موضوع نشدم، اما با من همراه باشید و این را کمی در نظر داشته باشید. هنگامی که برای اولین بار Harvester را نصب کردید، یک مرحله تعریف یک استاتیک بود VIP (IP مجازی برای مدیریت). خوب، فقط یک نام اختصاری را نشان می دهد و نمی دانستم آن چیست، اساسا آن را در حالت پیش فرض (DHCP) گذاشتم. وقتی نصب به پایان رسید، با استفاده از استاتیک آن وارد اولین گره شدم IP گره و با صفحه ورود به سیستم مورد استقبال قرار گرفت … از Rancher؟

من در آن مرحله از Rancher اطلاعی نداشتم، بنابراین سردرگمی دیگری به وجود آمد. بعداً متوجه شدم که مارک آن صفحه در واقع به‌طور تصادفی بین برند Harvester و Rancher در صورت تازه‌سازی تغییر می‌کند (F5). همچنین، یک درخواست می کند پسورد بوت استرپ و این چیزی نیست که من در طول راه اندازی Harvester انتخاب کردم.

یک خوش آمدگویی اشتباه به صفحه ورود به سیستم هاروستر.

از آنجایی که این هیچ جایی مستند نیست، من به مشکلات GitHub فرو رفتم و شماره 1479 را پیدا کردم. فهمیدم رمز بوت استرپ هست admin، که سپس اجازه ورود به سیستم را به من داد.

داشبورد دامدار.

و … اینجاست دامدار داشبورد. بهترین قسمت این است که من از ابتدا قرار نبود اینجا باشم. این اتفاق به این دلیل رخ داد که من VIP را برای کلاستر خود تنظیم نکردم، بنابراین داشبورد Rancher و این رفتار عجیب و غریب در اولین ورود ظاهر شد. با این حال، هیچ راه بی اهمیتی برای تغییر IP مدیریت پس از نصب Harvester وجود ندارد، بنابراین من نیاز به نصب مجدد کل گره داشتم. در زمان نوشتن، من ایده ای از نقش Rancher در حال حاضر دارم (البته محدود)، اما هنوز نتوانستم توضیحی برای رفتار ورود پیدا کنم.

پس از تنظیم VIP، من توانستم اولین حساب کاربری را ایجاد کنم و بدون مشکل وارد داشبورد Harvester (واقع در VIP) شوم.

تجربه پلت فرم برداشت

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

عملکرد failover بد است

با راه اندازی من، من 3 گره دارم. در ابتدا، فقط گره 1 یک گره مدیریتی است، اما پس از پیوستن دو گره دیگر به خوشه، به طور خودکار به یک گره مدیریتی ارتقا یافتند. برای تشکیل یک خوشه با دسترسی بالا، به سه گره نیاز است. در یک خوشه سه تایی Harvester، تحمل خطا یک است. خوب، تئوری این است که، اما در عمل، آنطور که انتظار داشتم «در دسترس بودن بالا» نیست.

  • اگر گره 1 خاموش باشد، خوشه من به طور موثری از کار افتاده است (VIP – آماده نیست؛ ماشین های مجازی، داشبورد و گره های باقی مانده قابل دسترسی نیستند).

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

  • از حالت خاموش، گره ها اغلب نمی توانند پس از راه اندازی به درستی یک خوشه تشکیل دهند (همیشه آماده نیست). این را می توان با چند بار راه اندازی مجدد کل خوشه (از طریق کنسول، F12) برطرف کرد.

  • هنگامی که خوشه کار می کند، اما گره 2 یا 3 محاصره شده است، کل خوشه اغلب ناپایدار می شود. دسترسی به داشبورد Harvester زمان می برد، ماشین های مجازی پاسخگو نمی شوند و اقدامات در آن گیر می کنند. در حال پیش رفت. منابع (ظرفیت) به اوج خود می رسند و کم و بیش در آنجا گیر می کنند. من حدس می زنم این ارتباطی با مهاجرت زنده داشته باشد. اگر گره دوباره آنلاین باشد، منابع به تدریج کاهش می یابد و خوشه دوباره قابل استفاده است. برای تاکید، این رفتار اغلب اتفاق می افتد، اما نه همیشه. تصویر زیر زمانی بود که یک گره به تازگی از محاصره برگشته است.

    CPU Harvester در طول یک سناریوی مهاجرت زنده بیش از حد استفاده می شود.

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

    CPU Harvester به طور معمول زمانی استفاده می شود که همه گره ها بالا هستند.

برخی از فرآیندهای ضروری در رابط کاربری وب بی اهمیت نیستند، به عنوان مثال، فرآیند به روز رسانی

به نظر نمی رسد وجود داشته باشد به روز رسانی را بررسی کنید دکمه. فقط زمانی که نسخه جدید وارد می شود، یک دکمه کوچک در گوشه سمت راست بالای صفحه ظاهر می شود داشبورد برگه ای که عملکرد به روز رسانی را ارائه می دهد. به روز رسانی نیز بسیار کند است حتی با اتصال 1 گیگابیتی و SSD در گره ها. حدود 90 دقیقه طول کشید تا گره های 1 و 2 را به روز کنم، اما گره 3 هرگز به روز نشد. خوشه من به طور معمول تحت این شرایط کار می کند (بدون در نظر گرفتن مسائل ذکر شده در این مقاله).

Harvester node 3 را نمی توان ارتقا داد.

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

قابلیت ورود به سیستم در سراسر سیستم نسبتاً محدود است

هنگام مواجهه با مشکلات، اولین فکر من این بود که برای عیب یابی به گزارش ها نگاه کنم. آن موقع بود که متوجه شدم حتی در داشبورد مدیریت وجود ندارد. منظورم چیزی معادل است syslog یا dmesg به طور خاص، زیرا Harvester دارد قابلیت های نظارت و ثبت گزارش از طریق رویدادها، متریک ها یا Grafana. دو مورد اول نسبتاً محدود هستند، در حالی که Grafana برای من یک ضربه یا از دست دادن بوده است. من اغلب به دلایلی نمی توانم داده ها را در Grafana مشاهده کنم (به عنوان خطاهایی که در تصویر زیر نشان داده شده است، به علاوه برخی موارد تصادفی دیگر).

# Some errors that prenvent me from using Grafana. They randomly happens.
Templating [job]
Error updating options: no elements in sequence

Templating
Templating init failed Couldn't find variable with id:instance

502 Bad Gateway
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خطای Bad Gateway در Grafana.

دروگر منابع زیادی را مصرف می کند

این به خودی خود لزوماً یک مشکل نیست، اما در مقایسه با راه‌حل‌های دیگر مانند Proxmox یا XCP-ng، Harvester برای اجرا به یک دستگاه قوی نیاز دارد. با توجه به اینکه حدود 6 هسته در یک گره 8 رشته ای 4 هسته ای ذخیره می کند، فکر می کنم یک گره 16 رشته ای 8 هسته ای نقطه شروع بهتری باشد که با توصیه تیم هاروستر مطابقت دارد.

میزبان هاورستر منابع زیادی را مصرف می کنند.

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

سیستم عامل فقط خواندنی است، اما هنوز تا حدی قابل تغییر است

Harvester مبتنی بر openSUSE است، بنابراین فکر کردم بسته های اضافی را می توان مستقیماً از طریق SSH یا کنسول مستقیم روی گره ها نصب کرد. با این حال، Harvester به طور پیش فرض تغییر ناپذیری را در اکثر مکان ها اعمال می کند.

rancher@harvester:~> sudo zypper install smartmontools
The target filesystem is mounted as read-only. Please make sure the target filesystem is writable.
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این حال، چند احتمال برای غلبه بر این تغییر ناپذیری وجود دارد:

  • تصویر نصب را می توان سفارشی کرد.

  • استفاده از تنظیمات ابری برای اعمال تغییرات زمان راه‌اندازی

  • حالت خواندن و نوشتن را برای سیستم به طور موقت فعال کنید.

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

# Harvester only has Vim by default.
# This was done via direct console access on the laptop (F12).

# Step 1: Access logind.conf.
sudo vim /etc/systemd/logind.conf

# Step 2: Make sure the following rows use the "ignore" option, and remove the "#" sign.
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
LidSwitchIgnoreInhibited=no

# Step 3: Mask some system options.
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

# Side note: There are many online discussions regarding on making the laptop not suspended when its lid is close. It seems the answer varies based on your device. On my laptop, the above sequence works, but may not be applicable to yours.
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بسته شدن

در این مقاله، من به مشکلات متعددی که هنگام امتحان کردن هاروستر با آن روبه‌رو هستم، پرداختم.

  • آزاردهنده بودند؟ نوع.

  • آیا انجام آنها سرگرم کننده بود؟ آره!

  • آیا Harvester گزینه خوبی برای مبتدیان است؟ من هم اینچنین فکر میکنم.

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

OpenWRT VM در Harvester می تواند اتصال 1 گیگابیتی را مدیریت کند.


این مقاله برای اولین بار در hangvu.tech منتشر شد: آیا هاروستر یک هایپروایزر خوب برای یک مبتدی است؟ تجربه عملی من

اگر این مقاله را مفید می‌دانید، من تعدادی دیگر برای شما دارم!

و بیایید وصل شویم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا