制造了一些RAM pci-e卡 https://linustechtips.com/topic/1118940-wtf-is-this-thing-ram-on-a-pci-card/
假设我有一张该卡的可拆卸 16GB 版本,95% 的时间都可用(例如:4 小时内停机 1 段时间,每次 15 分钟)。 Linux 能否在已有 16GB(不可升级)的主机中利用这额外的 16GB PCI-RAM?典型安装应进行多少调整?
当然不会突然掉线,会向主机发送信号。
中断的时间和持续时间由用户决定。
解决方案1:
由于用户希望机器“暂停”直到再次插入PCI-RAM,所以我想到了进入休眠模式。如果 PCI-ram 的内容被保留,是否只需进入休眠模式、移除 pci、重新插入 pci、唤醒即可?
解决方案2:
另一种解决方案是在移除PCI-RAM之前将RAM的所有内容写入本地SSD。我怎样才能做到这一点?挂载 2 个交换分区并优先使用 16gb PCI 交换分区 ?并在 pci 关闭/打开时卸载/重新安装交换区?
答案1
就网关 I-RAM 卡(Linus 正在讨论的内容)而言,它们显示为 SATA 设备。因此,如果您想在 Linux 下使用它们来帮助处理 RAM,您可以将它们用作交换设备,如解决方案 2 中所建议的那样。
删除一个就意味着不再将其用作交换设备;这在运行时是可行的,您只需要确保
- 交换中的所有内容都适合内存,
- 或者有其他交换设备可用。
不幸的是,在 Linux 下默认情况下交换大量数据是非常慢的,但是有一些方法可以解决这个问题,例如使用 LVM 并将数据从一个物理卷(RAM 卡)移动到另一个物理卷(其替换存储)。
Linux 还支持热插拔硬件(大型服务器)上的热插拔存储设备、PCI 设备、RAM 甚至 CPU。 I-RAM 卡是混合 SATA/PCI 设备 — 它们使用 SATA 进行数据传输,使用 PCI 进行供电。因此,假设它们支持热插拔 SATA,在支持热插拔的 PCI 主机上,您可以停止使用该卡(如上所述),断开 SATA 电缆,关闭 PCI 插槽电源,然后取出该卡。
在具有可热插拔内存的系统上,您需要通知内核您希望使给定的内存设备脱机(通过写入state
相应/sys/devices/system/memory
子目录中的文件);如果可能的话,内核会将该内存设备上的所有页面移动到另一个内存设备,一旦完成,就可以关闭并删除该内存。
尝试使用休眠来实现类似的目标不太可能成功。系统对于在进入睡眠状态和被唤醒期间硬件设置的重大变化反应不佳。