CEPH මෙහෙයුම් අත්දැකීම

එක් තැටියක සවි කළ හැකි දත්ත වලට වඩා වැඩි දත්ත ඇති විට, RAID ගැන සිතීමට කාලයයි. කුඩා කල, මම බොහෝ විට මගේ වැඩිහිටියන්ගෙන් අසා ඇත්තෙමි: “එක දවසක RAID අතීතයට අයත් දෙයක් වනු ඇත, වස්තු ගබඩාව ලෝකය පුරවනු ඇත, ඔබ CEPH යනු කුමක්දැයි පවා නොදනී,” එබැවින් මගේ ස්වාධීන ජීවිතයේ පළමු දෙය මගේම පොකුරක් නිර්මාණය කිරීමටයි. අත්හදා බැලීමේ අරමුණ වූයේ ceph හි අභ්‍යන්තර ව්‍යුහය පිළිබඳව දැන හඳුනා ගැනීම සහ එහි යෙදුමේ විෂය පථය අවබෝධ කර ගැනීමයි. මධ්‍යම ප්‍රමාණයේ ව්‍යාපාරවල සහ කුඩා ව්‍යාපාරවල 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) PG බෙදාහැරීමේ කණ්ඩායම් වලට බෙදී ඇති බව උපකල්පනය කෙරේ, ඒ සෑම එකක්ම සමහර තැටිවල අනුපිටපත් කර ඇත. අපි කියමු K=6, N=2, එවිට ඕනෑම තැටි දෙකක් අසමත් වුවහොත්, දත්ත නැතිවීම සහතිකයි, මන්ද සම්භාවිතා න්‍යායට අනුව, මෙම තැටි දෙකෙහි අවම වශයෙන් එක් PG එකක්වත් පවතිනු ඇත. තවද එක් කණ්ඩායමක් අහිමි වීමෙන් සංචිතයේ ඇති සියලුම දත්ත ලබා ගත නොහැක. තැටි යුගල තුනකට බෙදා එක් යුගලයක් තුළ තැටි මත පමණක් දත්ත ගබඩා කිරීමට ඉඩ දෙන්නේ නම්, එවැනි බෙදා හැරීමක් ඕනෑම තැටියක අසාර්ථකත්වයට ද ප්‍රතිරෝධී වේ, නමුත් තැටි දෙකක් අසමත් වුවහොත්, දත්ත නැතිවීමේ සම්භාවිතාව නොවේ. 100%, නමුත් 3/15 පමණි, සහ අසාර්ථක වූ විට පවා තැටි තුනක් - 12/20 පමණි. එබැවින් දත්ත බෙදාහැරීමේ එන්ට්‍රොපි දෝෂ ඉවසීමට දායක නොවේ. ගොනු සේවාදායකයක් සඳහා, නොමිලේ RAM ප්‍රතිචාර වේගය සැලකිය යුතු ලෙස වැඩි කරන බව සලකන්න. සෑම නෝඩයකම මතකය වැඩි වන තරමට සහ සියලු නෝඩ් වල මතකය වැඩි වන තරමට එය වේගවත් වේ. මෙය නිසැකවම තනි සේවාදායකයකට වඩා පොකුරක වාසියක් වන අතර, ඊටත් වඩා, ඉතා කුඩා මතක ප්‍රමාණයක් ගොඩනගා ඇති දෘඪාංග NAS වේ.

යල් පැන ගිය උපකරණ වලින් අවම ආයෝජනයකින් පරිමාණය කිරීමේ හැකියාව ඇති TB දස ගණනක් සඳහා විශ්වාසදායක දත්ත ගබඩා කිරීමේ පද්ධතියක් නිර්මාණය කිරීමට CEPH හොඳ ක්‍රමයක් බව එය අනුගමනය කරයි (මෙහි, ඇත්ත වශයෙන්ම, පිරිවැය අවශ්‍ය වනු ඇත, නමුත් වාණිජ ගබඩා පද්ධතිවලට සාපේක්ෂව කුඩා).

පොකුරු ක්රියාත්මක කිරීම

අත්හදා බැලීම සඳහා, අපි ඉවත් කළ පරිගණකයක් ගනිමු Intel DQ57TM + Intel core i3 540 + 16 GB RAM. අපි 2 TB තැටි හතරක් RAID10 වැනි දෙයකට සංවිධානය කරමු, සාර්ථක පරීක්ෂණයකින් පසු අපි දෙවන නෝඩයක් සහ එම තැටි ගණන එකතු කරමු.

