![带 LVM 的 SSD 缓存](https://linux22.com/image/1502325/%E5%B8%A6%20LVM%20%E7%9A%84%20SSD%20%E7%BC%93%E5%AD%98.png)
我目前有一个带有两个 7200rpm HD 的 RAID-0 阵列,但我希望在访问二进制文件和一小部分时有更快的速度/home
。
因此,我正在考虑为 Linux 桌面设置以下设置:
- 2 个 120GB SSD,RAID-0
- 2 个 7500rpm 2TB HD(RAID-1)
/usr
我会将和 的部分用 SSD 存储/home
,其余部分留给 HD。现在,为了安全起见,我想将/usr
和 的 SSD 存储部分镜像/home
到 HD 上。我的想法是将 写通 用于/home
内容,将 写回 用于/usr
。
使用 LVM 可以实现这一点吗?如何实现?
我可以将 RAID-0 SSD 卷用作相同大小的 RAID-1 HD 卷的缓存吗?(LVM 允许这样做吗?有什么注意事项吗?)
我并不真的想要缓存,我想使用 SSD 阵列作为二进制文件和部分的存储/home
,但据我所知,使用 SSD 作为缓存可以让我在 HD 阵列上进行免费备份,并且可以灵活地为不同的文件系统选择写回和写通。
答案1
您的要求令人困惑 - 也许有关您到底想要做什么的更多详细信息可以为您提供更多答案。
将 SSD 集成到 LVM
据我所知,您说您想使用 SSD 来存储二进制文件和部分家庭文件。当然,您可以通过以下方式实现这一点:
- 为 SSD 创建一个卷组,并在其上创建逻辑卷,然后挂载它们,或者通过
- 创建一个跨 SSD 和 HDD 的卷组,并在每个逻辑卷上指定希望它位于的位置(在 HDD 还是 SSD 上)。
前者的优点是您可以立即知道 SSD 上有哪些内容,哪些内容不在。后者的优点是您可以稍后启用 SSD 缓存(因为逻辑卷及其 SSD 缓存需要位于同一卷组中)。您仍然可以使用“lvs -o+devices”查看数据位于哪个 PV 上。
使用 SSD
如果你选择第二种选择——我认为你会这样做,因为这是更明智的选择——你可以
- 仅在 HDD 上创建逻辑卷,然后向其添加 SSD 缓存,从而加快其速度。
- 仅在 SSD 上创建逻辑卷,在这种情况下它们不需要缓存。
LVM 将允许这两种情况。具体来说,回答您的问题:
- 您可以为 10 GB HDD 逻辑卷创建 10 GB SSD 缓存。
- 您可以为 100 GB HDD 逻辑卷创建 10 GB SSD 缓存。
- 您可以在 HDD 和 SSD 上镜像 10 GB 逻辑卷。我不知道性能如何。它可能是正常的 RAID-1 性能(读取速度更快,写入速度更慢/相同速度),但您必须测量 LVM 镜像的实际性能。
警告
话虽如此,RAID-0 是灾难的根源。您必须格外确保 SSD RAID-0 上不存在您无法承受丢失的数据(请注意,您可以将存储逻辑卷的 PV 传递给 lvcreate)。
此外,添加 SSD 缓存并不能为您提供另一个免费的数据备份 - 如果您的两个 RAID-1 HDD 都发生故障,从缓存中恢复任何内容都将是一场噩梦。更重要的是,如果您选择在 RAID-0 配置中使用 SSD,然后启用写回,任何 SSD 发生故障都可能导致 RAID-1 支持的逻辑卷瘫痪。
最安全的方式是使用 SSD 进行写入。只有当您在 SSD 上使用 RAID-1 时,写回才可能是明智的选择。