CEPH آپریٹنگ تجربہ

جب ایک ڈسک پر فٹ ہونے سے زیادہ ڈیٹا موجود ہو، تو یہ RAID کے بارے میں سوچنے کا وقت ہے۔ بچپن میں، میں نے اکثر اپنے بزرگوں سے سنا: "ایک دن RAID ماضی کی بات ہو جائے گی، اشیاء کا ذخیرہ دنیا بھر جائے گا، اور آپ کو یہ بھی نہیں معلوم کہ CEPH کیا ہے،" تو میری آزاد زندگی میں پہلی چیز میرا اپنا کلسٹر بنانا تھا۔ تجربے کا مقصد سیف کی اندرونی ساخت سے واقف ہونا اور اس کے اطلاق کے دائرہ کار کو سمجھنا تھا۔ درمیانے درجے کے کاروباروں اور چھوٹے کاروباروں میں سیف کا نفاذ کتنا جائز ہے؟ کئی سالوں کے آپریشن اور ڈیٹا کے کچھ ناقابل واپسی نقصانات کے بعد، پیچیدگیوں کی سمجھ پیدا ہوئی کہ سب کچھ اتنا آسان نہیں ہے۔ CEPH کی خصوصیات اس کے وسیع پیمانے پر اپنانے میں رکاوٹیں کھڑی کرتی ہیں، اور ان کی وجہ سے، تجربات اپنے انجام کو پہنچ چکے ہیں۔ ذیل میں اٹھائے گئے تمام اقدامات، حاصل کردہ نتائج اور اخذ کردہ نتائج کی تفصیل ہے۔ اگر باشعور لوگ اپنا تجربہ بیان کریں اور کچھ نکات بیان کریں تو میں مشکور ہوں گا۔

نوٹ: تبصرہ نگاروں نے کچھ مفروضوں میں سنگین غلطیوں کی نشاندہی کی ہے جو پورے مضمون پر نظر ثانی کی ضرورت ہے۔

CEPH حکمت عملی

CEPH کلسٹر صوابدیدی سائز کی ڈسکوں کے صوابدیدی نمبر K کو یکجا کرتا ہے اور ان پر ڈیٹا کو ذخیرہ کرتا ہے، ہر ٹکڑے کو (4 MB بذریعہ ڈیفالٹ) ایک دیئے گئے نمبر N بار کی نقل کرتا ہے۔

آئیے دو ایک جیسی ڈسک کے ساتھ سب سے آسان کیس پر غور کریں۔ ان سے آپ یا تو RAID 1 یا N=2 کے ساتھ ایک کلسٹر جمع کر سکتے ہیں - نتیجہ ایک جیسا ہوگا۔ اگر تین ڈسکیں ہیں اور وہ مختلف سائز کی ہیں، تو N=2 کے ساتھ کلسٹر کو جمع کرنا آسان ہے: کچھ ڈیٹا ڈسک 1 اور 2 پر ہوگا، کچھ ڈسک 1 اور 3 پر ہوگا، اور کچھ ہوں گے۔ 2 اور 3 پر، جبکہ RAID نہیں کرے گا (آپ اس طرح کے RAID کو جمع کر سکتے ہیں، لیکن یہ ایک بگاڑ ہو گا)۔ اگر اس سے بھی زیادہ ڈسکیں ہیں، تو RAID 5 بنانا ممکن ہے؛ CEPH میں ایک analogue - erasure_code ہے، جو ڈویلپرز کے ابتدائی تصورات سے متصادم ہے، اور اس لیے اس پر غور نہیں کیا جاتا۔ RAID 5 فرض کرتا ہے کہ ڈرائیوز کی ایک چھوٹی سی تعداد ہے، جن میں سے سبھی اچھی حالت میں ہیں۔ اگر ایک ناکام ہوجاتا ہے تو، دوسروں کو ڈسک کو تبدیل کرنے اور ڈیٹا کو اس پر بحال کرنے تک روکنا ہوگا۔ CEPH، N>=3 کے ساتھ، پرانی ڈسکوں کے استعمال کی حوصلہ افزائی کرتا ہے، خاص طور پر، اگر آپ ڈیٹا کی ایک کاپی کو ذخیرہ کرنے کے لیے کئی اچھی ڈسکیں رکھتے ہیں، اور بقیہ دو یا تین کاپیاں بڑی تعداد میں پرانی ڈسکوں پر محفوظ کرتے ہیں، تو معلومات محفوظ رہیں گے، کیونکہ ابھی نئی ڈسکیں زندہ ہیں - کوئی مسئلہ نہیں ہے، اور اگر ان میں سے ایک ٹوٹ جاتی ہے، تو پانچ سال سے زیادہ کی سروس لائف والی تین ڈسکوں کی بیک وقت ناکامی، ترجیحاً مختلف سرورز سے، ایک انتہائی امکان نہیں ہے۔ تقریب.