Linux ස්ථාපනය කිරීම. බෙදා හැරීමට අභිරුචිකරණය කිරීමට සහ ස්ථාවර වීමට හැකියාව අවශ්‍ය වේ. Debian සහ Suse අවශ්‍යතා සපුරාලයි. Suse ඔබට ඕනෑම පැකේජයක් අක්‍රිය කිරීමට ඉඩ සලසන වඩාත් නම්‍යශීලී ස්ථාපකයක් ඇත; අවාසනාවකට, පද්ධතියට හානි නොකර ඉවත දැමිය හැකි ඒවා මොනවාදැයි මට සිතාගත නොහැකි විය. Debootstrap Buster භාවිතයෙන් Debian ස්ථාපනය කරන්න. min-base විකල්පය මඟින් ධාවකයන් නොමැති බිඳුණු පද්ධතියක් ස්ථාපනය කරයි. සම්පූර්ණ අනුවාදය හා සසඳන විට විශාලත්වයේ වෙනස කරදර වීමට තරම් විශාල නොවේ. කාර්යය භෞතික යන්ත්‍රයක සිදු කෙරෙන බැවින්, මට අතථ්‍ය යන්ත්‍රවල මෙන් ස්නැප්ෂොට් ගැනීමට අවශ්‍යයි. මෙම විකල්පය LVM හෝ btrfs (හෝ xfs, හෝ zfs - වෙනස විශාල නොවේ) මගින් සපයනු ලැබේ. LVM ස්නැප්ෂොට් ප්‍රබල කරුණක් නොවේ. btrfs ස්ථාපනය කරන්න. අනික bootloader එක තියෙන්නේ MBR එකේ. ඔබට එය 50 MB කොටස් වගු ප්‍රදේශයකට තල්ලු කර පද්ධතිය සඳහා සියලු ඉඩ වෙන් කළ හැකි විට 1 MB තැටියක් FAT කොටස සමඟ අවුල් කිරීමෙන් පලක් නැත. තැටියේ 700 MB දක්වා ගත්තා. මූලික SUSE ස්ථාපනය කොපමණ දැයි මට මතක නැත, මම හිතන්නේ එය 1.1 හෝ 1.4 GB පමණ වේ.

CEPH ස්ථාපනය කරන්න. අපි debian ගබඩාවේ 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 - මෙම සේවාව පොකුරේ සිතියමක් ගබඩා කරයි. එයට සියලුම OSD පිළිබඳ තොරතුරු, OSD වල PG බෙදා හැරීමේ ඇල්ගොරිතමයක් සහ, වඩාත්ම වැදගත් ලෙස, සියලුම වස්තූන් පිළිබඳ තොරතුරු ඇතුළත් වේ (මෙම යාන්ත්‍රණයේ විස්තර මට පැහැදිලි නැත: නාමාවලියක් ඇත /var/lib/ceph/mon/.../ store.db, එහි විශාල ගොනුවක් අඩංගු වේ 26MB, සහ 105K වස්තු පොකුරක් තුළ, එය වස්තුවකට බයිට් 256 කට වඩා ටිකක් වැඩි වේ - මම සිතන්නේ මොනිටරය සියලු වස්තූන් සහ PG ලැයිස්තුවක් ගබඩා කරයි. ඒවා පිහිටා ඇත). මෙම නාමාවලියට හානි වීමෙන් පොකුරේ ඇති සියලුම දත්ත නැති වී යයි. එබැවින් OSD මත PG ස්ථානගත වී ඇති ආකාරය සහ PGs මත වස්තු පිහිටා ඇති ආකාරය CRUSH මගින් පෙන්නුම් කරන බව නිගමනය කරන ලදී - සංවර්ධකයින් මෙම වචනයෙන් වැළකී සිටියද ඒවා දත්ත සමුදාය තුළ කේන්ද්‍රීයව ගබඩා කර ඇත. එහි ප්‍රතිඵලයක් වශයෙන්, පළමුව, අපට පද්ධතිය RO මාදිලියේ ෆ්ලෑෂ් ඩ්‍රයිව් එකක ස්ථාපනය කළ නොහැක, දත්ත සමුදාය නිරන්තරයෙන් සටහන් වන බැවින්, මේවා සඳහා අමතර තැටියක් අවශ්‍ය වේ (1 GB ට වඩා වැඩි), දෙවනුව, එය තිබීම අවශ්‍ය වේ. මෙම පදනම නියම වේලාවට පිටපත් කරන්න. මොනිටර කිහිපයක් තිබේ නම්, දෝෂ ඉවසීම ස්වයංක්‍රීයව සහතික කෙරේ, නමුත් අපගේ නඩුවේ ඇත්තේ එක් මොනිටරයක් ​​පමණි, උපරිම දෙකක්. OSD දත්ත මත පදනම් වූ මොනිටරයක් ​​ප්රතිෂ්ඨාපනය කිරීම සඳහා න්යායික ක්රියා පටිපාටියක් ඇත, මම විවිධ හේතූන් මත තුන් වරක් එය වෙත යොමු වූ අතර, තුන් වරක් දෝෂ සහිත පණිවිඩ මෙන්ම දත්ත නොමැත. අවාසනාවකට, මෙම යාන්ත්රණය ක්රියා නොකරයි. එක්කෝ අපි OSD මත කුඩා කොටසක් ක්‍රියාත්මක කර දත්ත සමුදාය ගබඩා කිරීම සඳහා RAID එකලස් කරමු, එය නිසැකවම ක්‍රියාකාරීත්වයට ඉතා නරක බලපෑමක් ඇති කරයි, නැතහොත් අපි අවම වශයෙන් විශ්වාසදායක භෞතික මාධ්‍ය දෙකක්, වඩාත් සුදුසු USB, වරායන් අල්ලා නොගන්නා ලෙස වෙන් කරමු.

