லினக்ஸ் கர்னலுக்கு Bcachefs ஐ மேம்படுத்துதல்

லினக்ஸ் கர்னலின் ஒரு பகுதியான BCache SSD பிளாக் டிவைஸ் கேச்சிங் சிஸ்டத்தின் ஆசிரியரான Kent Overstreet, LSFMM 2023 மாநாட்டில் (Linux Storage, Filesystem, Memory Management) தனது உரையில் Bcachefs கோப்பு முறைமையை மேம்படுத்தும் பணியின் முடிவுகளை சுருக்கமாகக் கூறினார். & BPF உச்சி மாநாடு). மே மாதத்தில், Bcachefs FS ஐ செயல்படுத்துவதன் மூலம் புதுப்பிக்கப்பட்ட இணைப்புகளின் தொகுப்பு மதிப்பாய்வு மற்றும் லினக்ஸ் கர்னலின் முக்கிய அமைப்பில் சேர்க்க முன்மொழியப்பட்டது. FS Bcachefs சுமார் 10 ஆண்டுகளாக உருவாகி வருகிறது. மையத்தில் சேர்ப்பதற்கு முன் Bcachefs செயல்படுத்தப்படுவதை மதிப்பாய்வு செய்வதற்கான தயார்நிலை 2020 ஆம் ஆண்டின் இறுதியில் அறிவிக்கப்பட்டது, மேலும் இணைப்புகளின் தற்போதைய பதிப்பு முந்தைய மதிப்பாய்வின் போது அடையாளம் காணப்பட்ட கருத்துகள் மற்றும் குறைபாடுகளை கணக்கில் எடுத்துக்கொள்கிறது.

Bcachefs மேம்பாட்டு இலக்கு செயல்திறன், நம்பகத்தன்மை மற்றும் அளவிடுதல் ஆகியவற்றில் XFS நிலையை அடைவதாகும், அதே நேரத்தில் Btrfs மற்றும் ZFS இல் உள்ளார்ந்த கூடுதல் அம்சங்களை வழங்குகிறது, அதாவது பகிர்வில் பல சாதனங்கள், பல அடுக்கு சேமிப்பக தளவமைப்புகள், பிரதியீடு (RAID 1/10), கேச்சிங், வெளிப்படையான தரவு சுருக்கம் (LZ4, gzip மற்றும் ZSTD முறைகள்), மாநில துண்டுகள் (ஸ்னாப்ஷாட்கள்), செக்சம்கள் மூலம் ஒருமைப்பாடு சரிபார்ப்பு, Reed-Solomon பிழை திருத்தக் குறியீடுகளைச் சேமிக்கும் திறன் (RAID 5/6), தகவல்களின் மறைகுறியாக்கப்பட்ட சேமிப்பு (ChaCha20 மற்றும் Poly1305 பயன்படுத்தப்படுகின்றன). செயல்திறனைப் பொறுத்தவரை, Bcachefs Btrfs மற்றும் பிற கோப்பு முறைமைகளை விட Copy-on-Write பொறிமுறையின் அடிப்படையில் முன்னணியில் உள்ளது, மேலும் Ext4 மற்றும் XFS க்கு நெருக்கமான செயல்திறனைக் காட்டுகிறது.

Bcachefs இன் வளர்ச்சியில் சமீபத்திய சாதனைகளில், எழுதுவதற்கு கிடைக்கும் ஸ்னாப்ஷாட்களை செயல்படுத்துவதை உறுதிப்படுத்துவது குறிப்பிடப்பட்டுள்ளது. Btrfs உடன் ஒப்பிடும்போது, ​​Bcachefs இல் உள்ள ஸ்னாப்ஷாட்கள் இப்போது மிகச் சிறப்பாக அளவிடக்கூடியவை மற்றும் Btrfs இல் உள்ள சிக்கல்களிலிருந்து விடுபடுகின்றன. நடைமுறையில், MySQL காப்புப்பிரதிகளை ஒழுங்கமைக்கும் போது ஸ்னாப்ஷாட்களின் வேலை சோதிக்கப்பட்டது. Bcachefs மேலும் அளவிடும் திறனை மேம்படுத்த நிறைய வேலைகளை செய்துள்ளது - கோப்பு முறைமை 100 TB சேமிப்பகத்தில் சிறப்பாகச் செயல்பட்டுள்ளது, மேலும் Bcachefs எதிர்காலத்தில் 1 PB சேமிப்பகத்தில் செயல்படுத்தப்படும் என எதிர்பார்க்கப்படுகிறது. "copy-on-write" (nocow) பொறிமுறையை முடக்க புதிய nocow பயன்முறை சேர்க்கப்பட்டுள்ளது. கோடையில், பிழை திருத்தம் குறியீடுகள் மற்றும் RAIDZ ஐ ஒரு நிலையான நிலைக்கு கொண்டு வர அவர்கள் திட்டமிட்டுள்ளனர், அதே போல் fsck பயன்பாட்டுடன் கோப்பு முறைமைகளை மீட்டமைத்து சரிபார்க்கும் போது அதிக நினைவக நுகர்வு சிக்கல்களைத் தீர்க்கவும்.

