drbd+ocfs2 تي ٻڌل ننڍڙن ويب ڪلسترن لاءِ ڪلسٽر اسٽوريج

جنهن بابت اسان ڳالهائينداسين:
drbd+ocfs2 حلن جي بنياد تي ٻن سرورن لاءِ جلدي شيئر ٿيل اسٽوريج کي ڪيئن ترتيب ڏيو.

هي ڪنهن لاء مفيد ٿيندو:
اهو سبق سسٽم جي منتظمين ۽ هر ڪنهن لاءِ ڪارائتو هوندو جيڪو اسٽوريج تي عمل ڪرڻ جو طريقو چونڊيو يا حل ڪرڻ چاهي ٿو.

اسان ڪهڙن فيصلن کان انڪار ڪيو ۽ ڇو؟

گهڻو ڪري اسان کي اهڙي صورتحال سان منهن ڏيڻو پوي ٿو جتي اسان کي هڪ ننڍڙي ويب ڪلستر تي سٺي پڙهڻ-لکڻ جي ڪارڪردگي سان حصيداري اسٽوريج کي لاڳو ڪرڻ جي ضرورت آهي. اسان پنھنجي منصوبن لاءِ گڏيل ذخيري کي لاڳو ڪرڻ لاءِ مختلف اختيارن جي ڪوشش ڪئي، پر ڪجھ اسان کي ھڪ ئي وقت ڪيترن ئي اشارن تي مطمئن ڪرڻ جي قابل ٿي ويا. هاڻي اسان توهان کي ٻڌايو ته ڇو.

  • Glusterfs اسان کي پڙهڻ ۽ لکڻ جي ڪارڪردگي سان مطمئن نه ڪيو؛ اتي هڪ وڏي تعداد ۾ فائلن جي پڙهڻ سان مسئلا هئا، ۽ سي پي يو تي هڪ وڏو لوڊ هو. فائلن کي پڙهڻ سان مسئلو حل ٿي سگهي ٿو انهن کي سڌو سنئون اينٽي تائين رسائي سان، پر اهو هميشه لاڳو ناهي ۽ عام طور تي غلط آهي.

  • ڪيف وڌيڪ پيچيدگي پسند نه ڪيو، جيڪو 2-4 سرورز سان منصوبن تي نقصانڪار ٿي سگهي ٿو، خاص طور تي جيڪڏهن پروجيڪٽ بعد ۾ برقرار رکيو وڃي. ٻيهر، اتي سنگين ڪارڪردگي جون حدون آهن جيڪي اسان کي الڳ اسٽوريج ڪلستر ٺاهڻ لاء مجبور ڪن ٿيون، جيئن گلوسٽرفس سان.

  • ھڪڙي اين ايف ايس سرور کي استعمال ڪرڻ لاء حصيداري اسٽوريج کي لاڳو ڪرڻ لاء غلطي رواداري جي لحاظ کان سوال پيدا ڪري ٿي.

  • s3 ڪمن جي هڪ خاص حد تائين هڪ بهترين مقبول حل آهي، پر اهو هڪ فائيل سسٽم ناهي، جيڪو ان جي دائري کي تنگ ڪري ٿو.

  • lsyncd. جيڪڏهن اسان اڳ ۾ ئي "غير فائل سسٽم" بابت ڳالهائڻ شروع ڪيو آهي، پوء اهو هن مشهور حل تي وڃڻ جي قابل آهي. نه رڳو اهو ٻن طرفن جي بدلي لاءِ موزون ناهي (پر جيڪڏهن توهان واقعي چاهيو ٿا ته پوءِ توهان ڪري سگهو ٿا)، اهو پڻ وڏي تعداد ۾ فائلن تي مستحڪم ڪم نٿو ڪري. هر شي ۾ هڪ سٺو اضافو اهو آهي ته اهو هڪ واحد موضوع آهي. ان جو سبب پروگرام جي فن تعمير ۾ آهي: اهو ڪم جي شين جي نگراني ڪرڻ لاءِ inotify استعمال ڪري ٿو جيڪو اهو شروع ڪرڻ ۽ ٻيهر اسڪيننگ دوران تفويض ڪري ٿو. rsync منتقلي وچولي طور استعمال ڪيو ويندو آهي.

سبق: drbd+ocfs2 جي بنياد تي شيئر ٿيل اسٽوريج کي ڪيئن لڳايو وڃي

