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 وٽ هڪ اينالاگ آهي - erasure_code، جيڪو ڊولپرز جي شروعاتي تصورات سان تضاد ڪري ٿو، ۽ تنهن ڪري سمجهي نه ٿو. RAID 5 فرض ڪري ٿو اتي ڊرائيو جو ننڍڙو تعداد آهي، جن مان سڀئي سٺي حالت ۾ آهن. جيڪڏهن هڪ ناڪام ٿئي ٿي، ٻين کي رکڻ گهرجي جيستائين ڊسڪ کي تبديل نه ڪيو وڃي ۽ ڊيٽا ان کي بحال ڪيو وڃي. CEPH، N>=3 سان، پراڻي ڊسڪ جي استعمال کي حوصلا افزائي ڪري ٿو، خاص طور تي، جيڪڏهن توهان ڊيٽا جي هڪ ڪاپي کي ذخيرو ڪرڻ لاء ڪيتريون سٺيون ڊسڪون رکون ٿا، ۽ باقي ٻه يا ٽي ڪاپيون وڏي تعداد ۾ پراڻي ڊسڪ تي ذخيرو ڪريو، پوء معلومات محفوظ ٿي ويندا، ڇاڪاڻ ته هن وقت تائين نيون ڊسڪون زنده آهن - ڪو به مسئلو ناهي، ۽ جيڪڏهن انهن مان هڪ ٽوڙي، پوء ٽن ڊسڪ جي هڪ ئي وقت ناڪامي پنجن سالن کان وڌيڪ سروس جي زندگي سان، ترجيحي طور تي مختلف سرورز کان، هڪ انتهائي ممڪن ناهي. واقعو.

نقلن جي ورڇ ۾ هڪ ذهين آهي. ڊفالٽ طور، اهو فرض ڪيو ويو آهي ته ڊيٽا ورهايل آهي وڌيڪ (~ 100 في ڊسڪ) پي جي ورهائڻ واري گروپن ۾، جن مان هر هڪ ڪجهه ڊسڪ تي نقل ٿيل آهي. اچو ته چئون K = 6، N = 2، پوء جيڪڏھن ڪا به ٻه ڊسڪ ناڪام ٿئي ٿي، ڊيٽا گم ٿيڻ جي ضمانت آھي، ڇو ته امڪاني نظريي جي مطابق، گھٽ ۾ گھٽ ھڪڙو PG ھوندو جيڪو انھن ٻن ڊسڪ تي واقع ھوندو. ۽ هڪ گروهه جي نقصان کي پول ۾ موجود سڀني ڊيٽا کي دستياب ناهي. جيڪڏهن ڊسڪ کي ٽن جوڙن ۾ ورهايو ويو آهي ۽ ڊيٽا کي صرف هڪ جوڙي اندر ڊسڪ تي ذخيرو ڪرڻ جي اجازت ڏني وئي آهي، پوء اهڙي تقسيم ڪنهن به هڪ ڊسڪ جي ناڪامي لاء مزاحمتي آهي، پر جيڪڏهن ٻه ڊسڪ ناڪام ٿي وڃن ته ڊيٽا جي ضايع ٿيڻ جو امڪان نه آهي. 100٪، پر صرف 3/15، ۽ جيتوڻيڪ ناڪامي جي صورت ۾ ٽي ڊسڪ - صرف 12/20. ان ڪري، ڊيٽا جي ورڇ ۾ اينٽراپي غلطي رواداري ۾ حصو نه ٿو ڏئي. اهو پڻ نوٽ ڪريو ته هڪ فائل سرور لاء، مفت رام خاص طور تي جواب جي رفتار وڌائي ٿو. هر نوڊ ۾ وڌيڪ ميموري، ۽ سڀني نوڊس ۾ وڌيڪ ياداشت، اهو تيز ٿيندو. هي بلاشبہ هڪ واحد سرور تي ڪلستر جو هڪ فائدو آهي ۽ اڃا به وڌيڪ، هڪ هارڊويئر NAS، جتي ميموري جي تمام ننڍڙي مقدار ۾ ٺهيل آهي.

اهو هن ريت آهي ته CEPH هڪ بهترين طريقو آهي هڪ قابل اعتماد ڊيٽا اسٽوريج سسٽم ٺاهڻ لاءِ ڏهن ٽي بي لاءِ پراڻو سامان مان گهٽ ۾ گهٽ سيڙپڪاري سان ماپڻ جي صلاحيت سان (هتي، يقينا، قيمتون گهربل هونديون، پر تجارتي اسٽوريج سسٽم جي مقابلي ۾ ننڍو).

ڪلستر تي عملدرآمد

تجربي لاءِ، اچو ته هڪ ختم ٿيل ڪمپيوٽر Intel DQ57TM + Intel core i3 540 + 16 GB جي رام وٺون. اسان RAID2 وانگر چار 10 TB ڊسڪ کي منظم ڪنداسين، هڪ ڪامياب ٽيسٽ کان پوء اسان هڪ ٻيو نوڊ ۽ ڊسڪ جو ساڳيو تعداد شامل ڪنداسين.

