Sorry, noob here. I have been using Linux for a decade at least, but some basic stuff still stump me. Today, it’s file sharing: The idea is that the server is good at CPU and the NAS is good at storage. My NAS does run Docker but the services are slow; and my server runs a bunch of Docker containers just fine but has limited disk space (SSD).

Want:

  • Share a directory on my NAS, so that my homelab server can use it.
  • Security is not important; the share does not need to be locked down.

Have:

  • Server+NAS are on their own little 1Gb Cisco switch, so network latency should be minimal.
  • Linux NAS and Linux server have separate users/UID/GID.

Whatever I try, it always ends up with errors about ‘access denied’ or read-only or something. I conclude that I am not smart enough to figure it out.

Help?

  • @[email protected]
    link
    fedilink
    English
    11 year ago

    Basically when you make a new group or user, make sure that the NUMBER that it’s using matches whatever you’re using on your export. So for example: if you use groupadd -g 5000 nfsusers just make sure that whenever you make your share on your NAS, you use GID of 5000 no matter what you actually name it. Personally, I make sure the names and GIDs/UIDs are the same across systems for ease of use.

    • @[email protected]
      link
      fedilink
      English
      2
      edit-2
      1 year ago

      Also, to add to this: you’re setup sounds almost identical to mine. I have a NAS with multiple TBs of storage and another machine with plenty of CPU and RAM. Using NFS for your docker share is going to be a pain. I “fixed” my pains by also using shares inside my docker-compose files. What I mean by that is specify your share in a volume section:

      volumes:
        media:
          driver: local
          driver_opts:
            type: "nfs"
            o: "addr=192.168.0.0,ro"
            device: ":/mnt/zraid_default/media"
      

      Then mount that volume when the container comes up:

      services:
        ...
        volumes:
              - type: volume
              source: media
              target: /data
              volume:
                nocopy: true
      

      This way, I don’t have to worry as much. I also use local directories for storing all my container info. e.g.: ./container-data:/path/in/container