በdrbd+ocfs2 ላይ በመመስረት ለትናንሽ የድር ስብስቦች የክላስተር ማከማቻ

ስለምን እንነጋገራለን፡-
በ drbd+ocfs2 መፍትሄዎች ላይ በመመስረት ለሁለት አገልጋዮች የጋራ ማከማቻን በፍጥነት እንዴት ማሰማራት እንደሚቻል።

ለማን ይጠቅማል፡-
ትምህርቱ ለስርዓት አስተዳዳሪዎች እና የማከማቻ አተገባበር ዘዴን ለሚመርጥ ወይም መፍትሄን ለመሞከር ለሚፈልግ ለማንኛውም ሰው ጠቃሚ ይሆናል።

የትኞቹን ውሳኔዎች ትተናል እና ለምን?

ብዙ ጊዜ የጋራ ማከማቻን በጥሩ የንባብ ፅሁፍ በትንሽ የድር ክላስተር ላይ መተግበር የሚያስፈልገን ሁኔታ ያጋጥመናል። ለፕሮጀክቶቻችን የተለያዩ የጋራ ማከማቻ አተገባበርን ሞክረናል፣ ነገር ግን ጥቂቶች በአንድ ጊዜ በተለያዩ መንገዶች ሊያረኩን አልቻሉም። አሁን ምክንያቱን እንነግራችኋለን።

  • ግሉስተርፍስ ከማንበብ እና ከመፃፍ አፈፃፀም ጋር አልተስማማንም ፣ ብዙ ፋይሎችን በአንድ ጊዜ ለማንበብ ችግሮች ነበሩ ፣ በሲፒዩ ላይ ከፍተኛ ጭነት ነበር። ፋይሎችን የማንበብ ችግር በቀጥታ በጡብ ውስጥ በመድረስ ሊፈታ ይችላል, ነገር ግን ይህ ሁልጊዜ ተግባራዊ አይሆንም እና በአጠቃላይ ስህተት ነው.

  • ሴፍ ተጨማሪ ውስብስብነቱን አልወደደውም፣ ይህም ከ2-4 አገልጋዮች ባላቸው ፕሮጀክቶች ላይ ሊጎዳ ይችላል፣በተለይ ፕሮጀክቱ በቀጣይነት ከተያዘ። እንደገና፣ ልክ እንደ glusterfs የተለየ የማከማቻ ስብስቦችን እንድትገነቡ የሚያስገድድ ከባድ የአፈጻጸም ገደቦች አሉ።

  • የጋራ ማከማቻን ለመተግበር ነጠላ የ nfs አገልጋይ መጠቀም ከስህተት መቻቻል አንፃር ችግሮችን ያስነሳል።

  • s3 ለተወሰኑ ተግባራት ትልቅ ተወዳጅ መፍትሄ ነው, ነገር ግን የፋይል ስርዓት አይደለም, ይህም ወሰንን ይቀንሳል.

  • ተመሳስሏል ስለ "ፋይል ያልሆኑ ስርዓቶች" መነጋገር ከጀመርን, በዚህ ታዋቂ መፍትሄ ውስጥ ማለፍ ጠቃሚ ነው. ለሁለት መንገድ ልውውጥ ተስማሚ አይደለም (ነገር ግን በእርግጥ ከፈለጉ, ይችላሉ) ብዙ ቁጥር ባላቸው ፋይሎች ላይ በተረጋጋ ሁኔታ አይሰራም. በሁሉም ነገር ላይ ጥሩ መጨመር ነጠላ-ክር ነው. ምክንያቱ በፕሮግራሙ አርክቴክቸር ውስጥ ነው፡- ጅምር ላይ የሚሰቀሉትን የስራ እቃዎች እና ዳግም ሲቃኝ ለመከታተል ኢንኦቲፋይን ይጠቀማል። የማስተላለፊያው መካከለኛ rsync ነው.

አጋዥ ስልጠና፡ በ drbd+ocfs2 ላይ በመመስረት የተጋራ ማከማቻ እንዴት እንደሚሰማራ

ለእኛ በጣም ምቹ ከሆኑ መፍትሄዎች አንዱ ጥቅል ነበር ocfs2+drbd. አሁን የጋራ ማከማቻን ለሁለት የመፍትሄ ዳታቤዝ አገልጋዮች እንዴት በፍጥነት ማሰማራት እንደምትችል እናሳይሃለን። ግን በመጀመሪያ ስለ አካላት ትንሽ

DRBD - የማከማቻ ስርዓት ከሊኑክስ መደበኛ ስርጭት ፣ ይህም በአገልጋይ ብሎኮች መካከል መረጃን እንዲደግሙ ያስችልዎታል። ዋናው መተግበሪያ ስህተትን የሚቋቋሙ ማከማቻዎችን መገንባት ነው።

OCFS2 - ተመሳሳይ ማከማቻ በብዙ ስርዓቶች የጋራ አጠቃቀምን የሚያቀርብ የፋይል ስርዓት። እሱ በሊኑክስ ስርጭት ውስጥ የተካተተ ሲሆን ከኤፍኤስ ጋር ለመስራት የከርነል ሞጁል እና የተጠቃሚ ቦታ መሣሪያ ስብስብ ነው። 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ን እንደ ወደ dbd ድምጽ መንገድ ይጠቀሙ።
ዲስክ / dev/vdb1 - /dev/vdb1 ይጠቀሙ
ማመሳሰል (ተመን 1000M; } - gigabit ባንድዊድዝ ይጠቀሙ
ፍቀድ-ሁለት-ቀዳሚ - በሁለት ዋና አገልጋዮች ላይ ለውጦችን ለመቀበል የሚያስችል አስፈላጊ አማራጭ
በኋላ-sb-0pri, በኋላ-sb-1pri, በኋላ-sb-2pri - የተከፋፈለ አንጎል በሚታወቅበት ጊዜ የመስቀለኛ መንገዱ ድርጊቶች ተጠያቂ የሆኑ አማራጮች። ተጨማሪ ዝርዝሮች በሰነዱ ውስጥ ይገኛሉ.
በሁለቱም ላይ ቀዳሚ ሆነ - ሁለቱንም አንጓዎች ወደ ዋና ያዘጋጃል.

በእኛ ሁኔታ፣ 10 ጊጋቢት የመተላለፊያ ይዘት ያለው ልዩ ምናባዊ አውታረ መረብ ያለው ሁለት ፍጹም ተመሳሳይ ቪኤምዎች አሉን።

በእኛ ምሳሌ፣ የሁለት ክላስተር ኖዶች የአውታረ መረብ ስሞች drbd1 እና drbd2 ናቸው። ለትክክለኛው አሠራር በ /etc/hosts ውስጥ የአስተናጋጆችን ስም እና የአይፒ አድራሻዎች ማዛመድ አስፈላጊ ነው.

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 በሁለቱም አንጓዎች ላይ.

በማንኛውም መስቀለኛ መንገድ ላይ FS በ drbd0 ላይ ይፍጠሩ፡

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

እዚህ ነባሪ መለኪያዎችን በመጠቀም testVol በ drbd0 ላይ የፋይል ስርዓት ፈጥረናል።

በ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

ማውጫ /ሚዲያ/የተጋራ እና አስቀድሞ መፈጠር አለበት.

እዚህ ላይ የ noauto አማራጮችን እንጠቀማለን ይህም ማለት የፋይል ስርዓቱ በሚነሳበት ጊዜ አይጫንም (የኔትወርክ ፋይሎችን በስርዓተ-ፆታ በኩል መጫን እመርጣለሁ) እና የልብ ምት = አካባቢያዊ ይህ ማለት በእያንዳንዱ መስቀለኛ መንገድ ላይ የልብ ምት አገልግሎት ጥቅም ላይ ይውላል ማለት ነው. ለትልቅ ስብስቦች ይበልጥ ተስማሚ የሆነ ዓለም አቀፋዊ የልብ ምትም አለ.

በመቀጠል, መጫን ይችላሉ /ሚዲያ/የተጋራ እና የይዘት ማመሳሰልን ያረጋግጡ።

ተጠናቋል! በውጤቱም፣ ብዙ ወይም ያነሰ ስህተትን የሚቋቋም ማከማቻ እና ጨዋነት ያለው አፈጻጸም እናገኛለን።

ምንጭ: hab.com

አስተያየት ያክሉ