อะไรคือข้อดี / ข้อเสียของตัวเลือกการแคช SSD กับ HDD ที่แตกต่างกัน (dm-cache, flashcashe …)


23

ดูเหมือนจะมีเทคโนโลยีที่แตกต่างหลากหลายให้ใช้ SSD เพื่อทำหน้าที่เป็นแคชสำหรับ HHDs สิ่งที่ฉันรู้:

  • dm-cache (โดย Redhat - ในเคอร์เนล 3.9 ดังนั้นควรเป็นใน Ubuntu 13.10)
  • Flashcache (พัฒนาและใช้งานโดย facebook)
  • Bcache (พัฒนาและใช้งานโดย Google)
  • EnhanceIO (โดย STEC; ขึ้นอยู่กับ Flashcache)

มีความแตกต่างที่น่าสังเกตในการนำไปใช้ต่าง ๆ หรือไม่? สิ่งใดที่ดีที่สุดสำหรับพีซีเดสก์ท็อปทั่วไปที่ใช้ - เพื่อเพิ่มประสิทธิภาพของโปรแกรมปกติเช่นเว็บเบราว์เซอร์หรือเกม


เพื่อเพิ่มประสิทธิภาพฉันพบว่าการติดตั้งอูบุนตู 64 บิตใช้งานได้ดีเครื่องของฉันก็เร็วขึ้นกว่าเดิม! นอกจากนี้เกี่ยวกับแคชคุณควรใช้ ram ที่บีบอัดแคชกับแพ็คเกจนี้zram-configซึ่งจะให้ความสำคัญกับการใช้งาน swap และจัดเก็บเกมบน SDD และทดสอบ เกมบางเกมจะไม่ทำงานเร็วขึ้นมากเกมอื่น ๆ จะทำงานได้ดี! ฉันชอบที่จะไม่ใช้ SDD เป็นแคชเนื่องจากขีด จำกัด ของการเขียน แต่ SDDs จะได้รับราคาถูกเพื่อ thats ไม่กังวลมากอีกต่อไป :)
ราศีกุมภ์พลังงาน

คำตอบ:


14

ฉันไม่รู้จริงๆว่าจะเริ่มต้นอย่างไรเพราะทั้งหมดนี้เป็นข้อมูลที่ยอดเยี่ยม ฉันจะเริ่มต้นด้วยข้อมูลบางอย่างเกี่ยวกับ SSD จากนั้นอธิบายถึงวิธีการแคชที่แตกต่างกันทั้งหมดและไปจากที่นั่น ฉันหวังว่าคุณ

ข้อดีข้อเสีย

  • ราคา: SSD ค่อนข้างแพง
  • ความจุสูงสุดและทั่วไป: SSD ความจุสูงนั้นหายากและมีราคาแพง
  • ความเร็ว: นี่คือจุดที่ SSD ได้เปรียบ
  • ความทนทาน: SSD ไม่มีชิ้นส่วนเคลื่อนไหว

ดีที่สุดที่จะมีระบบไฮบริดที่ดีที่สุดของทั้งสองโลก (ความจุความน่าเชื่อถือความเร็ว ฯลฯ )

เคอร์เนล Linux 3.9 (วางจำหน่ายในวันที่ 28 เมษายน 2013) แนะนำการแคช SSD Device mapper ของเคอร์เนลในขณะนี้มีเป้าหมายแคชที่เรียกว่า dm-cache ที่เปิดใช้งาน SSD หรืออุปกรณ์เก็บข้อมูลอื่น ๆ เพื่อใช้เป็นแคชสำหรับฮาร์ดไดรฟ์ มันช่วยเร่งความเร็วในการเขียนและอ่านข้อมูลเนื่องจากจะทำให้ SSD เร็วขึ้นเพื่อเก็บข้อมูลแคชก่อนแล้วจึงโอนไปยังฮาร์ดไดรฟ์ที่ช้ากว่า

ที่มา: Iwn

Flashcache เป็นโมดูลที่เขียนและเปิดตัวครั้งแรกโดย Facebook (Mohan Srinivasan, Paul Saab และ Vadim Tkachenko) ในเดือนเมษายนปี 2010 มันเป็นโมดูลเคอร์เนลที่ช่วยให้ Writethrough แคชไดรฟ์ในไดรฟ์อื่น ส่วนใหญ่มักใช้สำหรับแคชไดรฟ์แบบหมุนในไดรฟ์โซลิดสเตทขนาดเล็กลงเพื่อเหตุผลด้านประสิทธิภาพ สิ่งนี้จะช่วยให้คุณมีความเร็วของ SSD และขนาดของไดรฟ์การหมุนแบบมาตรฐานสำหรับไฟล์ที่แคชไว้เมื่อเร็ว ๆ นี้ FlashCache เป็นแคชบล็อกการเขียนกลับวัตถุประสงค์ทั่วไปสำหรับ Linux

