trapexit / mergerfs-tools

Optional tools to help manage data in a mergerfs pool
ISC License
385 stars 44 forks source link

mergerfs.dup error #143

Closed rementis closed 9 months ago

rementis commented 9 months ago

See output:

root@billiards:/# mergerfs.dup /media/media12/Plex/ Traceback (most recent call last): File "/usr/bin/mergerfs.dup", line 399, in <module> main() File "/usr/bin/mergerfs.dup", line 329, in main branches = mergerfs_branches(ctrlfile) File "/usr/bin/mergerfs.dup", line 71, in mergerfs_branches branches = lgetxattr(ctrlfile,'user.mergerfs.srcmounts') File "/usr/bin/mergerfs.dup", line 49, in lgetxattr raise IOError(err,os.strerror(err),path) OSError: [Errno 14] Bad address

rementis commented 9 months ago

root@billiards:/# mergerfs.dup /media/media12/Plex/ Traceback (most recent call last): File "/usr/bin/mergerfs.dup", line 399, in main() File "/usr/bin/mergerfs.dup", line 329, in main branches = mergerfs_branches(ctrlfile) File "/usr/bin/mergerfs.dup", line 71, in mergerfs_branches branches = lgetxattr(ctrlfile,'user.mergerfs.srcmounts') File "/usr/bin/mergerfs.dup", line 49, in lgetxattr raise IOError(err,os.strerror(err),path) OSError: [Errno 14] Bad address

trapexit commented 9 months ago

https://github.com/trapexit/mergerfs#support

Please provide details about your setup.

rementis commented 9 months ago

mergerfs version: 2.35.1

fstab: /media/media*/Plex /plex_media fuse.mergerfs lazy-umount-mountpoint=true,moveonenospc=mfs,cache.files=partial,dropcacheonclose=true,category.create=mfs 0 0

uname -a Linux billiards 5.19.0-46-generic #47~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 21 15:35:31 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy

df -h | grep -v docker Filesystem Size Used Avail Use% Mounted on tmpfs 9.5G 6.3M 9.5G 1% /run /dev/sdj1 891G 624G 223G 74% / tmpfs 48G 672K 48G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/sdi1 7.3T 6.3T 661G 91% /media/media2 /dev/sdm1 458G 261M 434G 1% /scratch /dev/sdk1 13T 12T 642G 95% /media/media14 /dev/sdf1 3.6T 3.0T 415G 89% /media/media11 /dev/sda1 3.6T 3.0T 412G 89% /media/media10 /dev/sdn1 7.3T 6.4T 493G 93% /media/media9 /dev/sdh1 17T 14T 2.5T 85% /media/media16 /dev/sdg1 17T 14T 2.5T 85% /media/media18 192.168.2.99:/Public 11T 8.4T 2.5T 78% /media/media4 tmpfs 9.5G 176K 9.5G 1% /run/user/1000 /dev/sde1 7.3T 6.3T 600G 92% /media/media13 tmpfs 48G 0 48G 0% /run/qemu /dev/sdb1 3.6T 3.0T 421G 88% /media/media8 /dev/sdc2 4.6T 3.9T 433G 91% /media/media12 10/Plex:11/Plex:12/Plex:13/Plex:14/Plex:16/Plex:18/Plex:2/Plex:4/Plex:8/Plex:9/Plex 93T 78T 12T 88% /plex_media

app.strace.txt

trapexit commented 9 months ago

Please update to the latest release before I debug this.

https://github.com/trapexit/mergerfs/releases/tag/2.38.0

rementis commented 9 months ago

root@billiards:/scratch# /usr/bin/mergerfs --version mergerfs v2.38.0

root@billiards:/scratch# mergerfs.dup /media/media12
Traceback (most recent call last):
  File "/usr/bin/mergerfs.dup", line 399, in <module>
    main()
  File "/usr/bin/mergerfs.dup", line 329, in main
    branches  = mergerfs_branches(ctrlfile)
  File "/usr/bin/mergerfs.dup", line 71, in mergerfs_branches
    branches = lgetxattr(ctrlfile,'user.mergerfs.srcmounts')
  File "/usr/bin/mergerfs.dup", line 49, in lgetxattr
    raise IOError(err,os.strerror(err),path)
OSError: [Errno 14] Bad address
trapexit commented 9 months ago

Why are you pointing dup tool at something other than mergerfs mount?

rementis commented 9 months ago

Maybe I don't understand. I want everything in /media/media12 to be duplicated. /media/media12 is one of the mounts included in /plex_media

trapexit commented 9 months ago

The tool is for duplicating files. Not mounts. You point it at mergerfs mounts and configure it to set the number of files to have among the branches.

rementis commented 9 months ago

Can you give me an example of command line? Is this for duplicating the entire mergerfs filesystem?

trapexit commented 9 months ago
usage: mergerfs.dup [<options>] <dir>

Duplicate files & directories across multiple drives in a pool.
Will print out commands for inspection and out of band use.

positional arguments:
  dir                    starting directory

optional arguments:
  -c, --count=           Number of copies to create. (default: 2)
  -d, --dup=             Which file (if more than one exists) to choose to
                         duplicate. Each one falls back to `mergerfs` if
                         all files have the same value. (default: newest)
                         * newest   : file with largest mtime
                         * oldest   : file with smallest mtime
                         * smallest : file with smallest size
                         * largest  : file with largest size
                         * mergerfs : file chosen by mergerfs' getattr
  -p, --prune            Remove files above `count`. Without this enabled
                         it will update all existing files.
  -e, --execute          Execute `rsync` and `rm` commands. Not just
                         print them.
  -I, --include=         fnmatch compatible filter to include files.
                         Can be used multiple times.
  -E, --exclude=         fnmatch compatible filter to exclude files.
                         Can be used multiple times.

mergerfs.dup /plex_media/some/path

rementis commented 9 months ago

Oooooooo! Will try, thanks!