Bộ nhớ cache SSD để giảm thiểu thời gian quay ổ cứng?


8

phiên bản ngắn đầu tiên : Tôi đang tìm kiếm phần mềm tương thích với Linux có khả năng lưu bộ nhớ cache ghi trong ổ cứng bằng SSD. Tuy nhiên, tôi chỉ muốn quay ổ cứng một hoặc hai lần một ngày (để ghi dữ liệu được lưu vào bộ nhớ cache vào ổ cứng). Thời gian còn lại, ổ cứng không nên quay do lo ngại tiếng ồn.

Bây giờ là phiên bản dài hơn : Tôi đã xây dựng một máy tính hoàn toàn im lặng chạy Xubfox. Nó có APU A10-6700T, bộ làm mát không quạt khổng lồ, PSU không quạt, SSD. Vấn đề là: nó cũng có (và cần) một ổ cứng ồn ào và tôi muốn cấm quay nó trong đêm. Tất cả các ghi nên được lưu vào bộ nhớ cache trên SSD, không cần đọc trong đêm.

Trong suốt mỗi ngày, máy tính này sẽ tự động tải xuống khoảng 5 GB dữ liệu sẽ được giữ lại trong khoảng một năm, cho tổng dung lượng đĩa cần thiết ít hơn 2 TB. Dữ liệu này hiện được lưu trữ trên ổ đĩa cứng ồn 3 TB đang quay cả ngày lẫn đêm. Đôi khi, tôi sẽ cần truy cập một số dữ liệu từ vài tháng trước. Tuy nhiên, hầu hết thời gian tôi sẽ chỉ cần dữ liệu từ 14 ngày qua, sẽ phù hợp với SSD. Lý tưởng nhất, tôi muốn một giải pháp minh bạch (tất cả dữ liệu trên một hệ thống tệp) lưu trữ tất cả ghi vào ổ SSD, chỉ ghi vào ổ cứng một lần một ngày. Việc đọc sẽ được phục vụ bởi bộ đệm nếu chúng vẫn còn trên SSD, nếu không thì ổ cứng sẽ phải quay lên.

Tôi đã cố gắng bcache mà không có nhiều thành công (sử dụng cache_mode = writeback, writeback_running = 0, writeback_delay = 86400, sequential_cutoff = 0, congested_write_threshold_us = 0 - bất cứ điều gì thiếu?) Và tôi đọc về ZFS ZIL / L2ARC nhưng tôi không chắc là tôi có thể đạt được mục tiêu của tôi với ZFS. Bất kỳ con trỏ?

Nếu vẫn thất bại, tôi chỉ cần sử dụng một số tập lệnh để tự động sao chép tệp vào ổ đĩa lớn trong khi xóa các tệp cũ nhất khỏi SSD.

Chỉnh sửa : Cache thực sự là thuật ngữ sai cho những gì tôi muốn. Có vẻ như giải pháp dự định ban đầu là không thể đối với tôi tại thời điểm này. Cảm ơn mọi người đã đóng góp!


1
Tại sao bạn không giữ dữ liệu có giá trị trong 14 ngày (hoặc rất phù hợp) trên SSD và viết một tập lệnh chạy mỗi ngày một lần và chuyển bất cứ thứ gì cũ hơn vào ổ cứng? Bằng cách này, nếu bạn đang sử dụng bất cứ thứ gì dưới 14 ngày tuổi, bạn sẽ sử dụng SSD và ổ cứng sẽ chỉ ghi một lần một ngày. Nếu bạn cần một cái gì đó cũ hơn, bạn sẽ phải truy cập vào ổ cứng.
Richard Powell

Đó chính xác là những gì tôi sẽ làm, như tôi đã đề xuất trong câu cuối của câu hỏi :) Một trong những lý do tôi đặt câu hỏi là để tránh rắc rối (nhỏ phải thừa nhận) là cần phải quay lên và lắp ổ đĩa bằng tay thay vì chỉ có một hệ thống tập tin minh bạch.
sirprize

Câu trả lời:


3

Đó không thực sự là cách thức hoặc lý do tại sao bộ nhớ đệm hoạt động - bộ nhớ đệm có nghĩa là tận dụng tốc độ nhanh hơn và truy cập ngẫu nhiên tốt hơn của SSD hoặc bộ nhớ khác, thay vì giảm thiểu ghi vào hdd. Bộ nhớ đệm được thiết kế để tối đa hóa tốc độ, không giảm ghi, bằng cách có bộ đệm nhỏ hơn, nhanh hơn sao lưu thiết bị lưu trữ lớn, chậm.

Trong thực tế, bcache, một phần của nhân linux dòng chính, sẽ chỉ truyền các ghi tuần tự vào hdd, thay vì chuyển nó qua SSD vì không có lợi thế về hiệu năng.

ZIL / L2Arc sử dụng SSD để lưu trữ nhật ký (trong trường hợp ZIL) và các cụm tệp thường được sử dụng (với L2Arc). ZIL tăng tốc độ ghi đồng bộ bằng cách lưu trữ chúng cho đến khi tất cả chúng sẵn sàng để được viết. L2Arc lưu trữ các tệp thường truy cập trên bộ nhớ nhanh hơn. Không ai trong số này sẽ cho phép bạn làm những gì bạn cần.

Ổ đĩa Fusion cũng sử dụng ổ SSD và ổ cứng trong suốt đưa các tệp thường được sử dụng vào ổ SSD để đọc nhanh hơn và ổ cứng để lưu trữ số lượng lớn các tệp ít được sử dụng. Nó cũng không cho phép bạn sử dụng SSD làm không gian đầu và thường xuyên sao lưu các tệp vào ổ đĩa chính

Những gì bạn đang xem không phải là bộ nhớ đệm, mà là các bản sao lưu định kỳ của hệ thống vào ổ cứng. Tôi đoán ou có thể làm mờ một cái gì đó cùng với Aufs - nhánh đầu tiên trên ổ cứng với các tệp lớn hơn (vì vậy cần có độ chính xác) và một nhánh trên SSD, sau đó chạy tập lệnh di chuyển các tệp từ SSD sang Ổ cứng định kỳ, trong khi có thể truy cập từ cùng một vị trí. Tôi chưa thử nghiệm điều này, nhưng không giống như bộ nhớ đệm, việc di chuyển các tệp và sử dụng aufs định kỳ có thể sẽ chính xác như những gì bạn muốn.

Cách đơn giản nhất để sắp xếp các tệp theo độ tuổi là ls -tr - t sắp xếp theo thời gian (mới nhất đến cũ nhất) và r đảo ngược thứ tự. (Nếu bạn có một phạm vi cụ thể trong tâm trí find . -mtime ncác công trình n tuyệt vời như một số cụ thể cung cấp cho bạn tập tin sửa đổi n ngày trước, -n mang đến cho bạn tập tin sửa đổi trong những ngày cuối cùng n và n + cung cấp cho bạn tập tin sửa đổi n days ago). Bạn có thể tìm thấy một số ý tưởng về cách sử dụng nó ở đây

Vì sự yên tĩnh là mục tiêu thực sự của bạn, bạn có thể kiểm tra xem ổ đĩa của bạn có hỗ trợ chế độ im lặng hay không hdparm -M /dev/sda- điều này sẽ tạo ra một cái gì đó như acoustic = 254 (128=quiet ... 254=fast), trong trường hợp đó bạn có thể làm cho ổ cứng của bạn yên lặng hơn bằng lệnh hdparm -M 128 /dev/sda. Chạy lệnh ngược lại hdparm -M 1254 /dev/sdakhi bạn cần thêm tốc độ.


Cảm ơn cho đầu vào, đây là câu trả lời yêu thích của tôi chưa. Tôi không biết về aufs và sẽ xem xét nó.
sirprize

Tính minh bạch không thực sự khả thi đối với quy trình được xử lý theo đợt như của bạn - Tôi có thể nghĩ ra nhiều cách để kích hoạt công việc loại sao lưu, nhưng bạn thực sự đang xem kịch bản, một số sed / awk để chọn tệp bạn cần và di chuyển các tập tin, có thể với cron. Tôi nghi ngờ một nửa hdparm một mình có thể giải quyết vấn đề 'độ ồn' đáng kể với ổ cứng của bạn và nó sẽ cho phép bạn tắt nguồn ổ đĩa khi không sử dụng, điều này cũng có thể hữu ích.
Journeyman Geek

Cảm ơn một lần nữa, tôi sẽ sử dụng một số bash-fu, cron, hdparm, mount và rsync như được đề xuất trong câu cuối cùng của câu hỏi. hdparm -M đã giúp làm cho ổ đĩa yên tĩnh hơn một chút, nhưng tôi thích đĩa không quay tròn trong đêm.
sirprize

3

Vì các câu trả lời khác đã xử lý vấn đề theo quan điểm phần mềm, tôi nghĩ sẽ bao gồm một số thông tin về các giải pháp phần cứng.

Bài viết Sound Proof Ổ cứng của bạn liệt kê các tùy chọn sau:

  • Chống phân mảnh ổ cứng của bạn
  • Bọc ổ cứng trong các dải cao su để làm giảm độ rung
  • Sử dụng ổ đĩa cứng mới: Hầu hết các ổ đĩa cứng hiện nay đều được trang bị vòng bi động chất lỏng, cho phép các đĩa cứng gần như im lặng ngay cả khi quay với tốc độ rất cao.

Tôi có thể làm chứng từ kinh nghiệm của bản thân rằng tôi không bao giờ có thể nghe thấy đĩa cứng 4 TB mới của mình, ngay cả khi sao chép các tệp rất lớn.

Với một số nghiên cứu, người ta cũng có thể tìm thấy các vật liệu làm giảm âm thanh cho đĩa cứng, chẳng hạn như Vật liệu cách âm & bao vây SilentDrive HD hoặc Hệ thống gắn ổ đĩa cứng SilentMagic NoVibes III . Tôi không biết những thứ này được bán ở đâu, và các dải cao su ở trên dường như rất hiệu quả.

Người ta cũng có thể cách âm toàn bộ máy tính. Một số trang web ví dụ bán vật liệu cách âm là Quiet PC USA , AcousticPC hoặc Dynamat , nhưng có rất nhiều trang như vậy.

Một số trường hợp máy tính đã được thiết kế cho hoạt động im lặng. Xem ví dụ
Sáu trường hợp tiếng ồn thấp, định hướng hiệu suất, đã thử nghiệm .

Như một nhận xét cuối cùng, một ổ cứng ồn ào, kêu lách cách, rít hoặc rít có thể là một dấu hiệu cho thấy ổ cứng của bạn đang bắt đầu hỏng, vì vậy hãy cẩn thận.


Cảm ơn bạn đã phản hồi của bạn, có một upvote. Tôi đã sử dụng phần cứng chuyên dụng - trong trường hợp này, phần cứng hoàn toàn im lặng trừ ổ đĩa. Bằng "tiếng ồn" tôi đang nói đến âm thanh bình thường của một ổ cứng khỏe mạnh. Tôi chỉ đơn giản là sẽ phải sử dụng cron để quay ổ đĩa lên, gắn kết nó, tạo một bản sao lưu, ngắt kết nối và sau đó quay nó xuống một lần nữa.
sirprize

2

Một số biến thể của Puppy Linux dựa trên Ubuntu nhưng sử dụng Aufs .

Puppy chạy hoàn toàn từ RAM, không có truy cập ổ cứng trong hoạt động bình thường.

Nếu bạn nói với Puppy rằng ổ cứng của bạn là ổ đĩa flash, nó sẽ chuyển hệ thống tập tin RAM sang đĩa định kỳ thay vì liên tục. Điều này được thiết kế để giảm sự hao mòn của việc ghi thường xuyên vào ổ đĩa flash nhưng cũng hoạt động tốt trên ổ cứng.

Giống như mọi thứ trong Puppy, bạn có thể sử dụng GUI để đặt tần suất bạn muốn lưu hệ thống tệp RAM. Thông thường, điều này sẽ là cứ sau 10 phút hoặc lâu hơn nhưng chẳng có gì ngăn cản việc cài đặt nó để đổ cứ sau 720 phút (12 giờ).

Quản lý sự kiện Puppy Linux

Đoạn trích này từ menu.lsttệp bộ tải khởi động Grub4DOS của tôi cho thấy cài đặt cho pmediatùy chọn kernel cho biết nó đang sử dụng flashdrive thay vì ổ cứng ...

# 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

Lưu ý về "các biến thể" của Puppy Linux ...
Tôi đang sử dụng Puppy Linux 5.2.8 "Lupu" dựa trên (được xây dựng bằng cách giảm xuống) Ubuntu 10.04 Lucid Lynx. Phiên bản này cũng thường được gọi là "Lucid" thay vì "Lupu" do nguồn gốc của nó. Ngoài ra còn có các phiên bản dựa trên Slackware và một số bản phân phối khác. Vì bạn đã sử dụng Xubfox, Puppy Linux Lupu sẽ là thứ quen thuộc nhất. Nó cũng sẽ nhanh hơn nhiều. Tôi đã sử dụng Xubfox khoảng một năm trước khi tìm thấy Puppy.

Ngoài ra còn có một phiên bản mới hơn nhiều dựa trên "Ubuntu Precise Pangolin" có tên là "Puppy Linux Precise". Có những thay đổi lớn đối với kernel được sử dụng trong phiên bản mới hơn có thể không hoạt động tốt với phần cứng cũ. Nếu máy của bạn dưới 5yo, bạn có thể hạnh phúc hơn với Chính xác. Tôi tin rằng kỹ thuật được mô tả ở trên vẫn sẽ hoạt động trên Chính xác mặc dù các tùy chọn chính xác, v.v. có thể khác nhau nhưng không thể kiểm tra được.


0

giải pháp ngắn gọn và có thể thực hiện nhanh chóng (nhưng không trả lời chính xác những gì bạn muốn) là: chuyển đĩa lưu trữ ở nơi khác. nó có thể là một máy chủ tệp netowrk chassi (như phiên bản thế giới WD) hoặc đĩa USB3 và bạn có thể đặt nó trong cùng một phòng với máy tính yên tĩnh hoặc trong một phòng khác để tránh nghe hoàn toàn.

Theo ý kiến ​​của tôi thì điều này tốt hơn vì bạn chắc chắn sẽ chỉ sử dụng ổ đĩa khi bạn muốn truyền dữ liệu qua mạng - HĐH có thể thực hiện việc cân bằng lại cây hoặc hệ thống tập tin khác mà bạn không thể tránh và làm phiền bạn . Vì vậy, phòng khác nhau là một điểm cộng lớn.

Bộ nhớ đệm phải đủ dễ dàng - chỉ cần sao lưu dữ liệu của ngày vào đĩa bên ngoài mà bạn có thể thực hiện bằng các giải pháp như rsynchoặc unison.

Giải pháp dài hơn một lần nữa không lý tưởng (nghĩa là không có ứng dụng đơn lẻ) nhưng bạn sẽ nhận được ổ đĩa trong cùng một hộp với ssd và đạt tốc độ cao hơn (nhưng bạn có thực sự cần tốc độ cao hơn mạng chỉ 5GB / ngày không?):

bạn có thể sử dụng smartctlđể đặt thời gian quay xuống ổ đĩa của mình và giữ ổ đĩa này ở trạng thái chưa từng có - để tránh việc HĐH thực hiện công việc trên ổ đĩa. Sau đó, chỉ cần viết một tập lệnh mountvà sao lưu (như trên) dữ liệu bạn cần.


Thật không may, đó là tất cả những điều tôi muốn tránh. Cảm ơn thời gian của bạn mặc dù!
sirprize

0

Bạn sẽ không thích câu trả lời của tôi nhưng thực sự bạn đang lạm dụng thuật ngữ bộ đệm, bạn thực sự đang mô tả một giải pháp sao lưu. Hãy xem rsync hoặc tìm kiếm thêm các giải pháp sao lưu khác nếu bạn muốn một cái gì đó hoàn thiện hơn.


Điều này là hoàn toàn đúng, và là những gì tôi đề cập sâu trong câu trả lời của mình :)
Journeyman Geek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.