ที่มา: ArchLinux

Bcache เป็นแคชเลเยอร์เคอร์เนลบล็อกของ Linux อนุญาตให้หนึ่งหรือมากกว่าดิสก์ไดรฟ์ที่รวดเร็วเช่นแฟลชไดรฟ์โซลิดสเตต (SSD) ทำหน้าที่เป็นแคชสำหรับฮาร์ดดิสก์ไดรฟ์ที่ช้ากว่าหนึ่งตัว

ฮาร์ดไดรฟ์มีราคาถูกและใหญ่ SSD นั้นเร็ว แต่เล็กและแพง มันจะไม่ดีถ้าคุณสามารถได้รับข้อดีของทั้งสองอย่างโปร่งใส ด้วย Bcache คุณสามารถมีเค้กของคุณและกินมันได้เช่นกัน

โปรแกรมแก้ไข Bcache สำหรับเคอร์เนล Linux อนุญาตให้หนึ่งใช้ SSD เพื่อแคชอุปกรณ์บล็อกอื่น ๆ มันคล้ายกับ L2Arc สำหรับ ZFS แต่ Bcache ยังทำแคชการเขียนกลับ (นอกเหนือจากการเขียนผ่านการแคช) และระบบไฟล์เป็นผู้ไม่เชื่อเรื่องพระเจ้า มันถูกออกแบบมาให้สามารถเปิดได้โดยใช้ความพยายามน้อยที่สุดและทำงานได้ดีโดยไม่ต้องตั้งค่าใด ๆ โดยค่าเริ่มต้นมันจะไม่แคชตามลำดับ IO เพียงแค่อ่านและเขียนแบบสุ่มว่า SSD นั้นยอดเยี่ยม เหมาะสำหรับเดสก์ท็อปเซิร์ฟเวอร์อาร์เรย์หน่วยเก็บข้อมูลระดับสูงและอาจฝังอยู่

เป้าหมายการออกแบบจะเร็วเท่ากับ SSD และอุปกรณ์แคช (ขึ้นอยู่กับการเข้าชมแคชเทียบกับการพลาดและการเขียนทับเมื่อเขียนทับ) ภายในขอบเขตของข้อผิดพลาด ยังไม่ค่อยมีส่วนใหญ่สำหรับการอ่านตามลำดับ แต่การทดสอบแสดงให้เห็นว่ามันเป็นไปได้อย่างเด่นชัดและแม้แต่ในบางกรณีก็ทำได้ดีกว่า - การเขียนแบบสุ่มเป็นหลัก

ที่มา: Bcache

Bcache มีข้อเสียอย่างใหญ่หลวงและใช้หน่วยความจำจากระบบเพื่อนำแคชไปใช้

EnhanceIO เป็นโซลูชั่นที่ทำงานภายใต้ชั้นแอปพลิเคชันซึ่งทำให้แอปพลิเคชันสามารถใช้ประโยชน์ด้านประสิทธิภาพของ SSD ได้โดยไม่ต้องมีการเปลี่ยนแปลงโครงสร้างพื้นฐานด้านไอทีที่สำคัญ แคช SSD สามารถให้ประโยชน์สูงสุดจากการเปลี่ยนจาก HDD เป็น SSD ในราคาเพียงเศษเสี้ยวของระบบ all-SSD โดยทั่วไประบบแคชจะใช้พลังงานน้อยกว่าระบบที่ใช้ HDD ที่มีประสิทธิภาพใกล้เคียงกันและสร้างประโยชน์ด้านข้างด้วยการลดความต้องการการระบายความร้อน

แคช SSD ยังสามารถยืดอายุการใช้งานของระบบที่มีอยู่ด้วยการปรับปรุงประสิทธิภาพเพื่อตอบสนองความต้องการที่เพิ่มขึ้นผ่านการลงทุนที่เพิ่มขึ้นมากกว่าผ่านการอัพเกรด / เปลี่ยนระบบที่มีอยู่ในปัจจุบัน

การแคชยังช่วยให้สามารถเข้าถึงข้อมูลได้เร็วขึ้นโดยไม่ต้องมีค่าใช้จ่ายในการบริหารหน่วยเก็บข้อมูลเพิ่มเติมเพื่อรับและติดตั้งชั้นวางดิสก์ใหม่กำหนดค่า LUN ใหม่และย้ายข้อมูลไปยัง LUN ใหม่ การแคชเกือบจะโปร่งใสและต้องการการหยุดทำงานเพียงเล็กน้อย EnhanceIO ขึ้นอยู่กับ Flashcache

ที่มา: Stec-Inc

