ΠΠΈΠΊΡΠ»Π°Ρ ΠΠ°ΡΠΎΡΠΊΠ° (MikulΓ‘Ε‘ PatoΔka), ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² LVM ΠΈ Π°Π²ΡΠΎΡ ΡΡΠ΄Π° , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Red Hat, Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ° Linux Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ , Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠΉ ΠΈ Π±ΡΡΡΡΠΎΠΉ Π€Π‘ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (NVM, non-volatile memory, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ NVDIMM), ΡΠΎΡΠ΅ΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΠΠ£ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ.
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ NVFS ΡΡΡΡΠ½ ΠΎΠΏΡΡ Π€Π‘ , Π² 2017 Π³ΠΎΠ΄Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ NVM-ΠΏΠ°ΠΌΡΡΠΈ, Π½ΠΎ Π½Π΅ ΠΏΡΠΈΠ½ΡΡΠΎΠΉ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Linux ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ΄Π΅Ρ Linux Ρ 4.13 ΠΏΠΎ 5.1.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π€Π‘ NVFS Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ NOVA (4972 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΡΠΈΠ² 21459), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΡΡ fsck, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ (xattrs), ΠΌΠ΅ΡΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ACL ΠΈ ΠΊΠ²ΠΎΡΡ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ½Π°ΠΏΡΠΎΡΡ. NVFS Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ
Π€Π‘ Ext4 ΠΈ Ρ
ΠΎΡΠΎΡΠΎ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π² ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
ΡΠΈΡΡΠ΅ΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ VFS, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²Π΅ΡΡΠΈ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠΈΡΠ»ΠΎ ΠΏΡΠΎΡΠ»ΠΎΠ΅ΠΊ ΠΈ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠΌ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΡΠ΅ΠΉ Π² ΡΠ΄ΡΠΎ.
NVFS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΄ΡΠ° Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ°. ΠΠ»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ NVM, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π±Π°ΠΉΡΠΎΠ²Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ΄ΡΠ° Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π±Π»ΠΎΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ°. ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ (radix tree), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π² Π΄Π΅ΡΠ΅Π²Π΅.
Π¦Π΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° «» (ΠΊΠ°ΠΊ Π² UFS ΠΈΠ· FreeBSD ΠΈ Π² FFS ΠΈΠ· OpenBSD) Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² NVFS ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π³ΡΡΠΏΠΏΠΈΡΡΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΊΡΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ inode, Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΡΡΡΠΊΡΡΡ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ»ΠΈΡΡ fsck. Π£ΡΠΈΠ»ΠΈΡΠ° fsck ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° 1.6 ΠΌΠ»Π½ inode Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π NVFS Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π° Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ ΡΠ΄ΡΠ° Linux Π½Π° NVM-ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 10% Π±ΡΡΡΡΠ΅Π΅ NOVA, Π½Π° 30% Π±ΡΡΡΡΠ΅Π΅ ext4 ΠΈ Π½Π° 37% Π±ΡΡΡΡΠ΅Π΅ XFS. Π ΡΠ΅ΡΡΠ΅ Π½Π° ΠΏΠΎΠΈΡΠΊ Π΄Π°Π½Π½ΡΡ
Π€Π‘ NVFS ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π±ΡΡΡΡΠ΅Π΅ NOVA Π½Π° 3%, Π° ext4 ΠΈ XFS Π½Π° 15% (Π½ΠΎ ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΌ ΠΊΡΡΠ΅ NOVA ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π΅Π΅ Π½Π° 15%).
Π ΡΠ΅ΡΡΠ΅ Π½Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ NVFS ΠΎΠΏΠ΅ΡΠ΅Π΄ΠΈΠ»Π° NOVA Π½Π° 40%, ext4 Π½Π° 22%, Π° XFS Π½Π° 46%. ΠΡΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π‘Π£ΠΠ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° NVFS ΠΎΠΏΠ΅ΡΠ΅Π΄ΠΈΠ»Π° NOVA Π½Π° 20%, ext4 Π² 18 ΡΠ°Π· ΠΈ XFS Π² 5 ΡΠ°Π·. Π ΡΠ΅ΡΡΠ΅ fs_mark ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ NVFS ΠΈ NOVA ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, Π° ext4 ΠΈ XFS ΠΎΡΡΡΠ°Π»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 3 ΡΠ°Π·Π°.
ΠΡΡΡΠ°Π²Π°Π½ΠΈΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ Π€Π‘ Π½Π° NVM-ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° Π±Π°ΠΉΡΠΎΠ²ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π² ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΠΠ£. Π§ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΡΡΠ½ΡΡ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΠΊΡΠΎΡΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ NVM-ΠΏΠ°ΠΌΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠ»ΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ Π€Π‘ ΠΏΡΡΠ°ΡΡΡΡ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π½ΠΎΡΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ, ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΠ°ΡΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΆΡΡΡΠΊΠΈΡ Π΄ΠΈΡΠΊΠΎΠ², ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π±ΠΎΡΠΎΡΡΡΡ Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠ»Ρ NVM-ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ° Ρ ΠΠΠ£, Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
