3

ram-dl :用Go编写的下载RAM内存的工具

 1 year ago
source link: https://www.jdon.com/67191.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

ram-dl :用Go编写的下载RAM内存的工具

ram-dl是一个允许您将RAM上传到系统或从系统下载的工具。

它主要是作为 r3map 的技术演示,r3map是一个支持挂载和迁移的高效分布式mmap库,而 go-nbd是一个纯Go NBD服务器和客户端库。尽管如此,它也可以用于一些实验性的用例,例如:

  • 通过网络扩展系统的内存容量:通过利用快速的fRPC RPC框架,你可以使用ram-dl和ram-ul来扩展本地系统的内存(有效地 "下载内存"),而不需要使用本地磁盘空间或内存。
  • 挂载一个远程系统的内存:通过用ram-ul分配一个内存区域(有效地 "上传RAM"),可以以最小的延迟将一个远程系统的RAM挂载到你的本地系统。
  • 深入了解内存的使用和内容:通过用ram-ul检查 "下载"/挂载的内存,你可以深入了解远程系统的内存内容。

ram-dl基本上是通过以下方式实现的:

  • 用r3map的设备API在本地启动一个go-nbd服务器和客户端
  • 将NBD服务器连接到一个由ram-ul提供的远程fRPC后端
  • 调用mkswap、swapapon和swapoff,使分页到NBD客户端提供的块设备,从而到连接的远程fRPC后端。

对于大多数现实世界的用例,直接使用r3mapMount APIMigration API是更好(而且更快)的选择,但如果您只想看到在现实生活中实现的下载更多 RAM meme,那么您就来了来对地方了!


安装
静态二进制文件可在GitHub 版本上获取。

在 Linux 上:

$ curl -L -o /tmp/ram-dl "https://github.com/pojntfx/ram-dl/releases/latest/download/ram-dl.linux-$(uname -m)"
$ curl -L -o /tmp/ram-ul "https://github.com/pojntfx/ram-dl/releases/latest/download/ram-ul.linux-$(uname -m)"
$ sudo install /tmp/ram-dl /usr/local/bin
$ sudo install /tmp/ram-ul /usr/local/bin

1. 上传内存
在远程(或本地)系统上,首先启动ram-ul. 该组件将内存区域、文件或目录公开为 fRPC 服务器:

$ ram-ul --size 4294967296
2023/06/30 14:52:12 Listening on :1337

2.下载内存
在您的本地系统上,启动ram-dl. 这将使用 fRPC 和 r3map 作为交换空间挂载远程系统的公开内存区域、文件或目录,并在中断应用程序时立即卸载它:

$ sudo ram-dl --raddr localhost:1337 2023/06/30 14:54:22 Connected to localhost:1337 2023/06/30 14:54:22 Ready on /dev/nbd0

这将为您提供额外的 4GB 本地内存/交换空间,而不会占用大量本地内存(或磁盘空间)

项目点击标题



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK