LXD 2.15 中的存储管理
创始人
2024-03-01 20:16:05
0

长久以来 LXD 已经支持多种存储驱动。用户可以在 zfs、btrfs、lvm 或纯目录存储池之间进行选择,但他们只能使用单个存储池。一个被频繁被提到的需求是不仅支持单个存储池,还支持多个存储池。这样,用户可以维护一个由 SSD 支持的 zfs 存储池用于 I/O 密集型容器,另一个简单的基于目录的存储池用于其他容器。幸运的是,现在这是可能的,因为 LXD 在几个版本后有了自己的存储管理 API。

创建存储池

新安装 LXD 没有定义任何存储池。如果你运行 lxd init ,LXD 将提供为你创建一个存储池。由 lxd init 创建的存储池将是创建容器的默认存储池。

asciicast

创建更多的存储池

我们的客户端工具使得创建额外的存储池变得非常简单。为了创建和管理新的存储池,你可以使用 lxc storage 命令。所以如果你想在块设备 /dev/sdb 上创建一个额外的 btrfs 存储池,你只需使用 lxc storage create my-btrfs btrfs source=/dev/sdb。让我们来看看:

asciicast

在默认存储池上创建容器

如果你从全新安装的 LXD 开始,并通过 lxd init 创建了一个存储池,LXD 将使用此池作为默认存储池。这意味着如果你执行 lxc launch images:ubuntu/xenial xen1,LXD 将为此存储池上的容器的根文件系统创建一个存储卷。在示例中,我们使用 my-first-zfs-pool 作为默认存储池。

asciicast

在特定存储池上创建容器

但是你也可以通过传递 -s 参数来告诉 lxc launchlxc init 在特定存储池上创建一个容器。例如,如果要在 my-btrfs 存储池上创建一个新的容器,你可以执行 lxc launch images:ubuntu/xenial xen-on-my-btrfs -s my-btrfs

asciicast

创建自定义存储卷

如果你其中一个容器需要额外的空间存储额外的数据,那么新的存储 API 将允许你创建可以连接到容器的存储卷。只需要 lxc storage volume create my-btrfs my-custom-volume

asciicast

连接自定义卷到容器中

当然,这个功能是有用的,因为存储 API 让你把这些存储卷连接到容器。要将存储卷连接到容器,可以使用 lxc storage volume attach my-btrfs my-custom-volume xen1 data /opt/my/data

asciicast

在容器之间共享自定义存储卷

默认情况下,LXD 将使连接的存储卷由其所连接的容器写入。这意味着它会将存储卷的所有权更改为容器的 id 映射。但存储卷也可以同时连接到多个容器。这对于在多个容器之间共享数据是非常好的。但是,这有一些限制。为了将存储卷连接到多个容器,它们必须共享相同的 id 映射。让我们创建一个额外的具有一个隔离的 id 映射的容器 xen-isolated。这意味着它的 id 映射在这个 LXD 实例中将是唯一的,因此没有其他容器具有相同的id映射。将相同的存储卷 my-custom-volume 连接到此容器现在将会失败:

asciicast

但是我们让 xen-isolatedxen1 有相同的映射,并把它重命名为 xen2 来反映这个变化。现在我们可以将 my-custom-volume 连接到 xen1xen2 而不会有问题:

asciicast

总结

存储 API 是 LXD 非常强大的补充。它提供了一组基本功能,有助于在大规模使用容器时处理各种问题。这个简短的介绍希望给你一个印象,你可以做什么。将来会有更多介绍。

本篇文章最初在 Brauner 的博客中发布。


via: https://insights.ubuntu.com/2017/07/12/storage-management-in-lxd-2-15/

作者:Christian Brauner 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

原创 ...
站在2026年伊始回顾过去两年人工智能发展的历程,不难发现如今AI...
2026-01-21 11:18:21
广发证券:AI推理上下文存...
广发证券研报指出,超长上下文与多模态交互类应用显著推升KV Cac...
2026-01-20 07:48:22
u盘中病毒了怎么恢复数据
U盘中病毒了怎么恢复数据 在数字信息时代,U盘以其便携性和大容量,...
2026-01-19 19:25:46
u盘文件损坏怎么恢复数据
U盘文件损坏怎么恢复数据 在数字信息时代,U盘以其便携性和大容量,...
2026-01-19 19:25:46
图省事用AI工具处理内部文...
轻点鼠标就能生成方案、上传文件即可快速处理,便捷高效的开源AI工具...
2026-01-19 08:20:04
存储芯片逆天新规!100%...
据供应链知情人士透露,存储芯片制造商闪迪已向部分下游客户提出了一项...
2026-01-12 08:17:43

热门资讯

如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
硬核观察 #1249 LG 洗... #1 LG 洗衣机每天上传近 4GB 的数据?一个名为 Johnie 的 LG 洗衣机用户发现,他的...
2024 年 Linux 和开... 让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造...