ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΡΡΠ²Π΅ΡΠ΄ΠΈΠ» Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ 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