اسان لاءِ سڀ کان وڌيڪ آسان حلن مان هڪ لنڪ هو ocfs2+drbd. ھاڻي اسان توھان کي ٻڌائي سگھون ٿا ته توھان ڪيئن جلدي ترتيب ڏئي سگھوٿا گڏيل اسٽوريج ٻن سرورن لاءِ ھڪ حل ڊيٽابيس جي بنياد تي. پر پهرين، اجزاء بابت ٿورڙو:

ڊي آر بي ڊي - معياري لينڪس ڊويزن مان هڪ اسٽوريج سسٽم جيڪو توهان کي بلاڪ ۾ سرور جي وچ ۾ ڊيٽا کي نقل ڪرڻ جي اجازت ڏئي ٿو. بنيادي ايپليڪيشن غلطي برداشت ڪرڻ واري اسٽوريج کي تعمير ڪرڻ آهي.

OCFS2 - هڪ فائيل سسٽم جيڪو مهيا ڪري ٿو ساڳئي اسٽوريج جو گڏيل استعمال ڪيترن ئي سسٽم طرفان. لينڪس جي تقسيم ۾ شامل آهي ۽ هڪ ڪنيل ماڊل آهي ۽ FS سان ڪم ڪرڻ لاء يوزر اسپيس اوزار. OCFS2 استعمال ڪري سگھجي ٿو نه رڳو DRBD تي، پر ڪيترن ئي ڪنيڪشن سان گڏ iSCSI تي پڻ. اسان جي مثال ۾ اسان DRBD استعمال ڪندا آهيون.

سڀ ڪارناما ubuntu سرور 18.04 تي گهٽ ۾ گهٽ ترتيب ۾ ڪيا ويا آهن.

قدم 1. DRBD ترتيب ڏيو:

فائل ۾ /etc/drbd.d/drbd0.res اسان بيان ڪريون ٿا اسان جي ورچوئل بلاڪ ڊيوائس /dev/drbd0:

resource drbd0 {
    syncer { rate 1000M; }
    net {
        allow-two-primaries;
        after-sb-0pri discard-zero-changes;
        after-sb-1pri discard-secondary;
        after-sb-2pri disconnect;
    }
    startup { become-primary-on both; }
    on drbd1 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.192:7789;
}
    on drbd2 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.193:7789;
}
}

ميٽا ڊسڪ اندروني - ميٽا ڊيٽا کي ذخيرو ڪرڻ لاءِ ساڳيا بلاڪ ڊوائيسز استعمال ڪريو
ڊوائيس /dev/drbd0 - استعمال ڪريو /dev/drbd0 drbd حجم جي رستي جي طور تي.
ڊسڪ /dev/vdb1 - استعمال ڪريو /dev/vdb1
هم وقت ساز { شرح 1000M؛ } - گيگابٽ چينل بينڊوڊٿ استعمال ڪريو
اجازت-ٻه پرائمري - ھڪڙو اھم اختيار جيڪو ٻن پرائمري سرورز تي تبديلين کي قبول ڪرڻ جي اجازت ڏئي ٿو
بعد-sb-0pri، بعد-sb-1pri، بعد-sb-2pri - اختيار نوڊ جي عملن لاء ذميوار آهن جڏهن اسپلٽبرين کي معلوم ٿئي ٿو. وڌيڪ تفصيل دستاويز ۾ ڳولهي سگهجن ٿا.
بنجي-پرائمري-ٻنهي تي - ٻنهي نوڊس کي پرائمري ڏانهن سيٽ ڪري ٿو.

اسان جي صورت ۾، اسان وٽ ٻه بلڪل هڪجهڙا VMs آهن، هڪ وقف ورچوئل نيٽ ورڪ سان گڏ 10 گيگا بٽس جي ذريعي.

اسان جي مثال ۾، نيٽ ورڪ جا نالا ٻه ڪلستر نوڊس آهن drbd1 ۽ drbd2. مناسب آپريشن لاءِ، توهان کي /etc/hosts ۾ ميزبانن جا نالا ۽ IP پتي ملائڻ گهرجن.

10.10.10.192 drbd1
10.10.10.193 drbd2

قدم 2. سيٽ اپ نوڊس:

ٻنهي سرورن تي اسين هلون ٿا:

drbdadm create-md drbd0