لينڪس انسٽال ڪرڻ. تقسيم کي ڪسٽمائيز ڪرڻ ۽ مستحڪم ٿيڻ جي صلاحيت جي ضرورت آهي. ديبين ۽ سوس گهرجن کي پورا ڪن ٿا. سوس وٽ هڪ وڌيڪ لچڪدار انسٽالر آهي جيڪو توهان کي ڪنهن به پيڪيج کي غير فعال ڪرڻ جي اجازت ڏئي ٿو. بدقسمتي سان، مان سمجهي نه سگهيو آهيان ته سسٽم کي نقصان پهچائڻ کان سواء ڪير اڇلائي سگهجي ٿو. انسٽال ڪريو ڊيبين ڊيبوٽ اسٽريپ بسٽر استعمال ڪندي. مين بيس آپشن هڪ ٽٽل سسٽم کي انسٽال ڪري ٿو جنهن ۾ ڊرائيور نه آهن. مڪمل نسخي جي مقابلي ۾ سائيز ۾ فرق ايترو وڏو ناهي جيترو پريشان ڪرڻ. جيئن ته ڪم جسماني مشين تي ڪيو ويندو آهي، مان اسنيپ شاٽ وٺڻ چاهيان ٿو، جهڙوڪ ورچوئل مشينن تي. هي اختيار يا ته LVM يا btrfs طرفان مهيا ڪيل آهي (يا xfs، يا zfs - فرق وڏو ناهي). LVM سنيپ شاٽ هڪ مضبوط نقطو نه آهن. btrfs انسٽال ڪريو. ۽ بوٽ لوڊر MBR ۾ آهي. 50 MB ڊسڪ کي FAT ورهاڱي سان گڏ ڪرڻ جو ڪو به مقصد ناهي جڏهن توهان ان کي 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-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 کان وڌيڪ)، ٻيو، اهو ضروري آهي ته هڪ RO موڊ ۾. اصل وقت ۾ نقل ڪريو هن بنياد. جيڪڏهن ڪيترائي مانيٽر آهن، ته پوء غلطي رواداري خودڪار طريقي سان يقيني بڻائي ٿي، پر اسان جي صورت ۾ صرف هڪ مانيٽر آهي، وڌ ۾ وڌ ٻه. او ايس ڊي ڊيٽا جي بنياد تي مانيٽر کي بحال ڪرڻ لاء هڪ نظرياتي طريقو آهي، مون مختلف سببن جي ڪري ٽي دفعا ان کي استعمال ڪيو، ۽ ٽي دفعا ڪو به غلط پيغام نه هو، ۽ انهي سان گڏ ڊيٽا نه هئي. بدقسمتي سان، هي ميکانيزم ڪم نٿو ڪري. يا ته اسان او ايس ڊي تي ننڍو ورهاڱو هلائيندا آهيون ۽ ڊيٽابيس کي ذخيرو ڪرڻ لاءِ RAID گڏ ڪندا آهيون، جنهن جو يقيناً ڪارڪردگي تي تمام خراب اثر پوندو، يا اسان گهٽ ۾ گهٽ ٻه قابل اعتماد فزيڪل ميڊيا مختص ڪندا آهيون، ترجيحي طور تي USB، ته جيئن بندرگاهن تي قبضو نه ٿئي.

rados-gw - ايڪسپورٽ اعتراض اسٽوريج ذريعي S3 پروٽوڪول ۽ ساڳي. ڪيترائي تلاء ٺاهي ٿو، اهو واضح ناهي ڇو. مون گهڻو تجربو نه ڪيو.

ceph-mgr - جڏهن هن خدمت کي نصب ڪيو وڃي، ڪيترائي ماڊل شروع ڪيا ويا آهن. انهن مان هڪ آٽو اسڪيل آهي جنهن کي بند نٿو ڪري سگهجي. اهو PG/OSD جي صحيح مقدار کي برقرار رکڻ جي ڪوشش ڪري ٿو. جيڪڏھن توھان چاھيو ٿا تناسب کي دستي طور تي ڪنٽرول ڪريو، توھان ھر پول لاءِ اسڪيلنگ کي بند ڪري سگھو ٿا، پر ھن صورت ۾ ماڊل 0 جي ڊويزن سان حادثو ٿئي ٿو، ۽ ڪلستر جي حيثيت ERROR ٿي وڃي ٿي. ماڊل Python ۾ لکيل آهي، ۽ جيڪڏهن توهان ان ۾ ضروري لائن جو تبصرو ڪيو، اهو ان جي غير فعال ٿيڻ جي ڪري ٿي. تفصيلن کي ياد ڪرڻ لاء تمام سست.

استعمال ٿيل ذريعن جي فهرست:

CEPH جي انسٽاليشن
مڪمل مانيٽر ناڪامي کان بحالي

اسڪرپٽ لسٽنگ:

debootstrap ذريعي سسٽم کي انسٽال ڪرڻ

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

او ايس ڊي شامل ڪرڻ (حصو)

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

تبصرو شامل ڪريو