Red Hat พัฒนา NVFS ใหม่ มีประสิทธิภาพสำหรับหน่วยความจำ NVM

Mikuláš Patočka หนึ่งในผู้พัฒนา LVM และผู้เขียนหนังสือหลายเล่ม สิ่งประดิษฐ์ที่เกี่ยวข้องกับการปรับระบบจัดเก็บข้อมูลให้เหมาะสม การทำงานที่ Red Hat ส่ง ระบบไฟล์ใหม่ในรายชื่อผู้รับจดหมายของนักพัฒนาเคอร์เนล Linux เอ็นวีเอฟเอสมุ่งเป้าไปที่การสร้าง FS ที่กะทัดรัดและรวดเร็วสำหรับชิปหน่วยความจำแบบไม่ลบเลือน (NVM, หน่วยความจำแบบไม่ลบเลือน เช่น NVDIMM) ผสมผสานประสิทธิภาพของ RAM เข้ากับความสามารถในการจัดเก็บเนื้อหาอย่างถาวร

ประสบการณ์ของ FS ถูกนำมาพิจารณาเมื่อพัฒนา NVFS ใหม่สร้างขึ้นโดยเฉพาะสำหรับหน่วยความจำ NVM ในปี 2017 แต่ไม่ได้รับการยอมรับในเคอร์เนล Linux และ ถูก จำกัด รองรับเคอร์เนล Linux ตั้งแต่ 4.13 ถึง 5.1
FS NVFS ที่เสนอนั้นง่ายกว่า NOVA มาก (โค้ด 4972 บรรทัดเทียบกับ 21459) ให้ยูทิลิตี fsck มีประสิทธิภาพสูงกว่า รองรับแอตทริบิวต์เพิ่มเติม (xattrs) ป้ายกำกับความปลอดภัย ACL และโควต้า แต่ไม่รองรับสแนปช็อต สถาปัตยกรรม NVFS อยู่ใกล้
ระบบไฟล์ Ext4 เข้ากันได้ดีกับโมเดลของระบบไฟล์ที่ใช้ระบบย่อย VFS ซึ่งช่วยให้คุณลดจำนวนเลเยอร์ให้เหลือน้อยที่สุดและทำกับโมดูลที่ไม่ต้องใช้แพตช์กับเคอร์เนล

NVFS ใช้อินเทอร์เฟซเคอร์เนล DAX สำหรับการเข้าถึงโดยตรงไปยังอุปกรณ์หน่วยความจำถาวร โดยข้ามแคชของเพจ เพื่อเพิ่มประสิทธิภาพการทำงานของหน่วยความจำ NVM ที่ระบุตำแหน่งไบต์ เนื้อหาของไดรฟ์จะถูกแมปกับพื้นที่ที่อยู่เชิงเส้นของเคอร์เนลโดยไม่ต้องใช้เลเยอร์อุปกรณ์บล็อกแบบดั้งเดิมและแคชระดับกลาง ใช้เพื่อจัดเก็บเนื้อหาไดเร็กทอรี ต้นไม้พื้นฐาน (แผนผัง Radix) ซึ่งแต่ละชื่อไฟล์ถูกแฮช และใช้ค่าแฮชเมื่อค้นหาแผนผัง

รับประกันความสมบูรณ์ของข้อมูลโดยใช้ “การอัปเดตที่นุ่มนวล"(เช่นเดียวกับใน UFS จาก FreeBSD และ FFS จาก OpenBSD) โดยไม่ต้องใช้การทำเจอร์นัล เพื่อหลีกเลี่ยงความเสียหายของไฟล์ใน NVFS การดำเนินการเปลี่ยนแปลงข้อมูลจะถูกจัดกลุ่มในลักษณะที่ข้อขัดข้องไม่สามารถนำไปสู่การสูญเสียบล็อกหรือ inode และความสมบูรณ์ของโครงสร้างจะถูกกู้คืนโดยใช้ยูทิลิตี fsck ยูทิลิตี fsck ทำงานในโหมดมัลติเธรด และมอบประสิทธิภาพแบบ brute-force ที่ 1.6 ล้าน inodes ต่อวินาที

В การทดสอบประสิทธิภาพ NVFS ดำเนินการคัดลอกแผนผังต้นทางเคอร์เนล Linux บนหน่วยความจำ NVM เร็วกว่า NOVA ประมาณ 10% เร็วกว่า ext30 4% และเร็วกว่า XFS 37% ในการทดสอบการดึงข้อมูล NVFS เร็วกว่า NOVA 3% และ ext4 และ XFS 15% (แต่ด้วยแคชดิสก์ที่ใช้งานอยู่ NOVA จะช้ากว่า 15%)
ในการทดสอบการดำเนินงานล้านไดเร็กทอรี NVFS มีประสิทธิภาพเหนือกว่า NOVA 40%, ext4 22% และ XFS 46% เมื่อจำลองกิจกรรม DBMS ระบบไฟล์ NVFS มีประสิทธิภาพเหนือกว่า NOVA 20%, ext4 18 เท่า และ XFS 5 เท่า ในการทดสอบ fs_mark ประสิทธิภาพของ NVFS และ NOVA อยู่ในระดับเดียวกันโดยประมาณ ในขณะที่ ext4 และ XFS ล้าหลังประมาณ 3 เท่า

ความล่าช้าของระบบไฟล์แบบเดิมในหน่วยความจำ NVM เกิดจากการที่ระบบไฟล์เหล่านั้นไม่ได้ออกแบบมาสำหรับการกำหนดที่อยู่แบบไบต์ซึ่งใช้ในหน่วยความจำแบบไม่ลบเลือนซึ่งดูเหมือน RAM ปกติ การอ่านจากไดรฟ์แบบเดิมๆ ช่วยให้มั่นใจถึงความเป็นอะตอมมิกของการดำเนินการในระดับการอ่าน/เขียนเซกเตอร์ ในขณะที่หน่วยความจำ NVM ให้การเข้าถึงที่ระดับคำของเครื่องแต่ละเครื่อง นอกจากนี้ ระบบไฟล์แบบเดิมพยายามลดความเข้มข้นในการเข้าถึงสื่อ ซึ่งถือว่าช้ากว่า RAM อย่างเห็นได้ชัด และยังพยายามจัดกลุ่มการดำเนินการเพื่อให้แน่ใจว่ามีการอ่านตามลำดับเมื่อใช้ฮาร์ดไดรฟ์ คิวคำขอประมวลผล ต่อสู้กับการแยกส่วน และแยกไฟล์ ลำดับความสำคัญของการดำเนินงานที่แตกต่างกัน . สำหรับหน่วยความจำ NVM ความยุ่งยากดังกล่าวไม่จำเป็น เนื่องจากความเร็วของการเข้าถึงข้อมูลเทียบได้กับ RAM และลำดับการเข้าถึงก็ไม่สำคัญ

ที่มา: opennet.ru

เพิ่มความคิดเห็น