ΠΠΎΠ½Π³ ΠΠ°Π½Π³ (Cong Wang), ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ (TC, Traffic Control) Π² ΡΠ΄ΡΠ΅ Linux ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Multikernel, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ° Linux Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ DAXFS. DAXFS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ΅Π·Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ramfs ΠΈ tmpfs. ΠΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ DAXFS, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΠ»ΠΈΡΠ° mkdaxfs Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π€Π‘ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv2. ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ DAXFS Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ°.
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π½ΠΎΠ²ΠΎΠΉ Π€Π‘ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ DAX (Direct Access) Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° ΠΈ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π ramfs ΠΈ tmpfs ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π€Π‘ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ ΠΈΠ»ΠΈ ΡΠ΄ΡΠ°Ρ , Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Multikernel, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΏΠΈΠΉ Π΄Π°Π½Π½ΡΡ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ramfs ΠΈ tmpfs ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΠΈΡΠ½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² DAXFS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π½Π° Π±Π°Π·Π΅ Π±Π»ΠΎΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π€Π‘ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ ΠΈ multikernel-ΡΠ΄ΡΠ°Ρ . DAXFS ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Zero-Copy ΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΡΠ΄Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π±Π΅Π· Π»ΠΈΡΠ½Π΅Π³ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅ ΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈΠ»ΠΈ ΡΠ΄ΡΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ API dma-buf Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ GPU, FPGA/SmartNIC ΠΈΠ»ΠΈ CXL-ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
Π€Π‘ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°Π³ΡΡΠ·ΠΊΡ Π² ΠΏΠ°ΠΌΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Π€Π‘, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ»ΠΎΠΆΠ½ΡΠ½Π½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ DAXFS Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Multikernel, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ΄ΡΠ° Linux, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ.
DAXFS ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΄Π΅Ρ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ°Π·Ρ, ΡΠ°Π·ΠΌΠ΅ΡΡΠ½Π½ΠΎΠΌΡ Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ; ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ
ΡΠ°ΡΡ
ΠΎΠ΄ΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ
ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ; ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Ρ
ΠΎΡΡΠΎΠ² Π±Π΅Π· ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π±Π°Π·Π΅ ΡΠΈΠ½Ρ CXL (Compute Express Link).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru

