MinIo للصغار

يعد MinIO حلاً رائعًا عندما تحتاج إلى تنظيم تخزين الكائنات بسهولة ويسر. التخصيص الأساسي والمنصات المتعددة والأداء الجيد قد قاموا بعملهم في مجال حب الناس. لذلك لم يكن لدينا طريقة أخرى سوى الإعلان عن توافق Veeam Backup & Replication و MinIO قبل شهر . بما في ذلك ميزة مهمة مثل الثبات. في الواقع ، يحتوي MinIO على قسم كامل في الوثائق المخصصة لتكاملنا .



لذلك سنتحدث اليوم عن كيفية:



  • إعداد MinIO سريع جدًا.
  • يعد إعداد MinIO أسرع قليلاً ، ولكنه أفضل بكثير.
  • استخدمه كطبقة أرشيف لمستودع Veeam SOBR القابل للتطوير.






ما أنت؟



مقدمة قصيرة لأولئك الذين لم يواجهوا MinIO. إنه تخزين كائن مفتوح المصدر متوافق مع Amazon S3 API. تم إصداره بموجب ترخيص Apache v2 ويلتزم بفلسفة الحد الأدنى من Spartan.



أي أنه لا يحتوي على واجهة مستخدم رسومية مترامية الأطراف مع لوحات معلومات ومخططات وقوائم عديدة. يبدأ MinIO ببساطة خادمه بأمر واحد ، حيث يمكنك ببساطة تخزين البيانات باستخدام القوة الكاملة لـ S3 API. لكن تجدر الإشارة إلى أن هذه البساطة يمكن أن تكون خادعة عندما يتعلق الأمر بالموارد المستخدمة. يتم امتصاص ذاكرة الوصول العشوائي (RAM) ووحدة المعالجة المركزية (CPU) جيدًا ، ولكن الأسباب ستكون أدناه. وبالمناسبة ، تستخدم الحصادات مثل FreeNAS و TrueNAS MinIO تحت الغطاء.



يمكن إكمال هذه المقدمة.



إعداد MinIO سريع جدًا



إعداده سريع جدًا لدرجة أننا سنقوم بتغطيته لنظامي التشغيل Windows و Linux. هناك خيارات لـ docker و kubernetis وحتى لـ makosi ، لكن المعنى سيكون هو نفسه في كل مكان.



لذلك ، في حالة Windows ، انتقل إلى الموقع الرسمي https://min.io/download#/windows وقم بتنزيل أحدث إصدار. في نفس المكان نلتزم بإرشادات الإطلاق:



 minio.exe server F:\Data


وهناك أيضًا رابط إلى دليل البدء السريع المفصل قليلاً . لا فائدة من عدم تصديق التعليمات ، لذلك نجري ونحصل على شيء كهذا.





هذا كل شئ! التخزين يعمل ويمكنك البدء في العمل به. لم أكن أمزح عندما قلت أن MinIO هو بساطتها ويعمل فقط. إذا اتبعت الرابط المقترح عند بدء التشغيل ، فسيكون الحد الأقصى من الوظائف المتاحة هناك هو إنشاء دلو. ويمكنك البدء في كتابة البيانات.



بالنسبة لمحبي Linux ، يظل كل شيء أقل بساطة. أبسط التعليمات:




wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data


ستكون النتيجة غير قابلة للتمييز عما شوهد سابقًا. 



يعد إعداد MinIO أكثر فائدة



كما نفهمها ، الفقرة السابقة مؤذية لأغراض الاختبار. وبصراحة ، نستخدم MinIO على نطاق واسع لاختبار MinIO ، وهو أمر لا نخجل منه على الإطلاق. بالطبع ، إنه يعمل ، لكن من العار أن تتحمل مثل هذا الشيء خارج مقاعد الاختبار. لذلك ، نأخذ الملف بين أيدينا ونبدأ في استعادته إلى الذهن.



HTTPS



أول خطوة إلزامية في طريق الإنتاج هي التشفير. يوجد بالفعل مليون وألف دليل على الشبكة لإضافة شهادات إلى MiniIO ، لكن خطتهم العامة هي كما يلي:



  • قم بإنشاء شهادة
  • في حالة Windows ، ضعه في C: \ Users \٪ User٪ \. Minio \ certs
  • في حالة Linux في $ {HOME} /. Minio / certs 
  • نعيد تشغيل الخادم


إن تطبيق Let's Encrypt العادي ممل وموصوف في كل مكان ، لذا فإن مسارنا هو مسار الساموراي ، لذلك في حالة Windows نقوم بتنزيل Cygwin ، وفي حالة Linux ، نتحقق فقط من تثبيت opensl. والقيام ببعض سحر وحدة التحكم:



  • إنشاء مفاتيح: openssl ecparam -genkey -name prime256v1 | opensl ec -out private.key
  • إنشاء شهادة بالمفتاح: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • انسخ ملف private.key و public.crt إلى المجلد أعلاه
  • أعد تشغيل MinIO


