Для Linux ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° файловая систСма Composefs

АлСксандр Ларсон (Alexander Larsson), ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Flatpak, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Red Hat, прСдставил ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Composefs для ядра Linux. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ файловая систСма Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Squashfs ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для монтирования ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ сводятся ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ Π² Composefs эффСктивного совмСстного хранСния содСрТимого Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… дисковых ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’ качСствС областСй примСнСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вострСбована Π€Π‘ Composefs, называСтся ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ для Git-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ рСпозитория OSTree.

Π’ Composefs примСняСтся модСль хранСния с адрСсациСй Π½Π° основС содСрТимого, Ρ‚.Π΅. ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ являСтся Π½Π΅ имя Ρ„Π°ΠΉΠ»Π°, Π° Ρ…ΡΡˆ ΠΎΡ‚ содСрТимого Ρ„Π°ΠΉΠ»Π°. Подобная модСль обСспСчиваСт Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ позволяСт фактичСски Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ копию ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…. НапримСр, ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² содСрТат мноТСство Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… систСмных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π² случаС примСнСния Composefs ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ совмСстно использован всСми ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ, Π±Π΅Π· примСнСния Ρ‚Ρ€ΡŽΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ проброс ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Тёстких ссылок. ΠŸΡ€ΠΈ этом ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ хранятся Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π½Π° дискС, Π½ΠΎ ΠΈ обходятся ΠΎΠ΄Π½ΠΎΠΉ записью Π² страничном кэшС, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Для экономии дисковой памяти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±Ρ€Π°Π·Π°Ρ… Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹. ΠŸΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ:

  • Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ индСкс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТатся всС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€Π°Π²Π° доступа ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свСдСния, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ нСпосрСдствСнно содСрТимого Ρ„Π°ΠΉΠ»ΠΎΠ².
  • Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ² всСх ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Π€Π°ΠΉΠ»Ρ‹ хранятся Π² привязкС ΠΊ Ρ…ΡΡˆΡƒ ΠΎΡ‚ ΠΈΡ… содСрТимого.

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ индСкс создаётся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° Π€Π‘, Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΅Π΄ΠΈΠ½ для всСх ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Для Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ содСрТимого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ всСго ΠΎΠ±Ρ€Π°Π·Π° Π² условиях ΠΎΠ±Ρ‰Π΅Π³ΠΎ хранСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ fs-verity, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ провСряСт соотвСтствиС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ индСксС Ρ…ΡΡˆΠ΅ΠΉ с фактичСским содСрТимым (Ρ‚.Π΅. Ссли Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ внСсёт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ» Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ поврСдятся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сбоя, Ρ‚ΠΎ подобная свСрка выявит расхоТдСниС).

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