Minio (مینیو) یک سرور ذخیرهسازی شیء توزیعشده متنباز است که با زبان Go نوشته و برای زیرساخت ابر خصوصی طراحی شده و قابلیت ذخیرهسازی S3 را فراهم میکند. این بهترین سروری است که برای ذخیرهسازی دادههای بدون ساختار مانند عکسها، ویدیوها، فایلهای لاگ، بکاپها و کانتینرها مناسب است. اندازه یک شیء میتواند از یک کیلوبایت تا حداکثر ۵ ترابایت باشد. سرور آن به اندازه کافی سبک است تا بتواند پشتههای برنامههایی مانند Redis، MySql و Gitlab را مدیریت کند.
مینیو S3 چگونه به طور کارآمد کار میکند؟
مینیو از چندین backend ذخیرهسازی قابل اتصال، از جمله دیسک محلی، Kubernetes PVC، NAS و
ارائه شده توسط ابر عمومی مانند Azure و GCP پشتیبانی میکند. از کدگذاری پاککن (eraser coding) پشتیبانی میکند که دادهها را تکثیر و تقسیم نموده و آنها را در چندین درایو پخش میکند و در دسترس بودن و قابلیت اطمینان بالایی را فراهم میکند. این سرور دارای یک استقرار مستقل با یک یا چند دیسک و یک کلاستر توزیعشده است که در آن روی میزبانهای مختلف اجرا میشود.دیسکها میتوانند EBS، Google Disk، Ceph RBD، دیسک ISCSI یا هارد دیسک متصل مستقیم باشند، یا میتوانند یک پوشه و پوشه با پشتیبانی NFS باشند. این دیسک از کدگذاری پاککننده استفاده میکند که دادهها را به اشیاء کوچکتر تقسیم میکند و در چندین دیسک پخش میکند و از خرابی دیسک، افزونگی و مقیاسپذیری محافظت میکند.
همچنین میتواند از راهحلهای ذخیرهسازی اشیاء موجود مانند Azure blob storage و ذخیرهسازی شیء در پلتفرم Google Cloud بهره ببرد. این دیسک به عنوان یک لایه شیء S3 به صورت شفاف روی ذخیرهسازی شیء موجود عمل میکند و یک رابط واحد برای دسترسی به چندین ذخیرهسازی ابری فراهم میکند. همچنین، میتوان از آن در محیطهای Docker و Kubernetes موجود برای ارائه ذخیرهسازی شیء به میکروسرویسها استفاده کرد. این دیسکها میتوانند دیسکها را به شکل PVC مصرف کرده و دادهها را روی آنها ذخیره کنند.
مزایای کلیدی استفاده از Minio
مزایای Minio در زیر ذکر شده است:
- سازگاری با API S3 – مینیو از API Amazon S3 پشتیبانی نموده و ادغام آن با برنامههای سازگار با S3 موجود را آسان میکند.
- افزونگی دادهها – با استفاده از Erasure Coding، مینیو تضمین میکند که دادهها در چندین درایو تکثیر و توزیع میشوند و از از دست رفتن دادهها جلوگیری میکند.
- دسترسیپذیری بالا – Minio میتواند در حالت توزیعشده اجرا شود و دسترسی مداوم را حتی در صورت خرابی برخی گرهها یا دیسکها تضمین کند.
- مقیاسپذیری افقی و عمودی – Minio با اضافه کردن سرورهای بیشتر، مقیاسپذیری را افزایش میدهد یا با افزایش ظرفیت ذخیرهسازی در سرورهای موجود، مقیاسپذیری را افزایش میدهد.
- پشتیبانی از چندین پشتیبان ذخیرهسازی قابل اتصال – با دیسکهای محلی، Kubernetes PVC، NAS و ذخیرهسازی ابری عمومی مانند Azure و GCP کار میکند.
- امنیت دادهها – رمزگذاری را در هر دو طرف سرور و کلاینت ارائه میدهد و انتقال و ذخیرهسازی ایمن دادهها را تضمین میکند.
راهنمای گام به گام راهاندازی Minio
پیشنیازهای پیادهسازی Minio:
- یک سرور اوبونتو ۱۶.۰۴ با دنبال کردن تنظیمات اولیه سرور راهاندازی شد.
- یک نام دامنه کاملا ثبت شده.
- با دنبال کردن رکوردهای DNS، سرور خود را راهاندازی کنید.
- یک رکورد با نام سرور شما (minio_server.com) که به آدرس IPv4 سرور شیء شما اشاره میکند.
- نصب Go روی اوبونتو ۱۶.۰۴
- نصب و پیکربندی سرور MINIO
- نصب اسکریپت راهاندازی Systemd
- راهاندازی یک سرور MINIO
- ایمنسازی دسترسی به سرور آن با گواهی SSL/TLS
- اتصال ایمن به آن با رابط وب با استفاده از HTTPS
چرا Minio S3 برای ذخیرهسازی مهم است؟
در این حالت توزیعشده، یک سیستم ذخیرهسازی با قابلیت دسترسی بالا و استقرار ذخیرهسازی شیء واحد راهاندازی میشود. با دستگاههای ذخیرهسازی توزیعشده و بهینه، صرف نظر از موقعیت مکانی در شبکه.
حفاظت از دادهها
در یک راهاندازی توزیعشده، Minio یک سیستم ذخیرهسازی با قابلیت دسترسی بالا و استقرار ذخیرهسازی شیء واحد را تضمین میکند. این سیستم، صرف نظر از موقعیت مکانی، از دستگاههای ذخیرهسازی در سراسر شبکه به طور بهینه استفاده میکند. حالت توزیعشده با استفاده از کدگذاری پاککننده، که به طور خودکار در صورت وجود حداقل چهار دیسک فعال میشود، در برابر خرابی چندین گره و درایو محافظت میکند.
دسترسی بالا
اگر دیسک میزبان سرور مستقل Minio آفلاین شود، از کار میافتد. با این حال، در یک پیکربندی توزیعشده، تا زمانی که دیسکهای بیشتری آنلاین باقی بمانند، دادهها ایمن میمانند. اقدامات S3 مانند عملیات خواندن و نوشتن به طور یکپارچه ادامه مییابند و قابلیت اطمینان را تضمین میکنند.
محدودیتها
Minio از هر دو حالت مستقل و توزیعشده پشتیبانی میکند. پیکربندی توزیعشده Minio S3 به حداقل دو سرور نیاز دارد و تا ۳۲ سرور را پشتیبانی میکند، بدون محدودیت اشتراکگذاری دیسک بین سرورها. برای مقیاسپذیری کارآمد، کاربران میتوانند چندین نمونه Minio را که توسط Kubernetes مدیریت میشوند، راهاندازی کنند. اشیاء لیست S3 و سایر عملیات ذخیرهسازی حتی در مقیاسپذیری نیز کارآمد باقی میمانند.
با خرید وی پی اس از پارسدو، میتوانید از قدرت و پایداری یک ماشین مجازی اختصاصی در ۵ موقعیت جهانی بهرهمند شوید.
بهترین شیوهها برای امنیت Minio S3
مینیو یک ابر خصوصی است که از طریق Docker Compose و حالت Swarm مستقر میشود. تفاوت اصلی بین این دو این است که Docker Compose یک استقرار تک میزبان و چند کانتینری ایجاد میکند، در حالی که حالت Swarm یک استقرار چند میزبان و چند کانتینری ایجاد میکند. این بدان معناست که Docker Compose با آن در رایانهای ایدهآل برای استقرار، آزمایش و مرحلهبندی شروع به کار میکند. استقرار Minio توزیعشده در Swarm، استقرار قویتر و در سطح تولید را ارائه میدهد.
- دسترسی سفارشی و کلیدهای مخفی: از کلیدهای دسترسی و مخفی منحصر به فرد برای ایمنسازی راهاندازی Minio S3 خود استفاده کنید.
- اسرار Docker برای اعتبارنامهها: کلیدهای دسترسی سفارشی و مخفی را با استفاده از اسرار Docker به صورت ایمن ذخیره کنید.
- استقرار Minio به عنوان یک سرویس Docker: یک سرویس Minio S3 ایجاد کنید که اعتبارنامهها را از اسرار Docker بخواند.
- استفاده از فایلهای کلید سفارشی: کلیدهای دسترسی و مخفی را به جای کدگذاری سخت، در فایلها ذخیره کنید.
- بازیابی شناسه کانتینر: کانتینر Minio خود را به طور موثر شناسایی و مدیریت کنید. شروع و توقف کانتینرها: مدیریت صحیح کانتینرهای Mini IO برای حفظ زمان روشن بودن.
- گزارشهای کانتینر Minio: نظارت بر اقدامات S3 و عیبیابی مشکلات با استفاده از گزارشها.
- نظارت بر کانتینرهای Docker: پیگیری عملکرد Minio S3 و سلامت ذخیرهسازی به صورت بلادرنگ.
جمعبندی
Minio S3 یک سرور ذخیرهسازی شیء توزیعشده با کارایی بالا است که برای زیرساختهای ابر خصوصی در مقیاس بزرگ طراحی شده است. این سرور به طور گسترده در سراسر جهان مستقر است و بیش از ۱۶۴.۱ میلیون بار Docker pull دارد.
به عنوان یک سرور توزیعشده Minio S3 که با زبان Go نوشته شده است، تحت Apache نسخه ۲.۰ متنباز است. چه به عنوان Minio یا Mini IO شناخته شود، مقیاسپذیری، قابلیت اطمینان و اقدامات یکپارچه S3 را تضمین میکند و آن را به گزینهای ترجیحی برای راهحلهای ذخیرهسازی ابری تبدیل میکند.