کاپیوں کی تقسیم میں ایک لطیفیت ہے۔ پہلے سے طے شدہ طور پر، یہ فرض کیا جاتا ہے کہ ڈیٹا کو زیادہ (~100 فی ڈسک) پی جی ڈسٹری بیوشن گروپس میں تقسیم کیا گیا ہے، جن میں سے ہر ایک کو کچھ ڈسکوں پر ڈپلیکیٹ کیا گیا ہے۔ آئیے کہتے ہیں K=6، N=2، پھر اگر کوئی دو ڈسکیں ناکام ہوجاتی ہیں، تو ڈیٹا کے ضائع ہونے کی ضمانت ہے، کیونکہ امکانی نظریہ کے مطابق، کم از کم ایک PG ہوگا جو ان دو ڈسکوں پر موجود ہوگا۔ اور ایک گروپ کا نقصان پول میں موجود تمام ڈیٹا کو غیر دستیاب کر دیتا ہے۔ اگر ڈسکوں کو تین جوڑوں میں تقسیم کیا گیا ہے اور ڈیٹا کو صرف ایک جوڑے کے اندر موجود ڈسکوں پر ذخیرہ کرنے کی اجازت ہے، تو ایسی تقسیم کسی ایک ڈسک کے ناکام ہونے کے لیے بھی مزاحم ہے، لیکن اگر دو ڈسکیں ناکام ہو جائیں تو ڈیٹا ضائع ہونے کا امکان نہیں ہے۔ 100%، لیکن صرف 3/15، اور ناکامی کی صورت میں بھی تین ڈسکیں - صرف 12/20۔ لہذا، ڈیٹا کی تقسیم میں اینٹروپی غلطی رواداری میں حصہ نہیں ڈالتی ہے۔ یہ بھی نوٹ کریں کہ فائل سرور کے لیے، مفت RAM ردعمل کی رفتار میں نمایاں اضافہ کرتی ہے۔ ہر نوڈ میں جتنی زیادہ میموری، اور تمام نوڈس میں جتنی زیادہ میموری، یہ اتنی ہی تیز ہوگی۔ یہ بلاشبہ ایک سرور پر کلسٹر کا فائدہ ہے اور اس سے بھی بڑھ کر ایک ہارڈ ویئر NAS، جہاں میموری کی ایک بہت کم مقدار ہوتی ہے۔

یہ مندرجہ ذیل ہے کہ CEPH دسیوں ٹی بی کے لیے ایک قابل اعتماد ڈیٹا سٹوریج سسٹم بنانے کا ایک اچھا طریقہ ہے جس میں فرسودہ آلات سے کم سے کم سرمایہ کاری کے ساتھ پیمانہ کرنے کی صلاحیت ہے (یہاں، یقیناً، لاگت کی ضرورت ہوگی، لیکن تجارتی اسٹوریج سسٹم کے مقابلے میں بہت کم ہے)۔

کلسٹر کا نفاذ

تجربے کے لیے، آئیے ایک ڈیکمشنڈ کمپیوٹر Intel DQ57TM + Intel core i3 540 + 16 GB RAM لیں۔ ہم چار 2 ٹی بی ڈسکوں کو RAID10 جیسی کسی چیز میں ترتیب دیں گے، کامیاب ٹیسٹ کے بعد ہم دوسرا نوڈ اور اتنی ہی تعداد میں ڈسکیں شامل کریں گے۔

