เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ Composefs เบชเบฐเป€เบซเบ™เบตเบชเปเบฒเบฅเบฑเบš Linux

Alexander Larsson, เบœเบนเป‰เบชเป‰เบฒเบ‡ Flatpak เบขเบนเปˆ Red Hat, เป„เบ”เป‰เป€เบ›เบตเบ”เป€เบœเบตเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ patches เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ Composefs เบชเปเบฒเบฅเบฑเบš Linux kernel. เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเบ„เป‰เบฒเบเบ„เบทเบเบฑเบš Squashfs เปเบฅเบฐเบเบฑเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบญเปˆเบฒเบ™เป„เบ”เป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเบ•เบปเป‰เบกเบฅเบปเบ‡เป„เบ›เป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Composefs เบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเปเบœเปˆเบ™เบ—เบตเปˆเบ•เบดเบ”เบขเบนเปˆเบซเบผเบฒเบเบญเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš เปเบฅเบฐเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆ Composefs FS เบญเบฒเบ”เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ OSTree Git เบ„เป‰เบฒเบเบ„เบท.

Composefs เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบขเบนเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเบซเบฒ, i.e. เบ•เบปเบงเบฅเบฐเบšเบธเบซเบผเบฑเบเบšเปเปˆเปเบกเปˆเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒ, เปเบ•เปˆเป€เบ›เบฑเบ™ hash เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒ. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™ deduplication เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบžเบฒเบ—เบดเบŠเบฑเบ™ mounted เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเบกเบตเป„เบŸเบฅเปŒเบฅเบฐเบšเบปเบšเบ—เบปเปˆเบงเป„เบ›เบซเบผเบฒเบ, เปเบฅเบฐเบกเบต Composefs, เปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเปเบšเปˆเบ‡เบ›เบฑเบ™เป‚เบ”เบเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ•เบดเบ”เบขเบนเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ tricks เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ”เป‰เบงเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™, เป„เบŸเบฅเปŒเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เป€เบ›เบฑเบ™เบชเปเบฒเป€เบ™เบปเบฒเบ”เบฝเบงเปƒเบ™เปเบœเปˆเบ™, เปเบ•เปˆเบเบฑเบ‡เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™ cache เบ‚เบญเบ‡เบซเบ™เป‰เบฒ, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบซเบเบฑเบ”เบ—เบฑเบ‡เปเบœเปˆเบ™เปเบฅเบฐ RAM.

เป€เบžเบทเปˆเบญเบ›เบฐเบขเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบชเบเปŒ, เบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐเป€เบกเบ•เบฒเป€เบ”เบ•เบฒเบˆเบฐเบ–เบทเบเปเบเบเบญเบญเบเป€เบ›เบฑเบ™เบฎเบนเบšเบ—เบตเปˆเบ•เบดเบ”เบขเบนเปˆ. เป€เบกเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡, เปƒเบซเป‰เบฅเบฐเบšเบธ:

  • เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ–เบฒเบ™เบชเบญเบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ metadata เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบฑเบ‡เบซเบกเบปเบ”, เบŠเบทเปˆเป„เบŸเบฅเปŒ, เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™เป†, เบเบปเบเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป€เบ™เบทเป‰เบญเปƒเบ™เบ•เบปเบงเบˆเบดเบ‡เบ‚เบญเบ‡เป„เบŸเบฅเปŒ.
  • เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเป€เบ™เบทเป‰เบญเบซเบฒเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ•เบดเบ”เบขเบนเปˆเบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰. เป„เบŸเบฅเปŒเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš hash เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ–เบฒเบ™เบชเบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบฎเบนเบšเบžเบฒเบš FS, เปเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”. เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเป€เบ™เบทเป‰เบญเบซเบฒเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เปเบฅเบฐเบฎเบนเบšเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบžเบฒเบเปƒเบ•เป‰เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เบเบปเบ™เป„เบ fs-verity เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡, เป€เบกเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒ, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒ hashes เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ–เบฒเบ™เบชเบญเบ‡เปเบกเปˆเบ™เบเบปเบ‡เบเบฑเบšเป€เบ™เบทเป‰เบญเบซเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡ (i.e. เบ–เป‰เบฒเบœเบนเป‰เป‚เบˆเบกเบ•เบต. เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบŸเบฅเปŒเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบžเบทเป‰เบ™เบ–เบฒเบ™เบซเบผเบทเบ‚เปเป‰เบกเบนเบ™เป€เบชเบเบซเบฒเบเบเป‰เบญเบ™เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบเบฒเบ™เบ„เบทเบ™เบ”เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเป€เบ›เบตเบ”เป€เบœเบตเบเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™