首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在码头群中运行LINSTOR

在码头群中运行LINSTOR
EN

Stack Overflow用户
提问于 2021-05-26 15:25:35
回答 1查看 530关注 0票数 1

我目前正在我的实验室里试验linstor。我正在尝试设置computestorage节点的分离。运行linstor的存储节点,而计算节点运行的是Docker或K8s。在这个测试中,我已经设置了一个linstor节点和一个停靠群节点。成功地配置了Linstor节点。

Linstor节点

DRBD 9.1.2

代码语言:javascript
复制
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
┊ StoragePool          ┊ Node       ┊ Driver   ┊ PoolName       ┊ FreeCapacity ┊ TotalCapacity ┊ CanSnapshots ┊ State ┊ SharedName ┊
╞══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
┊ DfltDisklessStorPool ┊ instance-2 ┊ DISKLESS ┊                ┊              ┊               ┊ False        ┊ Ok    ┊            ┊
┊ pd-std-pool          ┊ instance-2 ┊ LVM_THIN ┊ vg/lvmthinpool ┊   199.80 GiB ┊    199.80 GiB ┊ True         ┊ Ok    ┊            ┊
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
# linstor node list
╭─────────────────────────────────────────────────────────────╮
┊ Node       ┊ NodeType ┊ Addresses                ┊ State    ┊
╞═════════════════════════════════════════════════════════════╡
┊ instance-2 ┊ COMBINED ┊ 10.100.0.29:3366 (PLAIN) ┊ Online   ┊
╰─────────────────────────────────────────────────────────────╯

码头节点

在另一个节点上,我让Docker群运行。此节点没有安装任何工具,如drbd、drbdtop、drbdsetup ...etc。从技术上讲,它只运行一个仅够运行Docker以保持其轻量级的最小安装。Docker版本是20.10.3。我也安装了林斯特码头卷写的高丽。

下面是安装在我的码头群节点上的/etc/linstor/docker-volume.conf和码头卷插件

代码语言:javascript
复制
$ docker plugin ls
ID             NAME                                  DESCRIPTION                        ENABLED
6300029b3178   linbit/linstor-docker-volume:latest   Linstor volume plugin for Docker   true

$ cat /etc/linstor/docker-volume.conf
[global]
controllers = linstor://instance-2
fs = xfs

我在尝试使用linstor创建的卷时出错了。我已经确认我可以在instance-2上打开linstor控制器,并在防火墙中打开所有端口。这里是错误和复制的步骤

代码语言:javascript
复制
$ docker volume create -d linbit/linstor-docker-volume:latest  --name=first --opt size=20 --opt replicas=1 --opt storage-pool=pd-std-pool
$ docker volume ls
DRIVER                                VOLUME NAME
local                                 64f864db31990baa6b790dde34513a7f6fc466ca0c5e72ffab7024365a9f45da
linbit/linstor-docker-volume:latest   first
$ docker volume inspect first
[
    {
        "CreatedAt": "0001-01-01T00:00:00Z",
        "Driver": "linbit/linstor-docker-volume:latest",
        "Labels": {},
        "Mountpoint": "",
        "Name": "first",
        "Options": {
            "replicas": "1",
            "size": "20",
            "storage-pool": "pd-std-pool"
        },
        "Scope": "global"
    }
]
$ docker run --rm -it -v first:/data alpine sh
docker: Error response from daemon: error while mounting volume '': VolumeDriver.Mount: 404 Not Found.
ERRO[0000] error waiting for container: context canceled 

问题

  • 我需要在我的码头群中安装drbd-utils才能工作吗?
  • VolumeDriver.Mount 404 Not Found的错误是什么意思?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-28 07:49:19

LINSTOR通过使用DRDB (分布式复制块设备)在节点间复制数据,从而管理在LVM或ZFS卷(或裸分区)中复制磁盘空间的节点集群中的存储,如官方文档所示:

LINSTOR是一种用于在Linux系统上存储的配置管理系统。它管理一个节点集群上的LVM逻辑卷和/或ZFS ZVOL。它利用DRBD在不同节点之间进行复制,并向用户和应用程序提供块存储设备。它通过bcache管理SSD中HDD支持的数据的快照、加密和缓存。

所以我会说是的,您确实需要在每个要使用驱动程序的节点上都有驱动程序(我确实看到了Docker的存储插件试图在本地挂载DRBD卷)

但是,您不一定需要在计算节点上拥有存储空间本身,因为您可以从在不同节点上复制的卷中挂载无磁盘的DRBD资源,所以我认为您的想法应该有效,除非驱动程序本身存在一些错误,我还没有发现:您的计算节点需要注册为所有所需池的无磁盘节点(我没有尝试过这样做,但请记住,读取它不仅是可能的,而且推荐用于某些类型的数据迁移)。

当然,如果您没有超过一个存储节点,那么使用LINSTOR/drbd不会获得多少好处(节点或磁盘故障将使您没有磁盘)。我的用例是在不同的数据中心中跨不同的服务器复制存储,这样下一次我可以让我的数据和容器在几分钟后运行,而不是几天。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67708023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档