drbd+ocfs2 تي ٻڌل ننڍڙن ويب ڪلسترن لاءِ ڪلسٽر اسٽوريج

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

اسان هيٺ ڏنل حاصل ڪريون ٿا:

drbd+ocfs2 تي ٻڌل ننڍڙن ويب ڪلسترن لاءِ ڪلسٽر اسٽوريج

توهان هم وقت سازي شروع ڪري سگهو ٿا. پهرين نوڊ تي توهان کي عمل ڪرڻ جي ضرورت آهي:

drbdadm primary --force drbd0

اچو ته حالت ڏسو:

cat /proc/drbd

drbd+ocfs2 تي ٻڌل ننڍڙن ويب ڪلسترن لاءِ ڪلسٽر اسٽوريج

عظيم، هم وقت سازي شروع ٿي وئي آهي. اسان آخر تائين انتظار ڪريو ۽ تصوير ڏسو:

drbd+ocfs2 تي ٻڌل ننڍڙن ويب ڪلسترن لاءِ ڪلسٽر اسٽوريج

قدم 3. ٻئي نوڊ تي هم وقت سازي شروع ڪريو:

drbdadm primary --force drbd0

اسان هيٺ ڏنل حاصل ڪريون ٿا:

drbd+ocfs2 تي ٻڌل ننڍڙن ويب ڪلسترن لاءِ ڪلسٽر اسٽوريج

ھاڻي اسان ٻن سرورن مان drbd تي لکي سگھون ٿا.

قدم 4. ocfs2 انسٽال ۽ ترتيب ڏيو.

اسان هڪ انتهائي معمولي تشڪيل استعمال ڪنداسين:

cluster:
     node_count = 2
     name = ocfs2cluster

node:
     number = 1
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.192
     name = drbd1

node:
     number = 2
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.193
     name = drbd2

ان ۾ لکڻ جي ضرورت آهي /etc/ocfs2/cluster.conf ٻنهي نوڊس تي.

اسان ڪنهن به نوڊ تي drbd0 تي FS ٺاهيندا آهيون:

mkfs.ocfs2 -L "testVol" /dev/drbd0

هتي اسان ڊفالٽ پيرا ميٽرز استعمال ڪندي drbd0 تي testVol ليبل سان هڪ فائيل سسٽم ٺاهيو.

drbd+ocfs2 تي ٻڌل ننڍڙن ويب ڪلسترن لاءِ ڪلسٽر اسٽوريج

۾ /etc/default/o2cb توهان کي سيٽ ڪرڻ جي ضرورت آهي (جيئن اسان جي ترتيب واري فائل ۾)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

۽ هر نوڊ تي عمل ڪريو:

o2cb register-cluster ocfs2cluster

پوءِ اسان آن ڪريون ۽ شامل ڪريو سڀئي يونٽ جيڪي اسان کي خودڪار ڪرڻ جي ضرورت آھي:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

ھن مان ڪجھ اڳ ۾ ئي سيٽ اپ جي عمل دوران ھلندو.

قدم 5. ٻنهي نوڊس تي fstab ۾ جبل پوائنٽ شامل ڪريو:

/dev/drbd0 /media/shared ocfs2 defaults,noauto,heartbeat=local 0 0

ڊائريڪٽري /media/shared ان کي اڳ ۾ پيدا ڪيو وڃي.

هتي اسان noauto آپشن استعمال ڪريون ٿا، جنهن جو مطلب آهي ته فائل شروع ٿيڻ تي نصب نه ٿيندي (آئون سسٽم ڊي ذريعي نيٽ ورڪ فائلن کي مائونٽ ڪرڻ کي ترجيح ڏيان ٿو) ۽ heartbeat=local، جنهن جو مطلب آهي هر نوڊ تي دل جي بيٽ سروس استعمال ڪندي. هتي عالمي دل جي ڌڙڪن پڻ آهي، جيڪا وڏي ڪلچر لاءِ وڌيڪ موزون آهي.

اڳيون توهان نصب ڪري سگهو ٿا /media/shared ۽ مواد جي هم وقت سازي کي چيڪ ڪريو.

ٿي ويو! نتيجي طور، اسان حاصل ڪريون ٿا گهٽ يا گهٽ غلطي برداشت ڪرڻ وارو اسٽوريج اسڪاليبلٽي ۽ مهذب ڪارڪردگي سان.

جو ذريعو: www.habr.com

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