لینکس انسٹال کرنا۔ تقسیم کو اپنی مرضی کے مطابق بنانے اور مستحکم ہونے کی صلاحیت کی ضرورت ہوتی ہے۔ Debian اور Suse ضروریات کو پورا کرتے ہیں. سوس کے پاس زیادہ لچکدار انسٹالر ہے جو آپ کو کسی بھی پیکیج کو غیر فعال کرنے کی اجازت دیتا ہے۔ بدقسمتی سے، میں یہ نہیں جان سکا کہ سسٹم کو نقصان پہنچائے بغیر کن کو پھینکا جا سکتا ہے۔ ڈیبوٹسٹریپ بسٹر کا استعمال کرتے ہوئے ڈیبین انسٹال کریں۔ من بیس آپشن ایک ٹوٹا ہوا سسٹم انسٹال کرتا ہے جس میں ڈرائیوروں کی کمی ہوتی ہے۔ مکمل ورژن کے مقابلے سائز میں فرق اتنا بڑا نہیں ہے جتنا پریشان کیا جائے۔ چونکہ کام ایک فزیکل مشین پر کیا جاتا ہے، میں اسنیپ شاٹس لینا چاہتا ہوں، جیسے ورچوئل مشینوں پر۔ یہ اختیار LVM یا btrfs (یا xfs، یا zfs - فرق بڑا نہیں ہے) کے ذریعے فراہم کیا گیا ہے۔ LVM سنیپ شاٹس ایک مضبوط نقطہ نہیں ہیں۔ btrfs انسٹال کریں۔ اور بوٹ لوڈر MBR میں ہے۔ FAT پارٹیشن کے ساتھ 50 MB ڈسک کو بے ترتیبی میں ڈالنے کا کوئی فائدہ نہیں ہے جب آپ اسے 1 MB پارٹیشن ٹیبل ایریا میں دھکیل سکتے ہیں اور سسٹم کے لیے تمام جگہ مختص کر سکتے ہیں۔ ڈسک پر 700 MB لیا گیا۔ مجھے یاد نہیں ہے کہ SUSE کی بنیادی تنصیب کتنی ہے، میرے خیال میں یہ تقریباً 1.1 یا 1.4 GB ہے۔

CEPH انسٹال کریں۔ ہم ڈیبین ریپوزٹری میں ورژن 12 کو نظر انداز کرتے ہیں اور 15.2.3 سائٹ سے براہ راست جڑ جاتے ہیں۔ ہم درج ذیل انتباہات کے ساتھ "CEPH کو دستی طور پر انسٹال کریں" سیکشن کی ہدایات پر عمل کرتے ہیں:

  • ریپوزٹری کو جوڑنے سے پہلے، آپ کو gnupg wget ca-certificates انسٹال کرنا ہوگا۔
  • ریپوزٹری کو جوڑنے کے بعد، لیکن کلسٹر کو انسٹال کرنے سے پہلے، پیکجز کو انسٹال کرنا چھوڑ دیا جاتا ہے: apt -y --no-install-recommends install ceph-common ceph-mon ceph-osd ceph-mds ceph-mgr
  • CEPH کو انسٹال کرتے وقت، نامعلوم وجوہات کی بناء پر، یہ lvm2 کو انسٹال کرنے کی کوشش کرے گا۔ اصولی طور پر، یہ افسوس کی بات نہیں ہے، لیکن تنصیب ناکام ہوجاتی ہے، لہذا CEPH بھی انسٹال نہیں کرے گا۔

    اس پیچ نے مدد کی:

    cat << EOF >> /var/lib/dpkg/status
    Package: lvm2
    Status: install ok installed
    Priority: important
    Section: admin
    Installed-Size: 0
    Maintainer: Debian Adduser Developers <[email protected]>
    Architecture: all
    Multi-Arch: foreign
    Version: 113.118
    Description: No-install
    EOF
    

کلسٹر کا جائزہ

ceph-osd - ڈسک پر ڈیٹا ذخیرہ کرنے کے لیے ذمہ دار ہے۔ ہر ڈسک کے لیے، ایک نیٹ ورک سروس شروع کی جاتی ہے جو اشیاء کو پڑھنے یا لکھنے کی درخواستوں کو قبول کرتی ہے اور اس پر عمل درآمد کرتی ہے۔ ڈسک پر دو پارٹیشنز بنائے گئے ہیں۔ ان میں سے ایک کلسٹر، ڈسک نمبر، اور کلسٹر کی چابیاں کے بارے میں معلومات پر مشتمل ہے۔ ڈسک کو شامل کرتے وقت یہ 1KB معلومات ایک بار بنتی ہے اور اسے تبدیل کرنے کا کبھی نوٹس نہیں لیا گیا۔ دوسری پارٹیشن میں کوئی فائل سسٹم نہیں ہے اور CEPH بائنری ڈیٹا کو اسٹور کرتا ہے۔ پچھلے ورژن میں خودکار تنصیب نے سروس کی معلومات کے لیے 100MB xfs پارٹیشن بنایا۔ میں نے ڈسک کو MBR میں تبدیل کیا اور صرف 16MB مختص کیا - سروس شکایت نہیں کرتی ہے۔ میرے خیال میں xfs کو بغیر کسی پریشانی کے ext سے تبدیل کیا جاسکتا ہے۔ یہ پارٹیشن /var/lib/… میں نصب ہے، جہاں سروس OSD کے بارے میں معلومات پڑھتی ہے اور بلاک ڈیوائس کا حوالہ بھی تلاش کرتی ہے جہاں بائنری ڈیٹا محفوظ ہوتا ہے۔ نظریاتی طور پر، آپ فوری طور پر معاون فائلوں کو /var/lib/… میں رکھ سکتے ہیں، اور پوری ڈسک کو ڈیٹا کے لیے مختص کر سکتے ہیں۔ ceph-deploy کے ذریعے OSD بناتے وقت، /var/lib/… میں پارٹیشن کو ماؤنٹ کرنے کے لیے ایک اصول خود بخود بن جاتا ہے، اور ceph صارف کو مطلوبہ بلاک ڈیوائس کو پڑھنے کے حقوق بھی تفویض کیے جاتے ہیں۔ اگر آپ دستی طور پر انسٹال کرتے ہیں، تو آپ کو یہ خود کرنا چاہیے؛ دستاویزات یہ نہیں کہتی ہیں۔ یہ بھی مشورہ دیا جاتا ہے کہ osd میموری ٹارگٹ پیرامیٹر کی وضاحت کی جائے تاکہ کافی جسمانی میموری موجود ہو۔

ceph-mds. کم سطح پر، CEPH آبجیکٹ اسٹوریج ہے۔ سٹوریج کو بلاک کرنے کی صلاحیت ہر 4MB بلاک کو بطور آبجیکٹ اسٹور کرنے پر آتی ہے۔ فائل اسٹوریج اسی اصول پر کام کرتا ہے۔ دو پول بنائے گئے ہیں: ایک میٹا ڈیٹا کے لیے، دوسرا ڈیٹا کے لیے۔ وہ ایک فائل سسٹم میں مل جاتے ہیں۔ اس وقت، کچھ قسم کا ریکارڈ بنایا گیا ہے، لہذا اگر آپ فائل سسٹم کو حذف کرتے ہیں، لیکن دونوں پولز کو برقرار رکھتے ہیں، تو آپ اسے بحال نہیں کر پائیں گے۔ بلاکس کے ذریعہ فائلیں نکالنے کا ایک طریقہ کار ہے، میں نے اس کا تجربہ نہیں کیا ہے۔ ceph-mds سروس فائل سسٹم تک رسائی کے لیے ذمہ دار ہے۔ ہر فائل سسٹم کو سروس کی ایک الگ مثال کی ضرورت ہوتی ہے۔ ایک "انڈیکس" آپشن ہے، جو آپ کو ایک میں کئی فائل سسٹمز کی جھلک پیدا کرنے کی اجازت دیتا ہے - اس کا تجربہ بھی نہیں کیا گیا۔

