Код Bcachefs принят Π² основной состав ядра Linux 6.7

Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ ΡƒΡ‚Π²Π΅Ρ€Π΄ΠΈΠ» запрос Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Bcachefs Π² основной состав ядра Linux ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Bcachefs Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ развиваСтся Π²Π΅Ρ‚ΠΊΠ° ядра 6.7, Ρ€Π΅Π»ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ оТидаСтся Π² Π½Π°Ρ‡Π°Π»Π΅ января. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² ядро ΠΏΠ°Ρ‚Ρ‡ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 95 тысяч строк ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ ΠšΠ΅Π½Ρ‚ ΠžΠ²Π΅Ρ€ΡΡ‚Ρ€ΠΈΡ‚ (Kent Overstreet), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π² состав ядра систСму ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств Π½Π° SSD-накопитСлях Bcache.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ продвиТСния Bcachefs Π² основной состав ядра Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ Π² 2020 Π³ΠΎΠ΄Ρƒ, послС Ρ‡Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π° устранСниС Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ ΠΈ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ, выявлСнных послС рСцСнзирования. ВСсной этого Π³ΠΎΠ΄Π° Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСсколько Ρ€Π°Π· отклонялся, Π½ΠΎ Π², ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС, Π² сСнтябрС Π±Ρ‹Π» принят Π² Π²Π΅Ρ‚ΠΊΡƒ linux-next, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для тСстирования возмоТностСй для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… выпусков ядра Linux.

Bcachefs развиваСтся с использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΡƒΠΆΠ΅ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства Bcache, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ доступа ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ Тёстким дискам Π½Π° быстрых SSD-накопитСлях (Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ядро, начиная с выпуска 3.10). Π’ Bcachefs ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Copy-on-Write (COW), ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ измСнСния Π½Π΅ приводят ΠΊ пСрСзаписи Π΄Π°Π½Π½Ρ‹Ρ… — Π½ΠΎΠ²ΠΎΠ΅ состояниС записываСтся Π² Π½ΠΎΠ²ΠΎΠ΅ мСсто, послС Ρ‡Π΅Π³ΠΎ мСняСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ состояния.

Π’ Bcachefs прСдпринята ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ сочСтания уровня ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, надёТности ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ, свойствСнного XFS, ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Π² Btrfs ΠΈ ZFS, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π» Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройств, многослойныС раскладки Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ, рСпликация (RAID 1/10), ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅ сТатиС Π΄Π°Π½Π½Ρ‹Ρ… (Ρ€Π΅ΠΆΠΈΠΌΡ‹ LZ4, gzip ΠΈ ZSTD), срСзы состояния (ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹), вСрификация цСлостности ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ суммам, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ хранСния ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ошибок Π ΠΈΠ΄Π°—Π‘ΠΎΠ»ΠΎΠΌΠΎΠ½Π° (RAID 5/6), Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ChaCha20 ΠΈ Poly1305). По ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Bcachefs ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Btrfs ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π€Π‘ Π½Π° Π±Π°Π·Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Copy-on-Write, ΠΈ дСмонстрируСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π±Π»ΠΈΠ·ΠΊΡƒΡŽ ΠΊ Ext4 ΠΈ XFS.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Bcachefs являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° многослойного ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ компонуСтся ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слоёв — ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ слою ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ быстрыС Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΠΈ (SSD), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ слой ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‘ΠΌΠΊΠΈΠ΅ ΠΈ Π΄Π΅ΡˆΡ‘Π²Ρ‹Π΅ диски, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΅ вострСбованных Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠ΅ΠΆΠ΄Ρƒ слоями ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ записи (writeback). НакопитСли ΠΌΠΎΠΆΠ½ΠΎ динамичСски Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π° Π±Π΅Π· остановки использования Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ автоматичСски).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru