Ang Red Hat ay Bumuo ng Bagong NVFS, Mahusay para sa NVM Memory

MikulÑő Patočka, isa sa mga developer ng LVM at may-akda ng isang bilang ng mga imbensyonnauugnay sa pag-optimize ng mga sistema ng imbakan, nagtatrabaho sa Red Hat, ipinakilala bagong file system sa Linux kernel developer mailing list NVFS, na naglalayong lumikha ng isang compact at mabilis na FS para sa mga non-volatile memory chips (NVM, non-volatile memory, halimbawa NVDIMM), na pinagsasama ang pagganap ng RAM sa kakayahang permanenteng mag-imbak ng nilalaman.

Ang karanasan ng FS ay isinasaalang-alang kapag bumubuo ng NVFS BAGONG, partikular na nilikha para sa memorya ng NVM noong 2017, ngunit hindi tinanggap sa Linux kernel at limitado suporta para sa mga kernel ng Linux mula 4.13 hanggang 5.1.
Ang iminungkahing FS NVFS ay mas simple kaysa sa NOVA (4972 linya ng code kumpara sa 21459), nagbibigay ng fsck utility, may mas mataas na pagganap, sumusuporta sa mga pinahabang katangian (xattrs), mga label ng seguridad, ACL at quota, ngunit hindi sumusuporta sa mga snapshot. Arkitektura Malapit na ang NVFS
Ang Ext4 file system ay akma sa modelo ng mga file system batay sa VFS subsystem, na nagbibigay-daan sa iyong mabawasan ang bilang ng mga layer at gumawa ng isang module na hindi nangangailangan ng mga patch sa kernel.

Ginagamit ng NVFS ang kernel interface DAX para sa direktang pag-access sa mga persistent memory device, na lumalampas sa page cache. Upang ma-optimize ang pagpapatakbo ng byte-addressed NVM memory, ang mga nilalaman ng drive ay nakamapa sa linear address space ng kernel nang hindi gumagamit ng tradisyonal na block device layer at intermediate cache. Ginagamit upang mag-imbak ng mga nilalaman ng direktoryo puno ng batayan (radix tree) kung saan ang bawat pangalan ng file ay na-hash at ang hash na halaga ay ginagamit kapag naghahanap sa puno.

Tinitiyak ang integridad ng data gamit ang "malambot na update"(tulad ng sa UFS mula sa FreeBSD at FFS mula sa OpenBSD) nang hindi gumagamit ng journaling. Upang maiwasan ang pagkasira ng file sa NVFS, ang mga pagpapatakbo ng pagbabago ng data ay pinagsama-sama sa paraang ang pag-crash ay hindi maaaring humantong sa pagkawala ng mga bloke o inode, at ang integridad ng mga istruktura ay naibalik gamit ang fsck utility. Gumagana ang fsck utility sa multi-threaded mode at nagbibigay ng brute-force na pagganap na 1.6 milyong inode bawat segundo.

Π’ mga pagsubok sa pagganap Ginawa ng NVFS ang Linux kernel source tree copy operation sa NVM memory nang humigit-kumulang 10% na mas mabilis kaysa sa NOVA, 30% na mas mabilis kaysa sa ext4, at 37% na mas mabilis kaysa sa XFS. Sa pagsubok sa pagkuha ng data, ang NVFS ay mas mabilis kaysa sa NOVA ng 3%, at ang ext4 at XFS ng 15% (ngunit sa aktibong disk cache, ang NOVA ay 15% na mas mabagal).
Sa milyon na pagsubok sa pagpapatakbo ng direktoryo, naungusan ng NVFS ang NOVA ng 40%, ext4 ng 22%, at XFS ng 46%. Kapag ginagaya ang aktibidad ng DBMS, nalampasan ng NVFS file system ang NOVA ng 20%, ext4 ng 18 beses, at XFS ng 5 beses. Sa fs_mark test, ang pagganap ng NVFS at NOVA ay naging humigit-kumulang sa parehong antas, habang ang ext4 at XFS ay nahuli ng halos 3 beses.

Ang lag ng tradisyonal na mga file system sa memorya ng NVM ay dahil sa ang katunayan na ang mga ito ay hindi idinisenyo para sa byte addressing, na ginagamit sa hindi pabagu-bago ng memorya, na mukhang regular na RAM. Ang pagbabasa mula sa mga nakasanayang drive ay nagsisiguro ng atomicity ng operasyon sa sektor ng read/write level, habang ang NVM memory ay nagbibigay ng access sa antas ng indibidwal na machine words. Bilang karagdagan, sinusubukan ng tradisyunal na mga file system na bawasan ang intensity ng pag-access sa media, na itinuturing na malinaw na mas mabagal kaysa sa RAM, at subukan din na pangkatin ang mga operasyon upang matiyak ang sunud-sunod na pagbabasa kapag gumagamit ng mga hard drive, iproseso ang mga queue ng kahilingan, labanan ang fragmentation at paghiwalayin ang mga priyoridad ng iba't ibang operasyon. . Para sa memorya ng NVM, ang mga naturang komplikasyon ay hindi kailangan, dahil ang bilis ng pag-access ng data ay maihahambing sa RAM, at ang order ng pag-access ay hindi mahalaga.

Pinagmulan: opennet.ru

Magdagdag ng komento