Red Hat Membangunkan NVFS Baharu, Cekap untuk Memori NVM

MikulÑő Patočka, salah seorang pembangun LVM dan pengarang beberapa ciptaanberkaitan dengan pengoptimuman sistem storan, bekerja di Red Hat, diperkenalkan sistem fail baharu pada senarai mel pembangun kernel Linux NVFS, bertujuan untuk mencipta FS yang padat dan pantas untuk cip memori tidak meruap (NVM, memori tidak meruap, contohnya NVDIMM), menggabungkan prestasi RAM dengan keupayaan untuk menyimpan kandungan secara kekal.

Pengalaman FS telah diambil kira semasa membangunkan NVFS NEW, dicipta khusus untuk memori NVM pada 2017, tetapi tidak diterima ke dalam kernel Linux dan terhad sokongan untuk kernel Linux dari 4.13 hingga 5.1.
FS NVFS yang dicadangkan adalah lebih mudah daripada NOVA (4972 baris kod berbanding 21459), menyediakan utiliti fsck, mempunyai prestasi yang lebih tinggi, menyokong atribut lanjutan (xattrs), label keselamatan, ACL dan kuota, tetapi tidak menyokong syot kilat. Seni bina NVFS dekat dengan
Sistem fail Ext4 sesuai dengan model sistem fail berdasarkan subsistem VFS, yang membolehkan anda meminimumkan bilangan lapisan dan membuat kaitan dengan modul yang tidak memerlukan tampalan pada kernel.

NVFS menggunakan antara muka kernel DAX untuk akses terus kepada peranti memori berterusan, memintas cache halaman. Untuk mengoptimumkan operasi memori NVM beralamat bait, kandungan pemacu dipetakan ke ruang alamat linear kernel tanpa menggunakan lapisan peranti blok tradisional dan cache perantaraan. Digunakan untuk menyimpan kandungan direktori pokok asas (pokok radix) di mana setiap nama fail dicincang dan nilai cincang digunakan semasa mencari pokok.

Integriti data dipastikan menggunakan "kemas kini lembut"(seperti dalam UFS dari FreeBSD dan FFS dari OpenBSD) tanpa menggunakan jurnal. Untuk mengelakkan kerosakan fail dalam NVFS, operasi perubahan data dikumpulkan dalam cara yang ranap tidak boleh menyebabkan kehilangan blok atau inod, dan integriti struktur dipulihkan menggunakan utiliti fsck. Utiliti fsck beroperasi dalam mod berbilang benang dan memberikan prestasi brute-force sebanyak 1.6 juta inod sesaat.

Π’ ujian prestasi NVFS melakukan operasi penyalinan pokok sumber kernel Linux pada memori NVM kira-kira 10% lebih pantas daripada NOVA, 30% lebih pantas daripada ext4 dan 37% lebih pantas daripada XFS. Dalam ujian pengambilan data, NVFS lebih pantas daripada NOVA sebanyak 3%, dan ext4 dan XFS sebanyak 15% (tetapi dengan cache cakera aktif, NOVA adalah 15% lebih perlahan).
Dalam ujian operasi sejuta direktori, NVFS mengatasi NOVA sebanyak 40%, ext4 sebanyak 22% dan XFS sebanyak 46%. Apabila mensimulasikan aktiviti DBMS, sistem fail NVFS mengatasi NOVA sebanyak 20%, ext4 sebanyak 18 kali dan XFS sebanyak 5 kali. Dalam ujian fs_mark, prestasi NVFS dan NOVA ternyata lebih kurang pada tahap yang sama, manakala ext4 dan XFS ketinggalan kira-kira 3 kali.

Kelewatan sistem fail tradisional pada memori NVM adalah disebabkan oleh fakta bahawa ia tidak direka untuk pengalamatan bait, yang digunakan dalam memori tidak meruap, yang kelihatan seperti RAM biasa. Membaca daripada pemacu konvensional memastikan keatoman operasi pada tahap baca/tulis sektor, manakala memori NVM menyediakan akses pada tahap kata mesin individu. Di samping itu, sistem fail tradisional cuba mengurangkan keamatan akses kepada media, yang dianggap lebih perlahan daripada RAM, dan juga cuba mengumpulkan operasi untuk memastikan bacaan berurutan apabila menggunakan cakera keras, memproses baris gilir permintaan, memerangi pemecahan dan memisahkan keutamaan operasi yang berbeza. . Untuk memori NVM, komplikasi seperti itu tidak diperlukan, kerana kelajuan akses data adalah setanding dengan RAM, dan susunan akses tidak penting.

Sumber: opennet.ru

Tambah komen