Ceph-mon - یہ سروس کلسٹر کا نقشہ محفوظ کرتی ہے۔ اس میں تمام OSDs کے بارے میں معلومات، OSDs میں PGs کی تقسیم کے لیے ایک الگورتھم اور سب سے اہم بات، تمام اشیاء کے بارے میں معلومات شامل ہیں (اس طریقہ کار کی تفصیلات میرے لیے واضح نہیں ہیں: یہاں ایک ڈائریکٹری ہے /var/lib/ceph/mon/…/ store.db، اس میں ایک بڑی فائل ہے جس کی لمبائی 26MB ہے، اور 105K آبجیکٹ کے ایک جھرمٹ میں، یہ 256 بائٹس فی آبجیکٹ سے تھوڑا سا زیادہ ہوتی ہے - میرے خیال میں مانیٹر تمام اشیاء اور PGs کی فہرست محفوظ کرتا ہے جس میں وہ واقع ہیں)۔ اس ڈائریکٹری کو پہنچنے والے نقصان کے نتیجے میں کلسٹر میں موجود تمام ڈیٹا ضائع ہو جاتا ہے۔ لہذا یہ نتیجہ اخذ کیا گیا کہ CRUSH ظاہر کرتا ہے کہ PGs OSD پر کیسے واقع ہیں، اور اشیاء PGs پر کیسے واقع ہیں - وہ ڈیٹا بیس کے اندر مرکزی طور پر محفوظ ہیں، چاہے ڈویلپرز اس لفظ سے کتنا ہی گریز کریں۔ نتیجے کے طور پر، سب سے پہلے، ہم RO موڈ میں ایک فلیش ڈرائیو پر سسٹم کو انسٹال نہیں کر سکتے ہیں، چونکہ ڈیٹا بیس مسلسل ریکارڈ کیا جا رہا ہے، ان کے لئے ایک اضافی ڈسک کی ضرورت ہے (شاید 1 GB سے زیادہ)، دوسرا، یہ ضروری ہے اس بنیاد کو حقیقی وقت میں کاپی کریں۔ اگر متعدد مانیٹر ہوں تو غلطی کی برداشت خود بخود یقینی ہوجاتی ہے، لیکن ہمارے معاملے میں صرف ایک مانیٹر ہے، زیادہ سے زیادہ دو۔ OSD ڈیٹا پر مبنی مانیٹر کو بحال کرنے کا ایک نظریاتی طریقہ کار ہے، میں نے مختلف وجوہات کی بنا پر تین بار اس کا سہارا لیا، اور تین بار کوئی ایرر میسجز نہیں تھے، ساتھ ہی کوئی ڈیٹا بھی نہیں تھا۔ بدقسمتی سے، یہ طریقہ کار کام نہیں کرتا. یا تو ہم OSD پر ایک چھوٹی پارٹیشن چلاتے ہیں اور ڈیٹا بیس کو ذخیرہ کرنے کے لیے ایک RAID اسمبل کرتے ہیں، جس کا یقیناً کارکردگی پر بہت برا اثر پڑے گا، یا ہم کم از کم دو قابل اعتماد فزیکل میڈیا مختص کرتے ہیں، ترجیحاً USB، تاکہ بندرگاہوں پر قبضہ نہ ہو۔

rados-gw - S3 پروٹوکول اور اسی طرح کے ذریعے آبجیکٹ اسٹوریج کو برآمد کرتا ہے۔ بہت سے تالاب بناتا ہے، یہ واضح نہیں ہے کہ کیوں۔ میں نے زیادہ تجربہ نہیں کیا۔