எதிர்காலத்திற்கான திட்டங்களில், Bcachefs இன் வளர்ச்சியில் ரஸ்ட் மொழியைப் பயன்படுத்துவதற்கான விருப்பம் குறிப்பிடப்பட்டுள்ளது. Bcachefs இன் ஆசிரியரின் கூற்றுப்படி, அவர் குறியீட்டை பிழைத்திருத்துவதை விரும்புவதில்லை, மேலும் சிறந்த விருப்பம் இருக்கும்போது C இல் குறியீட்டை எழுதுவது இப்போது பைத்தியம். ரஸ்ட் ஏற்கனவே Bcachefs இல் சில பயனர்-வெளி பயன்பாடுகளை செயல்படுத்துவதில் ஈடுபட்டுள்ளது. மேலும், இந்த மொழியைப் பயன்படுத்துவது பிழைத்திருத்த நேரத்தை கணிசமாக மிச்சப்படுத்துவதால், Bcachefs ஐ ரஸ்டில் படிப்படியாக முழுமையாக மீண்டும் எழுதுவதற்கான யோசனை உருவாக்கப்பட்டது.

லினக்ஸ் கர்னலின் பிரதான நீரோட்டத்திற்கு Bcachefs ஐ நகர்த்துவதைப் பொறுத்தவரை, பெரிய அளவிலான மாற்றங்கள் (2500 பேட்ச்கள் மற்றும் சுமார் 90 ஆயிரம் கோடுகள்) காரணமாக தத்தெடுப்பு செயல்முறை தாமதமாகலாம், இது மதிப்பாய்வு செய்வது கடினம். மதிப்பாய்வை விரைவுபடுத்த, சில டெவலப்பர்கள் பேட்ச் தொடரை சிறிய மற்றும் தர்க்கரீதியாக பிரிக்கப்பட்ட பகுதிகளாக பிரிக்க பரிந்துரைத்துள்ளனர். கலந்துரையாடலின் போது, ​​சில பங்கேற்பாளர்கள் ஒரு டெவலப்பரின் திட்டத்தின் வளர்ச்சி மற்றும் அதன் டெவலப்பருக்கு ஏதேனும் நேர்ந்தால் குறியீடு பராமரிக்கப்படாமல் போகும் அபாயம் குறித்தும் கவனத்தை ஈர்த்தது (இரண்டு Red Hat ஊழியர்கள் திட்டத்தில் ஆர்வமாக உள்ளனர், ஆனால் அவர்களின் பணி இன்னும் உள்ளது. வரையறுக்கப்பட்ட பிழை திருத்தங்கள்).

Bcachefs ஆனது Bcache பிளாக் சாதனத்தின் வளர்ச்சியில் ஏற்கனவே சோதிக்கப்பட்ட தொழில்நுட்பங்களைப் பயன்படுத்தி உருவாக்கப்பட்டது, வேகமான SSD இயக்கிகளில் (3.10 வெளியானதிலிருந்து கர்னலில் சேர்க்கப்பட்டுள்ளது) மெதுவான ஹார்ட் டிரைவ்களுக்கான அணுகலைத் தற்காலிகமாக சேமிக்க வடிவமைக்கப்பட்டுள்ளது. Bcachefs Copy-on-Write (COW) பொறிமுறையைப் பயன்படுத்துகிறது, இதில் மாற்றங்கள் தரவு மேலெழுதுவதற்கு வழிவகுக்காது - புதிய நிலை ஒரு புதிய இடத்திற்கு எழுதப்பட்டது, அதன் பிறகு தற்போதைய நிலை காட்டி மாறுகிறது.

Bcachefs இன் ஒரு அம்சம் டிரைவ்களின் பல அடுக்கு இணைப்புக்கான ஆதரவாகும், இதில் சேமிப்பகம் பல அடுக்குகளைக் கொண்டுள்ளது - வேகமான இயக்கிகள் (SSD) கீழ் அடுக்குடன் இணைக்கப்பட்டுள்ளன, அவை அடிக்கடி பயன்படுத்தப்படும் தரவைத் தேக்குவதற்குப் பயன்படுத்தப்படுகின்றன, மேலும் மேல் அடுக்கு வடிவங்கள் குறைந்த தேவைப்படும் தரவைச் சேமிக்கும் அதிக திறன் மற்றும் மலிவான வட்டுகள். ரைட்பேக் கேச்சிங் அடுக்குகளுக்கு இடையில் பயன்படுத்தப்படலாம். கோப்பு முறைமையின் பயன்பாட்டிற்கு இடையூறு இல்லாமல் இயக்ககங்களை ஒரு பகிர்வில் சேர்க்கலாம் மற்றும் பிரிக்கலாம் (தரவு தானாகவே நகர்கிறது).

ஆதாரம்: opennet.ru

கருத்தைச் சேர்