我目前正在linstor
我的实验室尝试。我正在尝试设置compute
和storage
节点的分离。运行 linstor 的存储节点,而计算节点运行 Docker Swarm 或 K8s。我在此测试中设置了 1 个 linstor 节点和 1 个 docker swarm 节点。Linstor 节点配置成功。
林斯托节点
DRBD9.1.2
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
┊ 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 Swarm。该节点没有安装任何工具,例如 drbd、drbdtop、drbdsetup ...等。从技术上讲,它正在运行一个最小的安装,足以只运行 Docker 以保持它的轻量级。Docker 版本是20.10.3
. 我还安装了用 golang 编写的 linstor docker 卷。
下面是/etc/linstor/docker-volume.conf
安装在我的 Docker Swarm 节点中的我和 docker 卷插件
$ 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 创建的卷时出现错误。我已经确认我可以 ping linstor 控制器instance-2
并在防火墙中打开所有端口。这是错误和重现的步骤
$ 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
问题
- 我是否需要在我的 Docker Swarm 中安装 drbd-utils 才能正常工作?
- 错误是什么
VolumeDriver.Mount 404 Not Found
意思?