bcache 是我的 ssd 案例的解決方案嗎?
我最近買了一個 240 GB 的 SSD 來加速我的電腦和 1 TB 的硬碟。我雙啟動 Windows 和 Linux。我想以最有效的方式使用我的新 SSD。通過閱讀許多站點,我得出結論,對於 Linux,bcache 是要走的路。我想確保我對 bcache 的理解是正確的。
所以,我想把常用的數據放在SSD上,放在HDD上。但是我在 Windows 和 Linux 上都玩遊戲,所以 240 GB 對兩者來說都不夠(我還使用了幾個程序,它們使用了幾 GB 的空間)。因此,我想將我的 SSD 分成兩個 ~120 GB 分區,一個用於 Intel Smart Response(用於 Windows),第二個用於記憶體 bcache 分區。現在,這是我收集到的關於 bcache 的資訊:
- Bcache 充當 HDD 和 RAM 之間的層
- 我可以有許多由記憶體分區(在 SSD 上)記憶體的支持設備/分區(在 HDD 上)。它們的大小可能大於記憶體分區。
- 最近讀取的數據放在 SSD 上供以後使用
- 我隻掛載記憶體設備而不是任何備份分區,並查看那些備份分區上的文件
- 將現有分區轉換為 bcache 的備份分區很麻煩,但可能
- 調整備份分區的大小也是可能的,但很麻煩
現在這是我的問題:
- 我對 bcache 的了解是否正確?
- bcache 忽略順序 I/O。它如何與載入遊戲一起工作?
- 我可以打亂我的分區或移動它們的起點嗎?(選擇分區時 bcache 是否使用 UUID 或 /dev/sdxx?)
- 我讀到,不建議將 /tmp 或 /var 等分區放在 SSD 上,因為不斷的讀/寫會磨損 SSD。我應該將它們放在單獨的分區上而不是將它們設置為支持分區嗎?
- 交換呢?我應該把它放在SSD上嗎?
- 有沒有比 bcache 更適合我的需求的其他解決方案?
最後一個有點複雜。我試圖將我的 GPU 的 pci 直通設置為 Windows 來賓。我設法在 vm 系統中啟動,我通常安裝在我的硬碟上。所以我可以本地或通過 VM 啟動相同的視窗。由於我想對 Windows 看到的硬體進行最小的更改,因此我將整個 HDD 傳遞到 VM。Windows 只使用它的 NTFS 分區,而我的 Linux 使用剩餘的分區。bcache 和那個設置會有什麼問題嗎?
作為記錄,我使用基本作業系統(基於 Ubuntu 16.04)。
廣告問題 1。
我隻掛載記憶體設備而不是任何備份分區,並查看那些備份分區上的文件
不正確-您安裝了
bcache
設備。它必須在內部由至少一個硬碟設備組成。ssd 記憶體實際上是可選的 - 因此即使您的 ssd 已死,您仍然可以訪問您的數據。至少如果您使用預設設置。休息是真的。
廣告問題 2。
是的,
bcache
模組中有一個啟發式方法試圖區分順序讀取和隨機讀取。但它基於單個系統呼叫的級別工作 - bcache 與文件系統無關:它甚至不知道它讀取文件。所以這一切都歸結為遊戲如何實際載入數據以及最終使用了哪些系統呼叫。如果遊戲使用命名您的遊戲並查看是否有人對其進行了基準測試。或者更好的是:自己進行基準測試。Bcache 確實大大加快了我的系統速度,但我沒有在它們上面玩任何遊戲。廣告問題 3。
是的,
bcache
選擇分區時使用 UUID。你讀過它的文件嗎?請,做。廣告問題 4 和 5。
這取決於您想要交易系統速度與 ssd 降級的程度以及您擁有多少 RAM(
/tmp
通常tmpfs
是由 RAM 支持的)。廣告問題 6。
我係統地評估了至少 2 種可行的 bcache 替代方案。我決定投資 bcache - 主要是為了速度、兼容性和受歡迎程度。那是在2014年。