首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在码头安装OpenMediaVault NFS -用于码头群的Compose.yml卷

在码头安装OpenMediaVault NFS -用于码头群的Compose.yml卷
EN

Stack Overflow用户
提问于 2022-02-15 21:26:43
回答 1查看 1.3K关注 0票数 2

我试图将应用程序中的运行时数据外部化,以便保存在OpenMediaVault共享文件夹中。我能够创建共享文件夹并配置NFS,或者至少我认为是这样。我在OMV/Services/NFS/Shares中看到的配置是:

代码语言:javascript
复制
Shared folder: NasFolder[on /dev/sda1, nas/]
Client: 192.168.50.0/24
Privelage: Read/Write
Extra options: subtree_check,insecure

现在,在这个共享文件夹中,我有了这个结构(我使用windows /CIFS配置检查了它)

代码语言:javascript
复制
\\nfs-ip\NasFolder
          |- mysql
          |   \- some my sql folders...
          |- TEST.txt

我想使用这个mysql文件夹来存储MariaDB运行时数据(我知道名字被搞砸了,我正在迁移到Maria.)。meaby还为其他服务创建了一些其他文件夹。这是我来自docker-compose.yml的配置

代码语言:javascript
复制
version: '3.2'
services:
  mysqldb:
    image: arm64v8/mariadb:latest
    ports:
      - 3306:3306
    restart: on-failure:3
    volumes:
      - type: volume
        source: nfs-volume
        target: /mysql
        volume:
          nocopy: true
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
    command: --character-set-server=utf8 --collation-server=utf8_general_ci

volumes:
  nfs-volume:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.50.70,nolock,soft,rw
      device: ":/NasFolder"

现在,当我在我的管理器节点上运行docker stack deploy -c docker-compose.yml --with-registry-auth maprealm时,在maprealm_mysqldb.1上会出现如下所示的错误:

代码语言:javascript
复制
"Err": "starting container failed: error while mounting volume '/var/lib/docker/volumes/maprealm_nfs-volume/_data': failed to mount local volume: mount :/NasFolder:/var/lib/docker/volumes/maprealm_nfs-volume/_data, data: addr=192.168.50.70,nolock,soft: permission denied",

我对整合的东西很陌生。这是我的主服务器,我只是找不到好的教程“通过我的厚头骨”如何配置那些NFS路径和权限,或至少我如何调试它,除了得到这个错误。我知道volumes.nfs-volume.driver_opts.device应该是一条路径,但我不知道它应该是什么路径。我试图从这里调整配置:https://gist.github.com/ruanbekker/4a9c0d250bce9f84482f2a788ce92131

( Edit1)很少有其他细节:

  • 码头群有3个节点,只有一个节点是管理器,可用暂停。
  • OMV运行在一台不是集群

一部分的红葡萄酒机器上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 14:02:12

好的,如果有人在寻找解决方案:

默认情况下,

  1. OMV有用于NFS的/export/,因此需要更新卷。我需要更新mysql的卷,并更新volumes.mysql-volume.driver_opts.device以包含/export/前缀,我还向mysql文件夹添加了path,使其仅用于mysqldb服务:

代码语言:javascript
复制
volumes:
  mysql-volume:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.50.70,nolock,soft,rw
      device: ":/export/NasFolder/mysql"

在这些更改之后,需要更新mysql/mariadb:上的卷配置

代码语言:javascript
复制
  mysqldb:
    image: arm64v8/mariadb:latest
    ports:
      - 3306:3306
    restart: on-failure:3
    volumes:
      - type: volume
        source: mysql-volume
        target: /var/lib/mysql
        volume:
          nocopy: true
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
    command: --character-set-server=utf8 --collation-server=utf8_general_ci

mysqldb.volumes.source指向步骤1中定义的卷的名称-- mysql-volume mysqldb.volumes.target是存储容器运行时数据的地方。在mysql/mariadb数据库中,运行时数据存储在/var/lib/mysql中,因此您需要指出这一点,并且只能使用完整路径。

由于我使用了默认的OMV配置,所以

  1. 在权限方面出现了问题。因此,我将OMV/Services/NFS/Shares更新为:

代码语言:javascript
复制
Shared folder: NasFolder[on /dev/sda1, nas/]
#here you can see note 'The location of the files to share. The share will be accessible at /export/.'
Client: 192.168.50.0/24
Privelage: Read/Write
Extra options: rw,sync,no_root_squash,anonuid=1000,anongid=1000,no_acl
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71133611

复制
相关文章

相似问题

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