ΠΠ΅Π½Ρ ΠΠ²Π΅ΡΡΡΡΠΈΡ (Kent Overstreet) ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π²Π΅ΡΡΠΈΡ 1.38.6 Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Bcachefs ΠΈ ΠΎΠ±ΡΠ²ΡΠ²Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ ΡΡΠ°ΡΡΡ. ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΅ Π½Π°ΠΌΠ°Π»ΡΠ», Π° ΠΎΡΠΊΡΠΈΡΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π½Π°Ρ Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΈ.
ΠΠ΅ΡΡΠΈΡΡΠ° ΠΎΠ±Ρ Π²Π°ΡΠ° Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ°: bcachefs-kernel-dkms Ρ ΠΌΠΎΠ΄ΡΠ», ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° DKMS (Dynamic Kernel Module Support) ΠΈ bcachefs-tools Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΠΊΠΎΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ (mkfs), ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅, Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ° ΡΠ³Π»ΠΎΠ±Π΅Π½ΠΈ Π·Π° Debian, Ubuntu, Arch Linux ΠΈ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π°Ρ Π·Π° Fedora, openSUSE ΠΈ NixOS. DKMS ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ° Ρ Linux ΡΠ΄ΡΠ°, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ 6.16.
ΠΡΠΏΡΠ΅ΠΊΠΈ Π½Π΅ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ°, ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΡ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡ ΡΠΎΡΠΌΠ°Ρ, Π²Π΅ΡΡΠΈΡ 1.38.6 Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ΅Π΄ΠΈΡΠ° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. Π ΠΊΠΎΠ΄Π° Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΡ ΡΡΡΡΠΊΡΡΡΠΈ Π² btree ΡΠΎΡΠΌΠ°Ρ, ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 200 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π° Π² 4 ΠΠ ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΈ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ (lock contention) ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ btree, Π½Π°ΠΏΡΠ»Π½ΠΎ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΏΠΎ ΠΈΠ·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΆΡΡΠ½Π°Π»Π° (journal flush).
ΠΠ° ΡΡΡΠ²ΡΡ Π‘ 48-ΡΠ΄ΡΠ΅Π½ΠΈΡ CPU AMD Bcachefs ΡΡΠΏΡ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΎΡ 16.5 GB/sec ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 48 ΠΊΠ»ΠΈΠ΅Π½ΡΠ° dbench (Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, XFS ΠΏΠΎΡΡΠΈΠ³Π½Π° 16 GB/sec). ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ, Π½ΠΎ ΠΎΡΠ»ΠΎΠΆΠ΅Π½ΠΈ Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΡΠ΅Π»ΠΈΠ·, ΡΠ° ΠΏΠ°ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π² ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ dbench Π΄ΠΎ 19 GB/sec (ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΠΎΠ²Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡ ΡΠΎΡΠΌΠ°Ρ). ΠΡΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Ρ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° fio ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Bcachefs Π΄ΠΎΡΡΠΈΠ³Π½Π° 700 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΈΡΠ°Π½Π΅ Ρ 4-ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ (XFS Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ° Π² ΡΠΎΠ·ΠΈ ΡΠ΅ΡΡ ΠΌΠΈΠ»ΠΈΠΎΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, ΠΊΠ°ΡΠΎ XFS Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΎΡ ΡΠ΅ΠΌΠ°ΠΏΠΈΠ½Π³Π° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅, Π° Bcachefs ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ΅Π»ΠΈΡ ΡΠΈΠΊΡΠ» CoW (Copy-on-Write) Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΡΡΠΌΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° btree ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°).
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅, Π²Π΅ΡΡΠΈΡ 1.38.6 Π½Π° Bcachefs ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎ 255 ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΡΠΌ Π΅Π΄Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°. Π Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ apt.bcachefs.org Π·Π°ΠΏΠΎΡΠ½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° Ubuntu 26.04. ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»Π° ΠΊΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π±ΠΈΠ»Π΄ΠΎΠ²Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° DKMS. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠ΅ΡΠ° ΠΏΠ»Π°Π½ΡΡ Π΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠΎΡΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust. ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Rust Π² ΡΠ΄ΡΠΎΡΠΎ Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π°Π»Π° Π·Π½Π°ΠΊΠΎΠ²Π° ΡΡΡΠΏΠΊΠ° β Π²ΡΠΈΡΠΊΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ ΡΠ΄ΡΠΎ 7.0 ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° CONFIG_RUST Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Rust. Π ΠΏΡΠΎΠ΅ΠΊΡΠ° Bcachefs Π½Π° Rust Π²Π΅ΡΠ΅ Π΅ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ,
bcachefs-tools, ΡΡΠ°ΡΡΠΈΡΠ°Π½ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° API Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΡ ΡΡΡΡΠΊΡΡΡΠΈ btree. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π° Rust Π² DKMS ΠΌΠΎΠ΄ΡΠ»Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° Bcachefs. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Rust ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡΡΠ°, ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ΄Π°, ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ Π·Π° ΠΌΠ»Π°Π΄ΠΈΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΡΠΌΠ°Π»Π½Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ°.
ΠΡΠΎΠ΅ΠΊΡΡΡ Bcachefs ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅Π»ΠΈ Π΄Π° ΡΡΡΠ΅ΡΠ°Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΈ Π·Π° Btrfs ΠΈ ZFS, Ρ Π½ΠΈΠ²Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ, ΠΏΡΠΈΡΡΡΠΈ Π½Π° XFS. Bcachefs ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π΄ΡΠ», ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ (Π΄ΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΎΠΉ Ρ ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π±ΡΡΠ·ΠΈ SSD, Π° Π³ΠΎΡΠ½ΠΈΡΡ ΡΠ»ΠΎΠΉ Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ²ΡΡΠ΄ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅), ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ (RAID 1/10), ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅, ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ (ΡΠ΅ΠΆΠΈΠΌΠΈ LZ4, gzip ΠΈ ZSTD), ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ (ΡΠ½Π°ΠΏΡΠΎΡΠΈ), ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° ΡΡΠ΅Π· ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΡΡΠΌΠΈ, ΠΊΠΎΠ΄ΠΈ Π·Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ Π²ΠΈΠ΄ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅ ChaCha20 ΠΈ Poly1305).
Π‘ΡΠ΅Π΄ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π² Bcachefs ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠ΅ΡΠΈ, ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Ρ:
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ βreconcileβ (rebalance_v2), ΠΊΠΎΠΉΡΠΎ, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° βrebalanceβ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΏΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°), Π½ΠΎ ΠΈ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈΡΠ΅ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΡΠ»Π΅Π΄ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΠΏΡΠ»Π°). Reconcile Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄, Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠΎΠ½ΠΎΠ²ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ. Π reconcile Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ°Ρ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠ°Π»ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ RAID 5/6. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π ΠΈΠΉΠ΄-Π‘ΠΎΠ»ΠΎΠΌΠΎΠ½, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π΄Π° ΠΏΠΎΠΏΡΠ°Π²Ρ Π΄ΠΎ N Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΡΡΠ°ΠΉΠΏ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° N ΠΈΠ·Π»ΠΈΡΠ½ΠΈ Π±Π»ΠΎΠΊΠ°. ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠ°Π»ΠΈ ΡΡΡΠ°ΠΉΠΏΠΎΠ²Π΅. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
