ทำให้ดิสก์หลับและตื่นขึ้นเมื่อจำเป็นเท่านั้น


10

ฉันต้องการเชื่อมต่อฮาร์ดดิสก์อื่นเข้ากับคอมพิวเตอร์ของฉันซึ่งฉันต้องการที่จะนอนหลับ 99% ของเวลา ฉันจะใช้มันเพื่อบางสิ่งเท่านั้น แต่ฉันต้องการให้ติดตั้งตลอดเวลา

เพื่อให้บรรลุนี้ฉันต้องการที่จะรู้ว่า:

  1. ฉันจะบันทึกกระบวนการที่เข้าถึงอุปกรณ์ได้อย่างไร ฉันต้องการการบันทึกเพื่อให้สามารถบอกได้ว่าอะไรเป็นสาเหตุที่ทำให้ฮาร์ดดิสก์ตื่นถ้ามันทำดังนั้นฉันอาจจะทำมัน
  2. มีการตั้งค่าเคอร์เนลพิเศษที่ฉันต้องทำเพื่อให้อุปกรณ์อาจนอนหลับนานขึ้น?
  3. ฉันจะตั้งช่วงเวลาสลีปของฮาร์ดดิสก์ได้อย่างไร

คำตอบ:


13

ช่วงเวลาสลีปเรียกว่า "APM" (การจัดการพลังงานอัตโนมัติ) และ spindown_time สิ่งนี้ถูกควบคุมด้วยhdparmสิ่งนี้:

hdparm -B 50 -S 36 /dev/disk/by-label/BACKUP-HDD

มันจะทำให้ HDD ของคุณโดดเด่นในขณะไม่มีการใช้งาน ~ 3 นาที


4

ในขณะที่คุณอยู่บน linux คุณสามารถใช้fatraceยูทิลิตี้ใหม่ซึ่งบันทึกการเข้าถึงไฟล์ทุกครั้งและบอกคุณว่ากระบวนการใดรับผิดชอบ:

https://launchpad.net/fatrace

ข้อมูลเพิ่มเติมที่นี่:

http://www.piware.de/2012/02/fatrace-report-system-wide-file-access-events/

มันใช้ประโยชน์จากlinux fanotify API ( รายละเอียดเพิ่มเติม ) มีให้ตั้งแต่ linux kernel 2.6.37

fatrace ไม่ได้บรรจุโดยการกระจายทั้งหมด ณ เดือนกรกฎาคม 2014 (เพิ่งเข้าสู่การทดสอบเดเบียนเมื่อเร็ว ๆ นี้ดังนั้นควรจัดส่งใน 'jessie') แต่ติดตั้งได้ง่ายจากแหล่งที่มา


1
ฉันไม่รู้ว่าคุณหมายถึงอะไรโดยการแจกแจง "มากที่สุด" ตามปกติ Debian คือdistro สุดท้ายที่จะได้รับบางสิ่งบางอย่าง ฉันมีมันมีอยู่บน Fedora สำหรับค่อนข้างบางเวลา ...
ไมเคิลแฮมป์ตัน

3

http://en.wikipedia.org/wiki/Fuser_%28Unix%29 - fuser เป็นคำสั่ง UNIX ที่ใช้เพื่อแสดงว่ากระบวนการใดกำลังใช้ไฟล์ระบบไฟล์หรือซ็อกเก็ตที่ระบุ

http://sourceforge.net/projects/hdparm/ - รับ / ตั้งค่าพารามิเตอร์ไดรฟ์ ATA / SATA ภายใต้ Linux (มองหาตัวเลือก -S)

http://sg.danny.cz/sg/sg3_utils.html - แพ็คเกจ sg3_utils มีโปรแกรมอรรถประโยชน์ที่ส่งคำสั่ง SCSI ไปยังอุปกรณ์ เช่นเดียวกับอุปกรณ์ในการขนส่งแบบดั้งเดิมที่เกี่ยวข้องกับ SCSI (มองหา sg_start)


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

ฉันเดา hdparam เป็นสิ่งที่ฉันจะใช้ในการตั้งค่าเวลารอก่อนนอน? และ sg3_utils เป็นเครื่องมือที่ทรงพลัง แต่ฉันจะไม่ใช้มันในกรณีนี้เหรอ? (ในฐานะที่ผมคิดว่าผมจะไม่ได้มีการระบุด้วยตนเองเมื่อ HDD ควรนอนหลังจากที่ตั้งขึ้นโดยใช้ hdparam?)
ลบ



0

ฉันมีปัญหาที่คล้ายกัน ฉันมี SSD /dev/sdbพร้อมด้วยระบบปฏิบัติการ (Linux Mint 18.1 จาก Ubuntu Xenial) และ HDD /dev/sdaพร้อมข้อมูลซึ่งฉันใช้เป็นครั้งคราว ดิสก์ทั้งสองนั้นได้รับการเข้ารหัส พาร์ติชันของ HDD ไม่ได้ถูกเมาท์ และในเวลาไม่กี่นาที HDD ก็จะเริ่มทำงานจากนั้นก็นอนหลับและจะกลับมาทำงานอีกครั้ง ความยุ่งเหยิง

นี่เป็นคำถามที่ซ้ำกันพร้อมคำตอบที่มีประโยชน์ซึ่งแนะนำauditdให้ค้นหากระบวนการที่ไม่เหมาะสม

apt-get install auditd
auditctl -w /dev/sda -p rwa

จากนั้นฉันก็บังคับให้ HDD เข้าสู่โหมดhdparm -Y /dev/sdaสลีป จากนั้นรอจนกว่าฉันจะได้ยิน HDD หมุนขึ้นอีกครั้ง ausearch -f /dev/sdaจากนั้นเรียก ในกรณีของฉันมันแสดงรายการดังต่อไปนี้

time->Sat Feb 25 12:38:17 2017
type=PROCTITLE msg=audit(1488022697.651:1744): proctitle=2F7573722F6C69622F756469736B73322F756469736B7364002D2D6E6F2D6465627567
type=PATH msg=audit(1488022697.651:1744): item=0 name="/dev/sda" inode=376 dev=00:06 mode=060660 ouid=0 ogid=6 rdev=08:00 nametype=NORMAL
type=CWD msg=audit(1488022697.651:1744):  cwd="/"
type=SYSCALL msg=audit(1488022697.651:1744): arch=c000003e syscall=2 success=yes exit=12 a0=f3fb90 a1=800 a2=7f4745221f64 a3=30 items=1 ppid=1 pid=18520 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="pool" exe="/usr/lib/udisks2/udisksd" key=(null)

ส่วนที่เกี่ยวข้องคือ= "exe / usr / lib / udisks2 / udisksd" แม้ว่าฉันจะมีsmartmontoolsใครsmartdเป็นคนร้ายเช่นกัน ผมถอนการติดตั้งsmartmontoolsและหยุดให้บริการกับudisk2 service udisks2 stopหลังจาก HDD นั้นสลีปตามที่คาดไว้

โปรดทราบว่าudisks2จะเริ่มโดยอัตโนมัติเมื่อฉันเปิดแอปพลิเคชันDisksดังนั้นฉันต้องหยุดอีกครั้ง ข้อเสียอีกประการหนึ่งคือพารามิเตอร์ SMART ไม่ได้รับการตรวจสอบสำหรับดิสก์ทั้งสองซึ่งไม่ดี แต่เป็นการแก้ปัญหาที่เหมาะสม

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

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