Phileserve - home NAS με USB δίσκους χρησιμοποιώντας το Raspberry Pi

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Τον τελευταίο καιρό έχω ανακαλύψει ένα πολύ ενδιαφέρον software:

https://syncthing.net/


Επί της ουσίας πρόκειται για ένα πρόγραμμα που αναλαμβάνει να εκτελέσει σύνθετα σενάρια συγχρονισμού μεταξύ διαφορετικών μηχανημάτων χρησιμοποιώντας bittorrent πρωτόκολλο.

Μπορούμε πχ να ορίσουμε ότι ένα συγκεκριμένο directory θα συγχρονίζεται σε όλα τα μηχανήματα μας τα οποία τρέχουν το syncthing, ή μόνο σε συκγεκριμένα από αυτά. Μπορούμε επίσης να ορίσουμε ποιο από τα μηχανήματα είναι το master για ένα συγκεκριμένο directory. Έτσι πχ αν συγχρονίσουμε το dir του μηχανήματος Α σε ένα dir του μηχανήματος Β, και ορίσουμε ότι το Α είναι master στη συγκεκριμένη περίπτωη, αν σβήσουμε κάτι από το dir του Β, δεν πρόκειται να επηρρεαστεί το Α κλπ.

Το χρησιμοποιώ λίγες ημέρες στο phileserve και συγχρονίζω πολύ συγκεκριμένα directories, τα οποία δεν αφορούν στη μουσική μου.

Ένα θέμα που έχω μέχρι τώρα είναι ότι το synchting τσεκάρει για αλλαγές με συγκεκριμένο interval. Το default του είναι 60 sec οπότε ο δίσκος του NAS δεν κοιμάται ποτέ. Για το λόγο αυτό δεν το έχω πάντοτε ανοιχτό. Το ανοίγω σε συγκεκριμένες στιγμές, περιμένω να γίνουν όλοι οι συγχρονισμοί μου και το ξανακλείνω.

Να σημειώσω ότι όλες οι ρυθμίσεις γίνοται τόσο από gui, όσο και από web interface.

Αν και θέλει αρκετή δολειά ακόμη για να θεωρείται πλήρες, νομίζω ότι αξίζει σίγουρα μια δοκιμή του.









--- Αυτόματη συγχώνευση μηνύματος ---


Και κάτι όχι σχετικό με τον samba server μου το οποίο δεν μπορώ να επιλύσω απ' ότι φαίνεται μόνος και θα ήθελα γνώμες.

Το σενάριο έχει ως εξής:

1. Οργανώνω τη μουσική μου σε ένα τοπικό directory στο desktop pc μου. Οτιδήποτε νέο αγοράζω ή ριπάρω, αποθηκεύεται με συγκεκριμένη δομή, ας πούμε στο /home/tuxx/music.
2. Όταν θέλω να μεταφέρω τα νέα μου αρχεία στο NAS μου, το οποίο σερβίρει και τη μουσική μου στο transport μέσω samba, στέλνω τα αρχεία με rsync, με την παρακάτω εντολή:

rsync -h --progress --stats -r -l -D --update --delete-after /home/tuxx/music/ /mnt/music/


στο /mnt/musιc κάνω mount το directory του NAS.


To πιο πρόσφατο smb.conf μου είναι το παρακάτω:

###### SHARES ######

Code:
[phileserve] comment = home storage
path = /mnt/usb-disks
valid users = @users
force group = users
create mask = 0664
force create mode = 0664
security mask = 0664
force security mode = 0664
directory mask = 0775
force directory mode = 0775
directory security mask = 0775
force directory security mode = 0775
read only = no

#read raw = yes
#write raw = yes
#strict locking = no
#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
#min receivefile size = 16384
#use sendfile = true
#aio read size = 16384
#aio write size = 16384
#getwd cache = yes


Όπως θα διαπιστώσετε κάνω force πολύ συγκεκριμένα permissions, γιατί σε άλλη περίπτωση ο MPD βγάζει error ότι δεν έχει permissions να διαβάσει συγκεκριμένα αρχεία. Έτσι έχω επιλέξει να κάνω force το permission 775 για directories και το 664 για files.

Παρόλα αυτά, υπάρχουν φορές που έπειτα από έναν συγχρονισμό με rsync, συνεχίζω να μην μπορώ να ακούσω ένα αρχείο επειδή κατά την εγγραφή του στο NAS, έχει αγνοήσει τα permissions του samba και έχει γραφτεί με διαφορετικά.


Γι' αυτό έχω ένα προσωρινό workaround. Έχω φτιάξει ένα script που περιέχει τα παρακάτω:

Code:
find /mnt/usb-disks/music -type d -print0 | xargs -0 chmod 775
find /mnt/usb-disks/music -type f -print0 | xargs -0 chmod 664

Το παραπάνω script, ψάχνει πολύ γρήγορα το path της μουσικής μου και αλλάζει μαζικά τα permissions βάσει του επιθυμητού. Παρόλα αυτά, δεν το θεωρώ λύση, καθώς θα ήθελα η όλη διαδικασία να σέβεται το smb.conf μου και να τελειώνω μια και καλή.

Αν υπάρχει κάποια ιδέα είναι παραπάνω από ευπρόσδεκτη!