ceph-mgr - اس سروس کو انسٹال کرتے وقت، کئی ماڈیولز لانچ کیے جاتے ہیں۔ ان میں سے ایک آٹو اسکیل ہے جسے غیر فعال نہیں کیا جاسکتا۔ یہ PG/OSD کی صحیح مقدار کو برقرار رکھنے کی کوشش کرتا ہے۔ اگر آپ تناسب کو دستی طور پر کنٹرول کرنا چاہتے ہیں، تو آپ ہر پول کے لیے اسکیلنگ کو غیر فعال کر سکتے ہیں، لیکن اس صورت میں ماڈیول 0 کی تقسیم کے ساتھ کریش ہو جاتا ہے، اور کلسٹر کی حیثیت ERROR بن جاتی ہے۔ ماڈیول Python میں لکھا گیا ہے، اور اگر آپ اس میں ضروری لائن پر تبصرہ کرتے ہیں، تو یہ اس کے غیر فعال ہونے کا باعث بنتا ہے۔ تفصیلات یاد رکھنے میں بہت سست۔

استعمال شدہ ذرائع کی فہرست:

CEPH کی تنصیب
مکمل مانیٹر کی ناکامی سے بازیابی۔

اسکرپٹ کی فہرستیں:

ڈیبوٹسٹریپ کے ذریعے سسٹم کو انسٹال کرنا

blkdev=sdb1
mkfs.btrfs -f /dev/$blkdev
mount /dev/$blkdev /mnt
cd /mnt
for i in {@,@var,@home}; do btrfs subvolume create $i; done
mkdir snapshot @/{var,home}
for i in {var,home}; do mount -o bind @${i} @/$i; done
debootstrap buster @ http://deb.debian.org/debian; echo $?
for i in {dev,proc,sys}; do mount -o bind /$i @/$i; done
cp /etc/bash.bashrc @/etc/

chroot /mnt/@ /bin/bash
echo rbd1 > /etc/hostname
passwd
uuid=`blkid | grep $blkdev | cut -d """ -f 2`
cat << EOF > /etc/fstab
UUID=$uuid / btrfs noatime,nodiratime,subvol=@ 0 1
UUID=$uuid /var btrfs noatime,nodiratime,subvol=@var 0 2
UUID=$uuid /home btrfs noatime,nodiratime,subvol=@home 0 2
EOF
cat << EOF >> /var/lib/dpkg/status
Package: lvm2
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install

Package: sudo
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install
EOF

exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

apt -yq install --no-install-recommends linux-image-amd64 bash-completion ed btrfs-progs grub-pc iproute2 ssh  smartmontools ntfs-3g net-tools man
exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

ایک کلسٹر بنائیں

apt -yq install --no-install-recommends gnupg wget ca-certificates
echo 'deb https://download.ceph.com/debian-octopus/ buster main' >> /etc/apt/sources.list
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
apt update
apt -yq install --no-install-recommends ceph-common ceph-mon

echo 192.168.11.11 rbd1 >> /etc/hosts
uuid=`cat /proc/sys/kernel/random/uuid`
cat << EOF > /etc/ceph/ceph.conf
[global]
fsid = $uuid
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
mon allow pool delete = true
mon host = 192.168.11.11
mon initial members = rbd1
mon max pg per osd = 385
osd crush update on start = false
#osd memory target = 2147483648
osd memory target = 1610612736
osd scrub chunk min = 1
osd scrub chunk max = 2
osd scrub sleep = .2
osd pool default pg autoscale mode = off
osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 1
osd pool default pgp num = 1
[mon]
mgr initial modules = dashboard
EOF