إذا سار كل شيء كما ينبغي ، فستظهر في الحالة الأسطر التالية.





قم بتشغيل MinIO Erasure Coding



اولا بضع كلمات عن الموضوع باختصار: إنها حماية البيانات المستندة إلى البرامج من التلف والخسارة. مثل الغارة ، فقط أكثر موثوقية. في حين أن RAID6 الكلاسيكي يمكن أن يخسر محركي أقراص ، إلا أن MinIO مريحة في خسارة النصف. تم وصف التكنولوجيا بمزيد من التفصيل في الدليل الرسمي . ولكن إذا كنت تأخذ الجوهر نفسه ، فهذا هو تنفيذ أكواد Reed-Solomon: يتم تخزين جميع المعلومات في شكل كتل بيانات ، توجد بها كتل تماثل. ويبدو أن كل هذا قد تم بالفعل عدة مرات ، فقط هناك "لكن" هام: يمكننا تحديد نسبة كتل التكافؤ إلى كتل البيانات للأشياء المخزنة.

تريد 1: 1؟ مرحبا بك!

تريد 5: 2؟ ليس هناك أى مشكلة!



وظيفة مهمة للغاية إذا كنت تستخدم عدة عقد في وقت واحد وتريد أن تجد التوازن الخاص بك بين أقصى أمان للبيانات والموارد المستهلكة. من خارج الصندوق ، يستخدم MinIO الصيغة N / 2 (حيث N هو العدد الإجمالي للأقراص) ، أي يقسم البيانات الخاصة بك بين أقراص البيانات N / 2 وأقراص التماثل N / 2. الترجمة إلى إنسان: يمكنك أن تفقد نصف الأقراص وتستعيد البيانات. يتم تعيين هذه النسبة من خلال فئة التخزين ، مما يسمح لك باختيار أيهما أكثر أهمية بشكل مستقل: الموثوقية أو السعة.



يقدم الدليل مثالاً: لنفترض أن لديك تثبيتًا على 16 قرصًا وتحتاج إلى حفظ ملف بحجم 100 ميغابايت. إذا تم استخدام الإعدادات الافتراضية (8 أقراص للبيانات ، و 8 لكتل ​​التكافؤ) ، فسيشغل الملف في النهاية ضعف الحجم تقريبًا ، أي 200 ميجا بايت. إذا كانت نسبة محرك الأقراص 10/6 ، فستحتاج إلى 160 ميغابايت. 14/2 - 114 ميجا بايت.



اختلاف مهم آخر عن الغارات: في حالة إسقاط الأقراص ، سيعمل MinIO على مستوى الكائن ، ويستعيد واحدًا تلو الآخر دون إيقاف النظام بأكمله. بينما ستضطر الغارة العادية إلى استعادة الحجم بالكامل ، الأمر الذي سيستغرق وقتًا غير متوقع. في ذاكرة المؤلف ، تم سرد الرف القرصي ، بعد فقدان قرصين ، لمدة أسبوع ونصف. كان الأمر غير سار للغاية.



وملاحظة مهمة: يقسم MinIO جميع الأقراص لـ Erasure Coding إلى مجموعات من 4 إلى 16 قرصًا ، باستخدام أكبر حجم ممكن للمجموعة. وفي المستقبل ، سيتم تخزين معلومة واحدة فقط ضمن مجموعة واحدة.



كل هذا يبدو رائعًا ، ولكن ما مدى صعوبة الإعداد؟ دعنا نلقي نظرة. نأخذ الأمر للبدء ونقوم ببساطة بإدراج الأقراص التي نحتاج إلى إنشاء تخزين عليها. إذا تم كل شيء بشكل صحيح ، فسنرى في التقرير عدد الأقراص المستخدمة. والنصيحة أنه من غير المجدي إضافة نصف الأقراص إلى مضيف واحد في وقت واحد ، لأن هذا يمثل خسارة في البيانات.



c:\minio>minio.exe server F:\ G:\ H:\ I:\ J:\ K:\




علاوة على ذلك ، للتحكم في الخادم MinIO وتخصيصه ، نحتاج إلى وكيل ، يمكنك تنزيله جميعًا من خلال الموقع الرسمي.



من أجل عدم محو أصابعك ، في كل مرة تكتب فيها العنوان ومفاتيح الوصول (وهي غير آمنة) ، من الملائم في البداية إنشاء اسم مستعار على الفور باستخدام صيغة mc alias set <YOUR-MINIO-ENDPOINT> [YOUR-ACCESS-KEY] [YOUR-SECRET- مفتاح]



mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKE


أو يمكنك إضافة مضيفك مباشرة:



mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEY


وبعد ذلك سنقوم بإنشاء دلو ثابت مع فريق جميل



mc mb --debug -l veeamS3/immutable 