rados-gw - S3 ප්‍රොටෝකෝලය හරහා වස්තු ගබඩාව අපනයනය කරයි. බොහෝ තටාක නිර්මාණය කරයි, එය පැහැදිලි නැත. මම ගොඩක් අත්හදා බැලීම් කළේ නැහැ.

ceph-mgr - මෙම සේවාව ස්ථාපනය කරන විට, මොඩියුල කිහිපයක් දියත් කරනු ලැබේ. ඒවායින් එකක් අක්‍රීය කළ නොහැකි ස්වයංක්‍රීය පරිමාණයයි. එය PG/OSD නිවැරදි ප්‍රමාණය පවත්වා ගැනීමට උත්සාහ කරයි. ඔබට අනුපාතය අතින් පාලනය කිරීමට අවශ්‍ය නම්, ඔබට එක් එක් තටාකය සඳහා පරිමාණය අක්‍රිය කළ හැකිය, නමුත් මෙම අවස්ථාවේදී මොඩියුලය 0 කින් බෙදීමකින් බිඳ වැටෙන අතර පොකුරු තත්ත්වය දෝෂයක් බවට පත්වේ. මොඩියුලය 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

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 හි ප්‍රධාන අලෙවිකරණ වාසිය වන්නේ ක්‍රෂ් - දත්ත පිහිටීම ගණනය කිරීමේ ඇල්ගොරිතමයකි. නිරීක්ෂකයින් මෙම ඇල්ගොරිතම සේවාදායකයින් වෙත බෙදා හරිනු ලබන අතර, ඉන් පසුව සේවාදායකයින් කැමති නෝඩය සහ අපේක්ෂිත OSD ඉල්ලා සිටී. CRUSH කිසිදු මධ්යගතකරණයක් සහතික කරයි. එය ඔබට මුද්‍රණය කර බිත්තියේ එල්ලා තැබිය හැකි කුඩා ගොනුවකි. ක්‍රෂ් යනු සම්පූර්ණ සිතියමක් නොවන බව ප්‍රායෝගිකව පෙන්වා දී ඇත. ඔබ මොනිටර විනාශ කර ප්‍රතිනිර්මාණය කරන්නේ නම්, සියලුම OSD සහ CRUSH තබා ගන්න, එවිට පොකුර යථා තත්ත්වයට පත් කිරීමට මෙය ප්‍රමාණවත් නොවේ. මෙයින් නිගමනය වන්නේ සෑම මොනිටරයක්ම සම්පූර්ණ පොකුර ගැන යම් පාරදත්ත ගබඩා කරන බවයි. මෙම පාර-දත්ත කුඩා ප්‍රමාණය පොකුරේ ප්‍රමාණයට සීමා පනවන්නේ නැත, නමුත් ඒවායේ ආරක්ෂාව සහතික කිරීම අවශ්‍ය වන අතර එමඟින් පද්ධතිය ෆ්ලෑෂ් ඩ්‍රයිව් එකක ස්ථාපනය කිරීමෙන් තැටි ඉතුරුම් ඉවත් කරන අතර නෝඩ් තුනකට වඩා අඩු පොකුරු බැහැර කරයි. විකල්ප විශේෂාංග සම්බන්ධයෙන් සංවර්ධකයාගේ ආක්‍රමණශීලී ප්‍රතිපත්තිය. අවමවාදයට වඩා දුරින්. ප්‍රලේඛනය "අප සතුව ඇති දේට ස්තූතියි, නමුත් එය ඉතා ඉතා සොච්චම්" මට්ටමේ පවතී. අඩු මට්ටමක සේවා සමඟ අන්තර් ක්‍රියා කිරීමේ හැකියාව සපයා ඇත, නමුත් ලේඛන මෙම මාතෘකාවට ඉතා මතුපිටින් ස්පර්ශ කරයි, එබැවින් එය ඔව් යන්නට වඩා බොහෝ දුරට ඉඩ ඇත. හදිසි අවස්ථාවකදී දත්ත ප්රතිසාධනය කිරීමට ප්රායෝගිකව අවස්ථාවක් නොමැත.

ඉදිරි ක්‍රියාමාර්ග සඳහා විකල්ප: CEPH අතහැර සාමාන්‍ය බහු තැටි btrfs (හෝ xfs, zfs) භාවිතා කරන්න, CEPH පිළිබඳ නව තොරතුරු සොයා ගන්න, එය ඔබට නිශ්චිත කොන්දේසි යටතේ ක්‍රියාත්මක කිරීමට ඉඩ සලසයි, ඔබේම ගබඩාව උසස් එකක් ලෙස ලිවීමට උත්සාහ කරන්න. පුහුණුව.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න