ceph-authtool --create-keyring ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
cp ceph.client.admin.keyring /etc/ceph/
ceph-authtool --create-keyring bootstrap-osd.ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
cp bootstrap-osd.ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
ceph-authtool ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
monmaptool --create --add rbd1 192.168.11.11 --fsid $uuid monmap
rm -R /var/lib/ceph/mon/ceph-rbd1/*
ceph-mon --mkfs -i rbd1 --monmap monmap --keyring ceph.mon.keyring
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-mon@rbd1
systemctl start ceph-mon@rbd1
ceph mon enable-msgr2
ceph status

# dashboard

apt -yq install --no-install-recommends ceph-mgr ceph-mgr-dashboard python3-distutils python3-yaml
mkdir /var/lib/ceph/mgr/ceph-rbd1
ceph auth get-or-create mgr.rbd1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-rbd1/keyring
systemctl enable ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1
ceph config set mgr mgr/dashboard/ssl false
ceph config set mgr mgr/dashboard/server_port 7000
ceph dashboard ac-user-create root 1111115 administrator
systemctl stop ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1

OSD شامل کرنا (حصہ)

apt install ceph-osd

osdnum=`ceph osd create`
mkdir -p /var/lib/ceph/osd/ceph-$osdnum
mkfs -t xfs /dev/sda1
mount -t xfs /dev/sda1 /var/lib/ceph/osd/ceph-$osdnum
cd /var/lib/ceph/osd/ceph-$osdnum
ceph auth get-or-create osd.0 mon 'profile osd' mgr 'profile osd' osd 'allow *' > /var/lib/ceph/osd/ceph-$osdnum/keyring
ln -s /dev/disk/by-partuuid/d8cc3da6-02  block
ceph-osd -i $osdnum --mkfs
#chown ceph:ceph /dev/sd?2
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-osd@$osdnum
systemctl start ceph-osd@$osdnum

خلاصہ

CEPH کا بنیادی مارکیٹنگ فائدہ CRUSH ہے - ڈیٹا کے محل وقوع کا حساب لگانے کے لیے ایک الگورتھم۔ مانیٹر اس الگورتھم کو کلائنٹس میں تقسیم کرتے ہیں، جس کے بعد کلائنٹ براہ راست مطلوبہ نوڈ اور مطلوبہ OSD کی درخواست کرتے ہیں۔ CRUSH کوئی مرکزیت کو یقینی نہیں بناتا ہے۔ یہ ایک چھوٹی فائل ہے جسے آپ پرنٹ کرکے دیوار پر بھی لٹکا سکتے ہیں۔ پریکٹس نے دکھایا ہے کہ CRUSH ایک مکمل نقشہ نہیں ہے۔ اگر آپ تمام OSD اور CRUSH کو مدنظر رکھتے ہوئے مانیٹر کو تباہ اور دوبارہ بناتے ہیں، تو یہ کلسٹر کو بحال کرنے کے لیے کافی نہیں ہے۔ اس سے یہ نتیجہ اخذ کیا جاتا ہے کہ ہر مانیٹر پورے کلسٹر کے بارے میں کچھ میٹا ڈیٹا اسٹور کرتا ہے۔ اس میٹا ڈیٹا کی چھوٹی مقدار کلسٹر کے سائز پر پابندیاں عائد نہیں کرتی ہے، لیکن ان کی حفاظت کو یقینی بنانے کی ضرورت ہوتی ہے، جو سسٹم کو فلیش ڈرائیو پر انسٹال کرکے ڈسک کی بچت کو ختم کرتا ہے اور تین سے کم نوڈس والے کلسٹرز کو خارج کر دیتا ہے۔ اختیاری خصوصیات کے حوالے سے ڈویلپر کی جارحانہ پالیسی۔ minimalism سے دور۔ دستاویزات "ہمارے پاس جو کچھ ہے اس کے لئے آپ کا شکریہ" کی سطح پر ہے، لیکن یہ بہت، بہت کم ہے۔ خدمات کے ساتھ نچلی سطح پر بات چیت کرنے کی اہلیت فراہم کی جاتی ہے، لیکن دستاویزات اس موضوع کو بہت سطحی طور پر چھوتی ہیں، اس لیے اس کا ہاں میں ناں کا امکان زیادہ ہے۔ کسی ہنگامی صورتحال سے ڈیٹا کی وصولی کا عملی طور پر کوئی امکان نہیں ہے۔

مزید کارروائی کے لیے اختیارات: CEPH کو چھوڑ دیں اور banal multi-disk btrfs (یا xfs, zfs) کا استعمال کریں، CEPH کے بارے میں نئی ​​معلومات حاصل کریں، جو آپ کو مخصوص شرائط کے تحت اسے چلانے کی اجازت دے گی، اپنے اسٹوریج کو بطور ایڈوانس لکھنے کی کوشش کریں۔ تربیت.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں