我为我的笔记本电脑购买了一块新的 250GB 三星 850 EVO SSD,我想将其用作主存储设备,同时将旧的但仍能运行的 250GB 7500 RPM HDD 与适配器托架一起放在以前的 DVD 托架中。
目前,HDD 只有一个大的 ext4 分区,其中包含操作系统、应用程序和数据文件。我想使用 HDD 来存储数据,但我不想因此而错过 SSD 速度提升的机会。
我想将 SSD 上 50GB 甚至更小的分区与 HDD 上的分区合并,以便访问最多、修改最少的文件自动移动到 SSD。
我看过类似的缓存埃南切奥和缓存,但它们似乎不是我想要的,因为(如果我错了请纠正我):
- 从可用空间量中减去缓存分区占用的空间。
- 缓存会加快对最常访问的文件的访问速度,而不管这些文件的修改频率是否最低,这违背了不想磨损 SSD 的目标。
以上是否正确,或者缓存(这两个中的哪一个?)可以帮助我实现目标?如果以上是正确的,您是否知道任何其他可行的解决方案?
会联合文件系统, 喜欢覆盖文件系统,这能帮上忙吗?如果你监控硬盘上访问次数最多的文件(atime
每天跟踪它们),并找出其中修改次数最少的文件(跟踪它们的mtime
),理论上你可以将这些文件移动到固态硬盘,释放硬盘上的空间,而联合文件系统可以让这一切对用户透明。
这有用吗?
答案1
根据您要完成的任务,您有以下几种选择:
使用
bcache
: 你可以吃蛋糕,但不能保留它。是的,您为缓存预留的空间量将是就像交换文件的反面一样:您指定的量将从磁盘空间总量中“扣除”,并提供给内存子系统,用作其他硬盘的缓冲区。
要控制哪些文件会被缓存,请使用类似vmtouch
微调缓存bcache
。使用 LVM: 你可以保留蛋糕,但不能吃掉它。
您可以使用逻辑卷管理器创建一个包含 SSD 和 HDD 的卷,从而创建一个
/home
包含两者空间的大卷,但是:- 您将无法控制哪些文件存储在 SSD 上,哪些文件存储在 HDD 上
- 如果丢失两个驱动器中的一个,您将丢失所有数据,并且需要从备份恢复!
使用手动系统: 您将能够保留蛋糕并吃掉它。
将驱动器划分为单独的文件系统:放在
/
SSD 和/home
HDD 上。除此之外,您还应将所有要快速传输的文件放入其中/media/FastData
,并将原始文件符号链接到/media/FastData
当且仅当这些文件位于您的/home
(否则它们已经驻留在 SSD 上了)
注1:我有一个小型 SSD 和一个大型 HDD,因此我使用另一个系统:/
在 SSD 上和/home
在 HDD 上,不必进一步优化......
笔记2:联合文件系统不会比手动系统给您提供更多帮助......
注3: 以下是一些避免 SSD 磨损的技巧从第 4 点开始