mc: <DEBUG> PUT /immutable/ HTTP/1.1
Host: 172.17.32.52:9000
User-Agent: MinIO (windows; amd64) minio-go/v7.0.5 mc/2020-08-08T02:33:58Z
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20200819/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-bucket-object-lock-enabled;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Bucket-Object-Lock-Enabled: true
X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
X-Amz-Date: 20200819T092241Z
Accept-Encoding: gzip
mc: <DEBUG> HTTP/1.1 200 OK
Content-Length: 0
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Date: Wed, 19 Aug 2020 09:22:42 GMT
Location: /immutable
Server: MinIO/RELEASE.2020-08-16T18-39-38Z
Vary: Origin
X-Amz-Request-Id: 162CA0F9A3A3AEA0
X-Xss-Protection: 1; mode=block
mc: <DEBUG> Response Time:  253.0017ms


--debug يسمح لك برؤية ليس فقط الرسالة النهائية ، ولكن المزيد من المعلومات التفصيلية. 



-l تعني --with-lock ، مما يعني أنه غير قابل للتغيير.



إذا عدنا الآن إلى واجهة الويب ، فستظهر الحاوية الجديدة لدينا هناك.





هذا كل شئ حتى الان. لقد أنشأنا مخزنًا آمنًا ومستعدون للانتقال إلى التكامل مع Veeam.



يمكنك أيضًا التأكد من أن كل شيء يعمل بشكل مثالي:



c:\minio>mc admin info veeamS3

●  172.17.32.52:9000
   Uptime: 32 minutes
   Version: 2020-08-16T18:39:38Z
   Network: 1/1 OK
   Drives: 6/6 OK
0 B Used, 1 Bucket, 0 Objects
6 drives online, 0 drives offline


MinIO و Veeam



انتباه! إذا كنت تريد العمل عبر HTTP لسبب لا يصدق ، فعندئذٍ على HKEY_LOCAL_MACHINE \ SOFTWARE \ Veeam \ Veeam Backup and Replication \ قم بإنشاء مفتاح DWORD SOBRArchiveS3DisableTLS. اضبط قيمته على 1 وتذكر أننا نرفض بشدة مثل هذا السلوك ولا نوصي به لأي شخص.



إنتباه مرة أخرى! إذا واصلت استخدام Windows 2008 R2 ، بسبب بعض سوء الفهم ، فعند محاولة توصيل MinIO بـ Veeam ، ستتلقى على الأرجح خطأً مشابهًا لما يلي: فشل إنشاء اتصال بنقطة نهاية Amazon S3. يتم التعامل مع هذا من خلال تصحيح رسمي من Microsoft .



حسنًا ، انتهت الاستعدادات ، فلنفتح واجهة VBR وانتقل إلى علامة التبويب Backup Infrastructure ، حيث سنقوم باستدعاء المعالج لإضافة مستودع جديد.





بالطبع ، نحن مهتمون بتخزين الكائنات ، وبالتحديد S3 Compatible. في المعالج المفتوح ، قم بتعيين الاسم ، وانتقل من خلال الخطوات مع العنوان والحساب. إذا لزم الأمر ، لا تنس تحديد البوابة التي سيتم من خلالها إرسال الطلبات إلى التخزين.





ثم حدد الحاوية والمجلد وحدد خانة الاختيار جعل النسخ الاحتياطية الحديثة غير قابلة للتغيير. أو لا. ولكن نظرًا لأننا أنشأنا مستودعًا يدعم هذه الوظيفة ، فسيكون من الخطيئة عدم استخدامها.





التالي> انتهى واستمتع بالنتيجة.



أنت الآن بحاجة إلى إضافته إلى مستودع SOBR كطبقة سعة. للقيام بذلك ، قم بإنشاء واحدة جديدة ، أو قم بتحرير القائمة الموجودة. نحن مهتمون بخطوة مستوى السعة.





هنا نحتاج إلى اختيار السيناريو الذي سنعمل معه. تم وصف جميع الخيارات بشكل جيد في مقال آخر ، لذلك لن أكرر نفسي



وبعد اكتمال المعالج ، سيتم تشغيل مهام نسخ النسخ الاحتياطية أو نقلها تلقائيًا. ولكن إذا لم يكن من ضمن خططك إصدار الحمل على جميع الأنظمة على الفور ، فتأكد من تعيين الفواصل الزمنية المسموح بها للعمل مع زر النافذة.





وبالطبع ، يمكنك عمل نسخ احتياطية منفصلة. يعتقد بعض الناس أن هذا أكثر ملاءمة ، نظرًا لأنها أكثر شفافية ويمكن التنبؤ بها إلى حد ما بالنسبة للمستخدم الذي لا يريد الخوض في تفاصيل عمل معرض التصوير الرأسمالي. وهناك تفاصيل كافية ، لذا أوصي مرة أخرى بالمقال المقابل من الرابط أعلاه.



وأخيرًا - الإجابة على السؤال الخبيث: ماذا سيحدث إذا استمررت في أخذ النسخة الاحتياطية وحاولت إزالة النسخة الاحتياطية من متجر غير قابل للتغيير؟



هنا الجواب:





هذا كل شيء لهذا اليوم. تقليديا ، قم بقراءة قائمة بالموضوعات المفيدة حول الموضوع:






All Articles