Fedora CoreOS NFS mount problemen icm Synology NAS

Pagina: 1
Acties:

Vraag


Acties:
  • +1 Henk 'm!

  • DMP.cc
  • Registratie: Augustus 2003
  • Laatst online: 12-09 22:36

DMP.cc

They call me DM

Topicstarter
Ik heb het zelf opgelost dmv het aanmaken van een fstab file in de configuratie. Dit was uiteindelijk veel simpeler dan de eventuele .mount optie. 8)7
code:
1
2
3
4
5
    - path: /etc/fstab
      mode: 0644
      contents:
        inline: |
          DS415:/volume3/docker /mnt/docker nfs defaults

De rest van de post laat ik staan voor het archief.

--------
Ik zal beginnen met een korte situatie schets:
Op mijn Synology thuis NAS (DS415+) gebruik ik diverse docker containers om verschillende programma's te draaien.
Helaas update Synology nooit het kernel van de NAS systemen, hierdoor komt ik nu af en toe de situatie terecht dat ik een docker container niet meer kan updaten of draaien omdat het gebruikte kernel te oud is.

Als oplossing hiervoor heb ik bedacht dat ik een VM kan draaien op mijn Synology in Virtual Machine Manager. Na wat onderzoek heb ik Fedora CoreOS (FCOS) gekozen als OS voor de VM omdat deze licht en heel veilig lijkt te zijn en goed werkt met docker. Bijkomend voordeel is dat ik eventueel in de toekomst de VM naar een eventueel ander systeem kan overzetten zonder alles opnieuw te installeren.

Op mijn Synology heb ik diverse shared folders die ik dmv NFS mounts wil kunnen benaderen in FCOS om deze in docker containers te kunnen gebruiken. Voor het voorbeeld gebruik ik maar één mount voor de uitleg van het probleem:
Ik probeer de NFS mount: DS415:/volume3/docker te gebruiken icm de interne folder /mnt/docker

Mijn linux ervaring is beperkt dus als ik ergens hele stomme dingen zit te doen, laat het mij weten want daar kan ik alleen maar van leren. O+

Mijn vraag
Na de installatie van de VM heb ik docker werkend met portainer. Maar ik krijg de volgende foutmeldingen voor mijn mount
[systemd]
Failed Units: 2
mnt-docker.automount
mnt-docker.mount
In de logs heb kom ik het volgende tegen:
Jul 14 16:06:50 FCOS systemd[1]: mnt-docker.mount: Mount path /mnt/docker is not canonical (contains a symlink).
Jul 14 16:06:50 FCOS systemd[1]: mnt-docker.mount: Failed to run 'mount' task: Too many levels of symbolic links
Jul 14 16:06:50 FCOS systemd[1]: mnt-docker.mount: Failed with result 'resources'.
Jul 14 16:06:50 FCOS systemd[1]: Failed to mount /mnt/docker directory.
Dit is mijn FCOS butane config:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
variant: fcos
version: 1.3.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAA...Yrv rsa-key
      groups:
        - docker
storage:
  directories:
    - path: /mnt/docker
  files:
    - path: /etc/profile.d/systemd-pager.sh
      mode: 0644
      contents:
        inline: |
          # Tell systemd to not use a pager when printing information
          export SYSTEMD_PAGER=cat
    - path: /etc/sysctl.d/20-silence-audit.conf
      mode: 0644
      contents:
        inline: |
          # Raise console message logging level from DEBUG (7) to WARNING (4)
          # to hide audit messages from the interactive console
          kernel.printk=4
    - path: /etc/hostname
      mode: 0644
      contents:
        inline: |
          FCOS
    - path: /etc/profile.d/nano.sh
      overwrite: true
      contents:
        inline: |
          #/bin/sh
          export EDITOR=nano
systemd:
  units:
    - name: mnt-docker.mount
      enabled: true
      contents: |
        [Unit]
        Description= /mnt/docker directory
        Requires=network-online.target
        After=network-online.target

        [Mount]
        What=DS415:/volume3/docker
        Where=/mnt/docker
        Type=nfs
        
        [Install]
        WantedBy=multi-user.target
        
    - name: mnt-docker.automount
      enabled: true
      contents: |
        [Unit]
        Description=Automount /mnt/docker

        [Automount]
        TimeoutIdleSec=20min
        Where=/mnt/docker

        [Install]
        WantedBy=multi-user.target


    - name: docker.portainer.service
      enabled: true
      contents: |-
        [Unit]
        Description=Portainer Admin Container
        After=docker.service
        Requires=docker.service network.target network-online.target

        [Service]
        Type=oneshot
        RemainAfterExit=yes
        TimeoutStartSec=0
        ExecStartPre=-/usr/bin/docker stop %n
        ExecStartPre=-/usr/bin/docker rm %n
        ExecStartPre=/usr/bin/docker pull portainer/portainer-ce:latest
        ExecStart=-/usr/bin/mkdir -p /mnt/shared_nfs/portainer_data
        # Privileged mode is required for binding to local socket to work due to SELINUX (https://github.com/portainer/portainer/issues/849)
        ExecStart=/usr/bin/docker run --privileged=true -d -p 9000:9000 --name %n --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /var/portainer_data:/data portainer/portainer-ce
        ExecStop=/usr/bin/docker stop -t 15 %n

        [Install]
        WantedBy=multi-user.target
    - name: rpm-ostree-install-nano.service
      enabled: true
      contents: |
        [Unit]
        Description=Layer nano with rpm-ostree
        # We run after `systemd-machine-id-commit.service` to ensure that
        # `ConditionFirstBoot=true` services won't rerun on the next boot.
        After=systemd-machine-id-commit.service
        After=network-online.target
        ConditionPathExists=!/var/lib/rpm-ostree-install-nano.stamp

        [Service]
        Type=oneshot
        RemainAfterExit=yes
        ExecStart=/usr/bin/rpm-ostree install --allow-inactive nano
        ExecStart=/bin/touch /var/lib/rpm-ostree-install-nano.stamp
        ExecStart=/bin/systemctl --no-block reboot

        [Install]
        WantedBy=multi-user.target


nfsstat geeft: Error: No Client Stats (/proc/net/rpc/nfs: No such file or directory).

Als ik de volgende code uitvoer in de shell dan werkt de mount wel. Maar dit is niet persistent en ook niet volgens de best practices van FCOS.
code:
1
sudo mount -t nfs DS415:/volume3/docker /mnt/docker


Wat ik al gevonden of geprobeerd heb
Voorbeeld van hoe zou moeten werken
De technische achtergrond van de .mount unit

Ik hoop dat iemand mij de goede kant kan opsturen! Waarvoor dank _/-\o_

[ Voor 12% gewijzigd door DMP.cc op 14-07-2021 22:02 . Reden: logs ]