SSD SSD เพื่อลดเวลาในการหมุน HDD หรือไม่


8

เวอร์ชั่นสั้นก่อน : ฉันกำลังมองหาซอฟต์แวร์ที่ใช้งานร่วมกับ Linux ได้ซึ่งสามารถแคชเขียน HDD อย่างโปร่งใสโดยใช้ SSD อย่างไรก็ตามฉันต้องการหมุน HDD หนึ่งครั้งหรือสองครั้งต่อวันเท่านั้น (เพื่อเขียนข้อมูลแคชไปยัง HDD) เวลาที่เหลือ HDD ไม่ควรหมุนเนื่องจากเสียงรบกวน

ตอนนี้เวอร์ชั่นที่ยาวกว่า : ฉันได้สร้างคอมพิวเตอร์ที่ทำงานเงียบอย่างสมบูรณ์ที่ใช้ Xubuntu มันมี A10-6700T APU, ตัวระบายความร้อนแบบไร้พัดลม, PSU แบบไม่มีพัดลม, SSD ปัญหาคือ: มันยังมี (และต้องการ) HDD ที่มีเสียงดังและฉันต้องการที่จะห้ามไม่ให้มันหมุนในตอนกลางคืน การเขียนทั้งหมดควรเก็บไว้ใน SSD ไม่จำเป็นต้องอ่านในตอนกลางคืน

ตลอดทุกวันคอมพิวเตอร์นี้จะดาวน์โหลดข้อมูลประมาณ 5 GB โดยอัตโนมัติซึ่งจะถูกเก็บไว้ประมาณหนึ่งปีโดยให้ความจุดิสก์ที่ต้องการทั้งหมดน้อยกว่า 2 TB เล็กน้อย ขณะนี้ข้อมูลนี้ถูกจัดเก็บไว้ในฮาร์ดดิสก์ที่มีเสียงรบกวน 3 TB ซึ่งหมุนทั้งกลางวันและกลางคืน บางครั้งฉันต้องเข้าถึงข้อมูลจากหลายเดือนก่อน อย่างไรก็ตามเวลาส่วนใหญ่ฉันจะต้องการข้อมูลจาก 14 วันที่ผ่านมาซึ่งจะพอดีกับ SSD เป็นการดีที่ฉันต้องการโซลูชันที่โปร่งใส (ข้อมูลทั้งหมดในระบบไฟล์เดียว) ซึ่งแคชทั้งหมดเขียนไปยัง SSD เขียนไปยัง HDD เพียงวันละครั้ง การอ่านจะให้บริการโดยแคชหากยังคงอยู่บน SSD มิฉะนั้น HDD จะต้องหมุนขึ้น

ฉันได้ลองbcacheโดยไม่ประสบความสำเร็จ (โดยใช้ cache_mode = writeback, writeback_running = 0, writeback_delay = 86400, sequential_cutoff = 0, congested_write_threshold_us = 0 - และฉันอ่านเกี่ยวกับZFS ZIL / L2ARCแต่ฉันไม่แน่ใจ เป้าหมายของฉันกับ ZFS ตัวชี้ใด ๆ

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

แก้ไข : แคชเป็นคำที่ไม่ถูกต้องสำหรับสิ่งที่ฉันต้องการ ดูเหมือนว่าฉันจะไม่สามารถแก้ไขปัญหาดั้งเดิมได้ในเวลานี้ ขอบคุณทุกคนที่มีส่วนร่วม!


1
ทำไมคุณไม่เก็บข้อมูลไว้ใน SSD เป็นเวลา 14 วัน (หรือมีขนาดพอดี) และเขียนสคริปต์ที่ทำงานวันละครั้งและย้ายสิ่งที่เก่ากว่านั้นไปยัง HDD วิธีนี้ถ้าคุณใช้อะไรที่อายุน้อยกว่า 14 วันคุณจะใช้ SSD และ HDD จะเขียนวันละครั้งเท่านั้น หากคุณต้องการสิ่งที่เก่ากว่าคุณจะต้องเข้าถึง HDD
Richard Powell

นั่นคือสิ่งที่ฉันจะทำตามที่ฉันแนะนำในประโยคสุดท้ายของคำถาม :) หนึ่งในเหตุผลที่ฉันถามคำถามคือเพื่อหลีกเลี่ยงความยุ่งยาก (เป็นที่ยอมรับน้อย) ที่ต้องการหมุนและติดตั้งไดรฟ์ด้วยตนเอง มีระบบไฟล์โปร่งใส
sirprize

คำตอบ:


3

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

ในความเป็นจริง bcache ซึ่งเป็นส่วนหนึ่งของเคอร์เนล mainline จะผ่านการเขียนแบบต่อเนื่องไปยัง hdd แทนที่จะส่งผ่าน SSD เนื่องจากไม่มีข้อได้เปรียบด้านประสิทธิภาพ

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

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

สิ่งที่คุณกำลังดูไม่ใช่การแคชเลย แต่เป็นการสำรองข้อมูลเป็นระยะของระบบไปยัง HDD ฉันเดาว่าคุณอาจจะสามารถทำให้บางสิ่งบางอย่างร่วมกันกับAufs - สาขาแรกใน HDD ที่มีไฟล์ขนาดใหญ่ (ดังนั้นจึงต้องใช้ความระมัดระวัง) และสาขาใน SSD จากนั้นเรียกใช้สคริปต์ที่ย้ายไฟล์จาก SSD ไปยัง HDD เป็นระยะขณะที่สามารถเข้าถึงได้จากตำแหน่งเดียวกัน ฉันยังไม่ได้ทดสอบสิ่งนี้ แต่ต่างจากการแคชการย้ายไฟล์เป็นระยะ ๆ และการใช้ aufs อาจเป็นสิ่งที่คุณต้องการ

วิธีที่ง่ายที่สุดในการจัดเรียงไฟล์ตามอายุคือ ls -tr-t เรียงลำดับตามเวลา (ใหม่สุดถึงเก่าที่สุด) และ r กลับคำสั่งซื้อ (หากคุณมีช่วงที่เฉพาะเจาะจงfind . -mtime nทำงานได้ยอดเยี่ยม n เนื่องจากตัวเลขที่ระบุจะให้คุณแก้ไขไฟล์เมื่อไม่กี่วันที่ผ่านมา -n ให้ไฟล์ที่คุณแก้ไขในช่วง n วันที่ผ่านมาและ +n ให้ไฟล์ที่แก้ไขแก่คุณในวันที่ผ่านมา) คุณสามารถค้นหาแนวคิดบางประการเกี่ยวกับวิธีใช้งานได้ที่นี่

ตั้งแต่ความเงียบสงบเป็นเป้าหมายที่แท้จริงของคุณคุณสามารถตรวจสอบว่าไดรฟ์ของคุณสนับสนุนโหมดเงียบด้วยhdparm -M /dev/sda- นี้ควรจะมีอะไรบางอย่างที่ส่งออกเช่นในกรณีที่คุณสามารถทำให้เงียบฮาร์ดดิสก์ของคุณมีคำสั่งacoustic = 254 (128=quiet ... 254=fast) hdparm -M 128 /dev/sdaเรียกใช้คำสั่งตรงกันข้ามhdparm -M 1254 /dev/sdaเมื่อคุณต้องการความเร็วมากขึ้น


ขอบคุณสำหรับการป้อนข้อมูลนี่คือคำตอบที่ฉันชอบ ฉันไม่รู้เกี่ยวกับ aufs และจะตรวจสอบมัน
sirprize

ความโปร่งใสเป็นไปไม่ได้สำหรับกระบวนการแบบแบ็คอัพเหมือนของคุณ - ฉันสามารถคิดได้หลายวิธีในการทริกเกอร์งานประเภทการสำรองข้อมูล แต่คุณกำลังมองที่การเขียนสคริปต์จริง ๆ แล้วมีบางส่วน / awk เพื่อเลือกไฟล์ที่คุณต้องการ ไฟล์อาจมี cron ฉันสงสัยว่า hdparm เพียงอย่างเดียวอาจแก้ปัญหา 'เสียงดัง' กับฮาร์ดไดรฟ์ของคุณได้อย่างมีนัยสำคัญและมันจะช่วยให้คุณปิดไดรฟ์เมื่อไม่ได้ใช้งานซึ่งอาจเป็นประโยชน์เช่นกัน
Geek

ขอขอบคุณอีกครั้งฉันจะใช้ bash-fu, cron, hdparm, mount และ rsync ตามที่แนะนำในประโยคสุดท้ายของคำถาม hdparm -M ช่วยทำให้ไดรฟ์เงียบขึ้นเล็กน้อย แต่ฉันชอบดิสก์ที่ไม่หมุนตลอดเวลาตอนกลางคืน
sirprize

3

เนื่องจากคำตอบอื่น ๆ ได้แก้ไขปัญหาจากมุมมองของซอฟต์แวร์ฉันจึงคิดที่จะรวมข้อมูลบางอย่างเกี่ยวกับการแก้ปัญหาฮาร์ดแวร์

บทความหลักฐานเสียงฮาร์ดไดรฟ์ของคุณแสดงรายการตัวเลือกต่อไปนี้:

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

ฉันสามารถเป็นพยานได้จากประสบการณ์ของฉันเองที่ฉันไม่สามารถได้ยินฮาร์ดดิสก์ 4 TB ใหม่ของฉันได้แม้ในขณะที่คัดลอกไฟล์ที่มีขนาดใหญ่มาก

กับงานวิจัยบางส่วนหนึ่งยังสามารถหาวัสดุอะคูสติกสำหรับรองรับฮาร์ดดิสก์เช่น SilentDrive HD Enclosure และวัสดุอะคูสติกหรือ เงียบฮาร์ดไดรฟ์ NoiseMagic NoVibes III การติดตั้งระบบ ฉันไม่ทราบว่าจะขายได้ที่ไหนและแถบยางด้านบนดูเหมือนว่าจะมีประสิทธิภาพเกือบ

ท่านสามารถกันเสียงคอมพิวเตอร์ทั้งหมดได้ ตัวอย่างเว็บไซต์ที่ขายวัสดุกันเสียงคือQuiet PC USA , AcousticPCหรือDynamatแต่มีอยู่มากมาย

เคสคอมพิวเตอร์บางรุ่นได้รับการออกแบบมาเพื่อการทำงานที่เงียบ ดูตัวอย่างหกเสียงเบากรณีผลการดำเนินงานที่มุ่งเน้นการทดสอบ

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


ขอบคุณสำหรับความคิดเห็นของคุณมี upvote ฉันใช้ฮาร์ดแวร์พิเศษอยู่แล้วในกรณีนี้ฮาร์ดแวร์เงียบสนิทยกเว้นไดรฟ์ โดย "สัญญาณรบกวน" ฉันหมายถึงเสียงปกติของฮาร์ดไดรฟ์ที่ดีต่อสุขภาพ ฉันจะต้องใช้ cron เพื่อหมุนไดรฟ์ขึ้นติดตั้งสำรองทำข้อมูลถอนติดตั้งแล้วหมุนลงอีกครั้ง
sirprize

2

หลายรูปแบบของPuppy Linuxจะขึ้นอยู่กับอูบุนตู แต่ใช้Aufs

ลูกสุนัขทำงานโดยสิ้นเชิงจาก RAM ไม่มีการเข้าถึง HDD ในการทำงานปกติ

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

เช่นเดียวกับทุกอย่างใน Puppy คุณสามารถใช้ GUI เพื่อกำหนดความถี่ที่คุณต้องการให้บันทึกระบบไฟล์ RAM โดยทั่วไปจะเป็นทุกๆ 10 นาที แต่ไม่มีอะไรจะป้องกันการตั้งค่าให้ถ่ายโอนข้อมูลทุก ๆ 720 นาที (12 ชั่วโมง)

Puppy Linux Event Manager

ข้อความที่ตัดตอนมาจากmenu.lstไฟล์bootloader Grub4DOS ของฉันนี้แสดงการตั้งค่าสำหรับpmediaตัวเลือกเคอร์เนลที่ระบุว่าใช้ flashdrive แทน HDD ...

# menu.lst produced by grub4dosconfig-v1.7.1
#
# 'kernel ... pmedia=ideflash'
#     Treat the HDD as a flashdrive: infrequent writes of filesystem to savefile

title Puppy Lupu 5.2.8 (sda3/puppy528lu) Cached\nUse SWAP; changes to RAM; flush to disk every 10min (fastest)
  find --set-root --ignore-floppies --ignore-cd /puppy528lu/initrd.gz
  kernel /puppy528lu/vmlinuz   psubdir=puppy528lu pmedia=ideflash pfix=copy,fsck
  initrd /puppy528lu/initrd.gz

หมายเหตุเกี่ยวกับ "รูปแบบ" ของ Puppy Linux ...
ฉันกำลังใช้ Puppy Linux 5.2.8 "Lupu" ซึ่งสร้างจาก (เรียงตามลำดับ) Ubuntu 10.04 Lucid Lynx รุ่นนี้มักจะเรียกว่า "สุวิมล" แทน "Lupu" เนื่องจากต้นกำเนิด นอกจากนี้ยังมีรุ่นที่ใช้ Slackware และการกระจายอื่น ๆ เนื่องจากคุณใช้ Xubuntu อยู่แล้ว Puppy Linux Lupu จึงเป็นที่คุ้นเคยที่สุด มันก็จะเร็วขึ้นมาก ฉันใช้ Xubuntu ประมาณหนึ่งปีก่อนพบลูกสุนัข

นอกจากนี้ยังมีเวอร์ชั่นใหม่ที่ใช้ "Ubuntu Precise Pangolin" ที่เรียกว่า "Puppy Linux Precise" มีการเปลี่ยนแปลงที่สำคัญกับเคอร์เนลที่ใช้ในเวอร์ชันที่ใหม่กว่าซึ่งอาจทำงานได้ไม่ดีกับฮาร์ดแวร์รุ่นเก่า หากเครื่องของคุณน้อยกว่า 5yo คุณอาจพอใจกับ Precise มากขึ้น ฉันเชื่อว่าเทคนิคที่อธิบายไว้ข้างต้นจะยังคงทำงานได้อย่างแม่นยำแม้ว่าตัวเลือกที่แน่นอน ฯลฯ อาจแตกต่างกัน แต่ฉันไม่สามารถทดสอบได้


0

วิธีแก้ปัญหาสั้น ๆ และสามารถนำไปใช้งานได้อย่างรวดเร็ว (แต่ไม่ใช่คำตอบสำหรับสิ่งที่คุณต้องการ) คือ: ถ่ายโอนดิสก์หน่วยความจำที่อื่น อาจเป็นไฟล์เซิร์ฟเวอร์ netowrk chassi (เช่น WD world edition) หรือดิสก์ USB3 และคุณสามารถอยู่ในห้องเดียวกับพีซีที่เงียบหรือในห้องอื่นเพื่อหลีกเลี่ยงการฟังอย่างสมบูรณ์

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

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

โซลูชันที่ยาวกว่านั้นไม่เหมาะอย่างยิ่ง (เช่นไม่มีแอปพลิเคชันเดี่ยว) แต่คุณจะได้รับไดรฟ์ในกล่องเดียวกันกับ ssd และบรรลุความเร็วที่สูงขึ้น (แต่คุณต้องการความเร็วสูงกว่าเครือข่ายจริงๆเพียง 5GB / วัน?):

คุณสามารถใช้smartctlเพื่อกำหนดเวลาการหมุนของไดรฟ์และเก็บรักษาไดรฟ์นี้ในสถานะที่ไม่ได้ต่อเชื่อม - เพื่อหลีกเลี่ยงการให้ OS ทำสิ่งต่างๆบนไดรฟ์ จากนั้นเพียงแค่เขียนสคริปต์mountและสำรองข้อมูล (ตามด้านบน) ข้อมูลที่คุณต้องการ


น่าเสียดายที่นั่นคือทุกสิ่งที่ฉันต้องการหลีกเลี่ยง ขอบคุณสำหรับเวลาของคุณ!
sirprize

0

คุณไม่ชอบคำตอบของฉัน แต่จริง ๆ แล้วคุณใช้คำว่าแคชในทางที่ผิดคุณกำลังอธิบายวิธีสำรองข้อมูลจริง ๆ ลองดูที่ rsync หรือค้นหาวิธีแก้ไขปัญหาการสำรองข้อมูลเพิ่มเติมหากคุณต้องการบางสิ่งที่สมบูรณ์ยิ่งขึ้น


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