当前位置:主页 > 查看内容

远程容器镜像的解决方案 Overlaybd

发布时间:2021-08-20 00:00| 位朋友查看

简介:Accelerated Container Image 是论文 “DADI: Block-Level Image Service for Agile and Elastic Application Deployment.USENIX ATC 20” 的开源实现。 它是远程容器镜像的解决方案 支持按需获取镜像数据 无需在容器运行前下载和解压整个镜像。 加速的核心……

Accelerated Container Image是论文“DADI: Block-Level Image Service for Agile and Elastic Application Deployment.USENIX ATC 20”的开源实现。

它是远程容器镜像的解决方案 支持按需获取镜像数据 无需在容器运行前下载和解压整个镜像。

加速的核心是overlaybd 它提供了作为块设备的一系列基于块的层的合并视图。该存储库是加速集装箱图像的组成部分 提供了由iSCSI和overlaybd的实施TCMU

设置系统要求

Overlaybd通过iSCSI协议和TCMU提供虚拟块设备 所以需要TCMU内核模块。TCMU 在 Linux 内核中实现并得到大多数 Linux 发行版的支持。

检查并加载 target_core_user 模块。

modprobe target_core_user
从 RPM/DEB 安装

您可以从Release下载我们的 RPM/DEB 包并安装。

二进制文件安装到/opt/overlaybd/bin/.

运行/opt/overlaybd/bin/overlaybd-tcmu 日志存储在/var/log/overlaybd.log.

最好overlaybd-tcmu作为服务运行 以便在意外崩溃后可以重新启动。

从源代码构建要求

要从源代码构建overlaybd 需要以下依赖项

CMake 3.11
gcc/g 7
Libaio、libcurl、libnl3、glib2 和 openssl 运行时和开发库。CentOS/Fedora sudo yum install libaio-devel libcurl-devel openssl-devel libnl3-devel glib2-develDebian/Ubuntu sudo apt install pkg-config libcurl4-openssl-dev libssl-dev libaio-dev libnl-3-dev libnl-genl-3-dev libglib2.0-dev建造

你需要 git 来检出源代码

git clone https://github.com/alibaba/overlaybd.git
cd overlaybd

整个项目由 CMake 管理。二进制文件和资源文件将安装到/opt/overlaybd/.

mkdir build
cd build
cmake ..
make -j
sudo make install

最后 为overlaybd-tcmu backstore 设置一个systemd 服务。

sudo systemctl enable /opt/overlaybd/overlaybd-tcmu.service
sudo systemctl start overlaybd-tcmu
配置覆盖配置

默认配置文件overlaybd.json安装到/etc/overlaybd/.

{
 logLevel : 1,
 logPath : /var/log/overlaybd.log ,
 registryCacheDir : /opt/overlaybd/registry_cache ,
 registryCacheSizeGB : 1,
 credentialFilePath : /opt/overlaybd/cred.json ,
 ioEngine : 1,
 download : {
 enable : true,
 delay : 120,
 delayExtra : 30,
 maxMBps : 100
 enableAudit : true,
 auditPath : /var/log/overlaybd-audit.log 
场地描述日志级别调试 0、信息 1、警告 2、错误 3io引擎用于打开本地文件的IO引擎 psync 0、libaio 1、posix aio 2。日志路径日志文件的路径/var/log/overlaybd.log是默认值。注册表缓存目录远程图像数据的缓存目录。注册表缓存大小GB缓存的最大大小 以 GB 为单位。凭证文件路径用于在注册表上获取图像的凭据。/opt/overlaybd/cred.json是默认值。下载.启用是否启用后台下载。下载延迟在overlaybd 设备启动后等待开始下载任务的秒数。下载.delayExtra延迟附加随机额外延迟 避免同时启动过多任务。下载.maxMBps下载任务的速度限制 以 MB/s 为单位 。启用审计是否启用审计。审计路径审计文件的路径/var/log/overlaybd-audit.log是默认值。


注意 download是后台下载的配置。启动overlaybd 设备后 将运行后台任务以将整个blob 提取到本地目录中。下载后 I/O 请求被定向到本地文件。与其他选项不同 下载配置在设备启动时重新加载。

凭证配置

以下是按credentialFilePath字段描述的凭证文件示例。


{
 auths : {
 hub.docker.com : {
 username : username ,
 password : password 
 hub.docker.com/hello/world : {
 auth : dXNlcm5hbWU6cGFzc3dvcmQK 

需要身份验证时会重新加载凭据。如果使用临时凭证 则必须在到期前更新凭证 否则 overlaybd 会不断重新加载 直到设置了有效的凭证。为了测试方便 我们在阿里云ACR上提供了一个公共注册表 见后面的例子。

重要提示 如果注册表不是公开的 则必须在启动设备之前设置相应的凭据。

下一步是什么

现在我们已经完成了 overlaybd 的设置 让我们回到Accelerated Container Image repo 并开始运行我们的第一个加速容器。


本文转自网络,原文链接:https://developer.aliyun.com/article/787459
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:整洁面向对象分层架构COLA 4.0 下一篇:没有了

推荐图文


随机推荐