bcache เป็นสิ่งที่ไร้ค่าที่สุดเนื่องจากต้องใช้พาร์ติชันข้อมูลที่จัดเตรียมไว้เป็นพิเศษ สิ่งนี้ทำให้เป็นเรื่องยาก (ถ้าเป็นไปได้) ในการแนบแคชไปยังพาร์ติชั่นที่มีข้อมูลเนื่องจากต้องการความจุ 200% และการย้ายข้อมูลที่ยาวนานเพื่อเปิดใช้งาน / ยกเลิกการแคช

ความสามารถของ EnhanceIO นั้นไม่จำเป็นต้องใช้อุปกรณ์ระดับกลางเลยและสามารถเชื่อมต่อกับอุปกรณ์บล็อกใดก็ได้แบบทันทีแม้ว่าจะติดตั้งอุปกรณ์แล้วก็ตาม อีกสิ่งที่ยอดเยี่ยมมากคือคุณสามารถแนบแคช EnhanceIO ไม่เพียง แต่จะแบ่งพาร์ติชัน แต่ยังกั้นอุปกรณ์บล็อกที่แบ่งพาร์ติชันเพื่อแคชพาร์ติชันทั้งหมดในครั้งเดียว เช่นเดียวกับโมดูล flashcache enchanceio สร้างขึ้นด้วย DKMS และสามารถใช้กับเมล็ดที่เก่ากว่าได้

ที่มา: Debian

ข้อดีของ DM Cache

แคช DM ใช้สถาปัตยกรรมที่เรียบง่ายซึ่งทำให้ปรับได้ง่ายและปรับแต่งได้ง่าย ผู้ใช้สามารถปรับขนาดบล็อกและความจุแคชตามจำนวนข้อมูลที่จะจัดการหรือมูลค่าของข้อมูล หากแอปพลิเคชันเฉพาะต้องการจัดเก็บข้อมูลจำนวนมากตามลำดับผู้ใช้สามารถกำหนดค่าแคชสำหรับวัตถุประสงค์นั้น หากผู้ใช้ต้องการบันทึกข้อมูลในฐานข้อมูลพร้อมกับแคชนั่นจะไม่รบกวนการทำงานของแคช

DM Cache Dis- ข้อดี

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

ที่มา: การเติมเต็มของเฟรเซอร์เชอร์แมน

ดังนั้นจากข้อมูลข้างต้นเป็นที่ชัดเจนว่า EnhanceIO เป็นวิธีที่จะไป แต่ในความคิดของฉันเพราะมันขึ้นอยู่กับ Flashcache ฉันจะไปกับแคชแฟลช แต่ฉันจะลองทั้งสองอย่างแน่นอนก่อนตัดสินใจขั้นสุดท้าย


EnhanceIO: ไดรเวอร์ที่ใช้ซอฟต์แวร์แคช EhanceIO SSD ที่มาจากโครงการ Flashcache แบบโอเพ่นซอร์สของ Facebook ที่มีประโยชน์สำหรับการใช้ SSD เป็นอุปกรณ์แคชสำหรับ HDD แบบดั้งเดิม webupd8.org/2013/05/get-better-linux-desktop-performance.html
Qasim

ขอบคุณสำหรับคำตอบ! หวังว่า EnhanceIO จะลงจอดในเคอร์เนล 3.10 และพร้อมใช้งานใน Ubuntu รุ่นถัดไป
Uli

1
เขียนได้ดี แต่ฉันต้องไฮไลต์ว่าแคช DM ปลอดภัยอย่างสมบูรณ์ถ้าคุณประสบปัญหาคุณไม่สูญเสียข้อมูลใด ๆ ในทางปฏิบัติแคชอาจมีประสิทธิภาพน้อยลงในบางครั้งจนกว่าจะสร้างข้อมูลเมตา
lzap

3
ความคิดเห็นเกี่ยวกับการใช้หน่วยความจำ bcache ไม่ถูกต้องดังนั้นหนึ่ง (อ้างอิง) เกี่ยวกับการแปลง
กาเบรียล

@Gabriel รู้สึกอิสระที่จะปรับเปลี่ยน แต่รวมถึงแหล่งที่มา :).
มิทช์

1

คำติชม: ฉันติดตั้งแพ็คเกจ deb มาตรฐาน flashcache บน Ubuntu เมื่อประมาณหนึ่งปีที่แล้วในโหมดเขียนกลับเพื่อแคช / โฮม (2TB) ไปยังชิ้น 50GB บน SSD มันทำงานได้อย่างยอดเยี่ยมโดยไม่มีปัญหา ฉันมี "hangs" ที่เกี่ยวข้องกับ X สองสามรายการ (เช่นไม่ใช่ของ flashcache) และได้ใช้ "Ctrl-Alt-PrtScr REISUB" สองสามครั้งเพื่อกู้คืนโดยไม่มีปัญหาและไม่มีปัญหาการทุจริต ฉันใช้ flashcache เพราะ a) มี debs ให้ใช้งานและ b) มันไม่ต้องการการสำรองข้อมูลและกู้คืนของ / home

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.