Bcachefs Linux Kernel වෙත ප්‍රවර්ධනය කිරීම

ලිනක්ස් කර්නලයේ කොටසක් වන BCache SSD බ්ලොක් උපාංග හැඹිලි පද්ධතියේ කතුවරයා වන Kent Overstreet, LSFMM 2023 සම්මන්ත්‍රණයේදී (Linux Storage, Filesystem, Memory Management) ඔහුගේ කතාවේදී Bcachefs ගොනු පද්ධතිය ප්‍රවර්ධනය කිරීමේ කාර්යයේ ප්‍රතිඵල සාරාංශ කළේය. සහ BPF සමුලුව). මැයි මාසයේදී, ලිනක්ස් කර්නලයේ ප්‍රධාන සංයුතිය සමාලෝචනය සහ ඇතුළත් කිරීම සඳහා Bcachefs FS ක්‍රියාත්මක කිරීම සමඟ යාවත්කාලීන කළ පැච් කට්ටලයක් යෝජනා කරන ලදී. FS Bcachefs වසර 10 ක් පමණ සංවර්ධනය වෙමින් පවතී. හරයට ඇතුළත් කිරීමට පෙර Bcachefs ක්‍රියාත්මක කිරීම සමාලෝචනය කිරීමේ සූදානම 2020 අවසානයේ ප්‍රකාශයට පත් කරන ලද අතර, පැච් වල වර්තමාන අනුවාදය පෙර සමාලෝචනයේදී හඳුනාගත් අදහස් සහ අඩුපාඩු සැලකිල්ලට ගනී.

Bcachefs සංවර්ධන ඉලක්කය වන්නේ, Btrfs සහ ZFS හි ආවේනික අමතර විශේෂාංග සපයන අතරම, කාර්ය සාධනය, විශ්වසනීයත්වය සහ පරිමාණය තුළ XFS මට්ටමට ළඟාවීමයි, එනම් කොටසක් තුළ බහුවිධ උපාංග ඇතුළත් කිරීම, බහු ස්ථර ගබඩා පිරිසැලසුම්, අනුකරණය (RAID 1/10), හැඹිලිගත කිරීම, විනිවිද පෙනෙන දත්ත සම්පීඩනය (LZ4, gzip සහ ZSTD මාතයන්), රාජ්‍ය පෙති (snapshots), චෙක්සම් මගින් අඛණ්ඩතාව තහවුරු කිරීම, Reed-Solomon දෝෂ නිවැරදි කිරීමේ කේත ගබඩා කිරීමේ හැකියාව (RAID 5/6), සංකේතාත්මක තොරතුරු ගබඩා කිරීම (ChaCha20 සහ Poly1305 භාවිතා කරනු ලැබේ). කාර්ය සාධනය අනුව, Bcachefs Btrfs සහ අනෙකුත් ගොනු පද්ධති වලට වඩා ඉදිරියෙන් සිටින අතර, පිටපත්-මත-ලිවීමේ යාන්ත්‍රණය මත පදනම් වූ අතර, Ext4 සහ XFS වලට ආසන්න කාර්ය සාධනය පෙන්නුම් කරයි.

Bcachefs හි සංවර්ධනයේ නවතම ජයග්‍රහණ අතරින්, ලිවීම සඳහා ලබා ගත හැකි ස්නැප්ෂොට් ක්‍රියාත්මක කිරීමේ ස්ථාවරත්වය සටහන් වේ. Btrfs හා සසඳන විට, Bcachefs හි ස්නැප්ෂොට් දැන් වඩා හොඳින් පරිමාණය කළ හැකි අතර Btrfs හි ආවේනික ගැටළු වලින් නිදහස් වේ. ප්රායෝගිකව, MySQL උපස්ථ සංවිධානය කිරීමේදී ස්නැප්ෂොට් වල කාර්යය පරීක්ෂා කරන ලදී. පරිමාණය වැඩි දියුණු කිරීම සඳහා Bcachefs ද විශාල වැඩ කොටසක් කර ඇත - ගොනු පද්ධතිය 100 TB ආචයනය තුළ පරීක්ෂා කිරීමේදී හොඳින් ක්‍රියා කර ඇති අතර නුදුරු අනාගතයේ දී Bcachefs 1 PB ගබඩාවක ක්‍රියාත්මක කිරීමට අපේක්ෂා කෙරේ. "පිටපත් මත ලිවීම" (nocow) යාන්ත්‍රණය අක්‍රිය කිරීමට නව nocow මාදිලියක් එක් කර ඇත. ගිම්හානයේදී, දෝෂ නිවැරදි කිරීමේ කේත සහ RAIDZ ක්‍රියාත්මක කිරීම ස්ථාවර තත්වයකට ගෙන ඒමට මෙන්ම fsck උපයෝගීතාව සමඟ ගොනු පද්ධති ප්‍රතිසාධනය කිරීමේදී සහ පරීක්ෂා කිරීමේදී ඉහළ මතක පරිභෝජනය සමඟ ගැටළු විසඳීමට ඔවුන් සැලසුම් කරයි.

අනාගතය සඳහා වන සැලසුම් අතුරින්, Bcachefs සංවර්ධනය කිරීමේදී රස්ට් භාෂාව භාවිතා කිරීමට ඇති ආශාව සඳහන් වේ. Bcachefs කතුවරයාට අනුව, ඔහු කේත කිරීමට, ඩීබග් කිරීමට නොව, වඩා හොඳ විකල්පයක් ඇති විට C වලින් කේතය ලිවීමට පිස්සු ය. සමහර පරිශීලක-අවකාශ උපයෝගිතා ක්‍රියාත්මක කිරීමේදී රස්ට් දැනටමත් Bcachefs හි සම්බන්ධ වී ඇත. එපමනක් නොව, මෙම භාෂාව භාවිතා කිරීමෙන් නිදොස් කිරීමේ කාලය සැලකිය යුතු ලෙස ඉතිරි වන බැවින් ක්‍රමයෙන් Bcachefs රස්ට් හි සම්පූර්ණයෙන්ම නැවත ලිවීමේ අදහස සකස් වෙමින් පවතී.

Bcachefs ලිනක්ස් කර්නලයේ ප්‍රධාන ධාරාවට ගෙන යාම සම්බන්ධයෙන්, සමාලෝචනය කිරීමට අපහසු වන විශාල වෙනස්කම් (පැච් 2500 ක් සහ කේත රේඛා 90 ක් පමණ) නිසා දරුකමට හදා ගැනීමේ ක්‍රියාවලිය ප්‍රමාද විය හැක. සමාලෝචනය වේගවත් කිරීම සඳහා, සමහර සංවර්ධකයින් පැච් මාලාව කුඩා සහ තාර්කිකව වෙන් කරන ලද කොටස් වලට කැඩීමට යෝජනා කර ඇත. සාකච්ඡාව අතරතුර, සමහර සහභාගිවන්නන් එක් සංවර්ධකයෙකු විසින් ව්‍යාපෘතිය සංවර්ධනය කිරීම සහ එහි සංවර්ධකයාට යම් දෙයක් සිදුවුවහොත් කේතය නඩත්තු නොකර ඉතිරි විය හැකි අන්තරාය පිළිබඳව ද අවධානය යොමු කරන ලදී (Red Hat සේවකයින් දෙදෙනෙකු ව්‍යාපෘතියට උනන්දුවක් දක්වයි, නමුත් ඔවුන්ගේ වැඩ තවමත් පවතී. සීමිත දෝෂ නිවැරදි කිරීම්).

Bcachefs සංවර්ධනය කර ඇත්තේ Bcache block උපාංගයේ සංවර්ධනයේදී දැනටමත් පරීක්‍ෂා කර ඇති තාක්‍ෂණයන් භාවිතයෙන්, වේගවත් SSD මත මන්දගාමී දෘඪ තැටි වෙත ප්‍රවේශය හැඹිලිගත කිරීම සඳහා නිර්මාණය කර ඇත (3.10 නිකුත් කිරීමේ සිට කර්නලයේ ඇතුළත් කර ඇත). Bcachefs Copy-on-Write (COW) යාන්ත්‍රණය භාවිතා කරයි, එහි වෙනස්කම් දත්ත නැවත ලිවීමට හේතු නොවේ - නව තත්වය නව ස්ථානයකට ලියා ඇත, ඉන්පසු වත්මන් තත්වයේ දර්ශකය වෙනස් වේ.

Bcachefs හි ලක්ෂණයක් වන්නේ ධාවක බහු-ස්ථර සම්බන්ධතාවය සඳහා සහය වීමයි, එහි ගබඩාව ස්ථර කිහිපයකින් සමන්විත වේ - වේගවත්ම ධාවක (SSDs) පහළ ස්ථරයට සම්බන්ධ කර ඇති අතර ඒවා නිතර භාවිතා කරන දත්ත හැඹිලි කිරීමට භාවිතා කරන අතර ඉහළ ස්ථරයේ ආකෘති අඩු ඉල්ලුමක් ඇති දත්ත ගබඩා කරන වඩා ධාරිතාව සහ ලාභ තැටි. ස්ථර අතර ලිවීමේ හැඹිලිය භාවිතා කළ හැක. ගොනු පද්ධතියේ භාවිතයට බාධා නොකර (දත්ත ස්වයංක්‍රීයව සංක්‍රමණය වේ) ධාවක ගතිකව කොටසක් වෙත එකතු කළ හැක.

මූලාශ්රය: opennet.ru

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