minIO چیست؟ به طور خلاصه، Minio یک سرور ذخیرهسازی آبجکت توزیع شده است که در زبان برنامه نویسی GO ساخته شده و منبع باز است. از این سرور میتوان برای زیرساخت ابر خصوصی و ذخیرهسازی داده S3 استفاده کرد. اگر میخواهید دادههای بدون ساختار مانند عکسها، فیلمها، فایلهای گزارش، پشتیبان گیری و کانتینرها را ذخیره کنید، Minio گزینهی خوبی برای شماست.
اندازه آبجکتها در Minio میتوانند از یک کیلوبایت تا حداکثر 5 ترابایت باشند. سرور Minio با استکهای برنامههایی مانند MySql، Redis و Gitlab سازگار است. امروزه، اکوسیستم ابری دارای انواع استراتژیهای ابری مختلف است که متناسب با سازمانهای مختلف بکارگرفته میشود. بیایید کمی بیشتر دربارهی اینکه minIO چیست و چکار میکند، صحبت کنیم.
Minio چگونه کار میکند؟
Minio از ذخیرهسازی چندگانهی قابل اتصال مانند دیسک محلی، NAS، Kubernetes PVC و ذخیرهسازی آبجکت ارائه شده توسط خدمات ابر عمومی نظیر Azure و GCP پشتیبانی میکند. همچنین، این برنامه از قابلیت eraser coding که دادهها را تکرار و تقسیم میکند و آنها را در چندین درایو پخش میکند و دسترسپذیری و قابلیت اطمینان بالایی دارد، پشتیبانی میکند. تیمهای دواپس با استفاده از Minio میتوانند ذخیرهسازی دادهها را با سهولت و اطمینان بیشتری انجام دهند.
Minio دارای یک استقرار مستقل با یک دیسک واحد یا چندین دیسک است که خوشهی توزیعشده در آن بر روی میزبانهای مختلف اجرا میشود. این دیسکها میتوانند EBS، Google Disk، Ceph RBD، ISCSI disk، هارد دیسک مستقیما متصل شده و یا یک پوشه و پوشهی با پشتیبانی NFS باشند. همانطور که گفتیم، سرور Minio از erasure coding استفاده میکند که دادهها را به آبجکتهای کوچکتر تقسیم کرده و در چندین دیسک پخش میشود و از خرابی دیسک، افزونگی و مقیاسپذیری محافظت میکند.
همچنین، Minio میتواند از راههای ذخیرهسازی آبجکت موجود مانند Azure blob storage یا object storage در پلتفرم ابری گوگل استفاده کند. این سرور به عنوان یک لایهی آبجکت S3 در بالای ذخیرهسازی آبجکت موجود عمل کرده و یک رابط واحد برای دسترسی به فضای ذخیرهسازی چندگانهی Cloud را فراهم میکند. علاوهبراین، میتوانید آن را در محیطهای داکر و Kubernetes که ذخیرهسازی آبجکت را برای میکروسرویسها فراهم میکند، استفاده کنید. لازم به ذکر است که Minio میتواند دیسکها را به شکل PVC مصرف کرده و دادهها را روی آنها ذخیره کند.
مزایای Minio چیست؟
در این قسمت، یاد میگیریم که مزایای minIO چیست و استفاده از آن چه فایدهای برای ما دارد. برخی از مهمترین مزایای Minio عبارتند از:
- سازگاری با S3 API؛
- افزودگی دادهها؛
- دسترسپذیری بالا؛
- مقیاسبندی افقی و عمودی؛
- پشتیبانی از قابلیت ذخیرهسازی چندگانهی قابل حمل (Pluggable)؛
- امنیت بالای دادهها با استفاده از رمزگذاری سمت سرور و کلاینت.
چطور Minio را راه اندازی کنیم؟
حال که با مزایای این ابزار آشنا شدید، آیا میدانید که روش راهاندازی minIO چیست؟ قبل ازاینکه به سراغ روش راهاندازی برویم، میخواهیم پیشنیازهای اجرای Minio را معرفی کنیم:
- یک سرور اوبونتو 16.04 که با تنظیمات اولیهی سرور راهاندازی شده است.
- یک نام دامنهی ثبت شده.
- همراه با رکوردهای DNS، سرور آن راه اندازی شده باشد.
- یک رکورد با نام سرور شما که به آدرس IPv4 آبجکت شما اشاره دارد.
- نصب Go بر روی اوبونتو 16.04.
- نصب و پیکربندی سرور Minio.
- نصب System Startup Script.
- راه اندازی سرور MINIO.
- ایمنسازی دسترسی به سرور با استفاده از نصب گواهینامه SSL/TLS.
- اتصال ایمن به Minio با استفاده از https.
چرا Minio مهم است؟
سوالی که برای بسیاری از افراد پیش میآید این است که دلیل اهمیت minIO چیست و چرا بهتر است از آن استفاده کنیم؟
با استفاده از قابلیت ذخیرهسازی توزیعشدهی Minio میتوانید از دستگاههای ذخیرهسازی به طور بهینه استفاده کرده و صرفنظر از موقعیت مکانی در یک شبکه، سیستم ذخیرهسازیتان را راه اندازی کنید. دلایل دیگری که اهمیت Minio را نشان میدهند عبارتنداز:
حفاظت از دادهها
در Minio، خاصیت توزیع شدگی از چندین گره محافظت میکند و با استفاده از erasure code، خرابی بیتها مدیریت میشوند. حداقل دیسک موردنیاز برای Minio توزیع شده 4 عدد است و erasure code به صورت خودکار در زمان راه اندازی توزیع، اجرا میشود.
قابلیت دسترسپذیری بالا
در صورتی که سرور میزبان دیسک به طور ناگهانی آفلاین شود، سرور Minio مستقل از کار میافتد. همچنین، تا زمانی که دیسکهای بیشتری به صورت آفلاین هستند، راه اندازی Minio با n عدد دیسک با دادههای ایمن، توزیع میشود. در نتیجه، برای ایجاد آبجکت جدید، به حداقل تعداد دیسک نیاز است.
محدودیتها
در سرور Minio یک حالت مستقل وجود دارد که این حالت توزیع شده، برای استفاده، حداقل 2 و حداکثر 32 سرور نیاز دارد. با این حال، هیچ محدودیتی برای دیسکهای به اشتراک گذاشته شده در سرور آن وجود ندارد. در صورتی که تنظیمات متعدد و مکرر نیاز دارید، میتوانید با استفاده از ابزاری مانند کوبرنتیز چندین نمونهی Minio مدیریت شده را راه اندازی کنید.
بهترین حالت استفاده و استقرار Minio چیست؟
Minio یک ابر خصوصی است که از طریق ابزار Docker Compose و حالت Swarm مستقر شده است. تفاوت اصلی بین Docker Compose و Swarm در این است که Docker Compose یک میزبان واحد و استقرار چند کانتینری را ایجاد میکند. این در حالی است که Swarm یک استقرار چندمیزبانه و چندکانتینری ایجاد میکند.
این به این معنی است که Docker Compose را میتوانید با Minio در یک رایانهی ایده آل برای استقرار و آزمایش محیط مرحلهبندیشده استفاده کنید. در عوض، استقرار Minio توزیع شده در Swarm برای اسقرارهای سطح بالاتر استفاده میشود. برخی از قابلیتهای Minio عبارتنداز:
- دسترسی سفارشی و کلیدهای مخفی Minio؛
- دسترسی سفارشی و کلیدهای مخفی Minio با استفاده از Docker secrets؛
- ایجاد یک سرویس Minio با استفاده از Docker service برای خواندن از Docker secrets؛
- دسترسی سفارشی و فایلهای کلید مخفی Minio؛
- شناسهی Retrieving Container،
- راهاندازی و توقف کانتینرها؛
- logهای کانتینر Minio؛
- نظارت Docker Container.
سخن پایانی
Minio یکی از بهترین فضاهای ذخیرهسازی ابری خصوصی است. در واقع، Minio یک سرور ذخیرهسازی آبجکت توزیع شده با کارایی بالاست که با هدف مدیریت زیرساختهای ابر خصوصی در مقیاس بزرگ طراحی شده است.
آمارها نشان میدهند در حال حاضر، بیش از 164 میلیون سرور Minio با Docker pulls مستقر شده است. Minio در محیط برنامه نویسی Go و تحت نسخهی 2.0 آپاچی ساخته شده و یک پروژهی منبع باز و رایگان است.