Configuration NAS Mnemosyne

From miki
Revision as of 02:01, 30 December 2015 by Mip (talk | contribs) (→‎Samba server)
Jump to navigation Jump to search

Reference Information

  • Device: Synology NAS DS409+
  • Name: Mnemosyne
  • Disk Station Manager: http://mnemosyne:5000
  • Admin account: admin (share same password as root@mnemosyne)
  • File location: /etc, /usr/syno/etc/smb.conf


  • Samba Version: 3.0.20b
smbd -V
# Version 3.0.20b
  • Samba Configuration file: /usr/syno/etc/smb.conf
  • Mount requires to add iocharset=utf8 on the client side


  • NFS version: supports version 2, 3, 4.
nfsstat -o all -234

First install

  • Mounted 4 harddrives Western Digital Caviar Green 2TB WD20EADS
  • Plugged power & Ethernet (on home intranet), then power on.
  • (under Linux) Launched DSAssistant.i386... Server not found
  • (reboot in Windows) Launched Synology Assistant... found!
  • Step-by-step installation (see data below)
  • Disk formatting (system partition / data partition)
  • Logged into Disk Station Manager (see data below)
    • !!! login does not work with Internet Explorer (password not accepted) !!!
  • Set up language
  • Set up e-mail notification
  • Created volume
  • Created users
  • Created shared folders
  • Defined file sharing (windows,NFS)

Configuration

Via web interface

  • System
    • Network
      • Server Name: Mnemosyne
      • Network config: manual (because f*cking Belgacom BBox consistently loses my DHCP settings), IP:172.19.100.99, DNS:172.19.3.1 (2x)
    • Language
      • Display: English
    • Time
      • Time zone: (UTC+01:00) Brussels, Copenhagen, Madrid, Paris
    • Notification
      • SMTP server: smtp.scarlet.be
      • SMTP port: 25
      • Primary mail: michael.peeters@scarlet.be
      • Secondary mail: michael.peeters@noekeon.be
    • Power
      • Scheduled Power On: Weekdays, 17:30
      • Scheduled Power Off: Daily, 02:00
    • Firmware Update:
      • Version: DSM 2.1-0844 on 2009/04/21 (file synology_ppc853x_409+_0844.pat)
  • Privileges
    • Users:
      • admin (admin user)
      • guest (enabled)
      • archives (Store archives)
      • backup (User to create backup)
      • movies (store movies)
      • musics (store musics)
      • photos (Store photos)
      • videos (Store videos)
    • Shared folder
      • archives (Archives SW, documents...) (group Users: RO - user archives: RW) (NFS RO: gryphon IP / Minimoy IP)
      • backup (For PC backups) (group Users: RO - user backup: RW) (NFS RO: gryphon IP / Minimoy IP)
      • movies (DVD Movies, SVCD...) (group Users: RO - user movies: RW) (NFS RO: gryphon IP / Minimoy IP)
      • musics (Audio CD, mp3, ogg...) (group Users: RO - user musics: RW) (NFS RO: gryphon IP / Minimoy IP)
      • photos (Photos album) (group Users: RO - user photos: RW:) (NFS RO: gryphon IP / Minimoy IP)
      • public (Public folder) (group Users: RW) (NFS RW: gryphon IP / RO: Minimoy IP)
      • videos (Family videos...) (group Users: RO - user videos: RW:) (NFS RO: gryphon IP / Minimoy IP)
  • Storage
    • Volume
      • Volume 1: 4 disk volume, RAID 5, Complete consistency check
  • File Sharing
    • Win/Mac OS
      • Enable Windows file service: enabled
        • Enable Windows file service
        • Workgroup: HELL
        • Optimize CIFS database operations: disabled (see [1])
        • Enable Local Master Broser: disabled
        • Enable CIFS Recycle Bin: disabled
      • Enable AppleTalk: disabled
    • NFS
      • NFS Service: enabled
    • Network Services
      • Terminal: enable SSH service

Samba server

By default, directory created on shares have permissions 777. To change this, we disable CIFS extensions [2]:

unix extensions=no

To restart samba on the synology:

/usr/syno/etc/rc.d/S80samba.sh restart
Old configuration

Another solution is to enforce permissions on the server side. For this, edit /usr/syno/etc/smb.conf, and add to [global] section [3]:

	create mask=644
	security mask=644
	directory mask=755
	directory security mask=755
	force create mode=644
	force security mode=644
	force directory mode=755
	force directory security mode=755

Note this might interfere with synology defaults [4]. We don't apply this configuration because we use unison to backup the shares on a remote server, and the easiest solution is to sync permissions and uses 777/744 permission settings.

Statistics

Some statistics related to our NAS

Task Source Size Time Rate
DVD to NAS Unicorn 4,23GB 15m48s avg 4,687kB/s, peak 7,290kB/s
DVD to NAS Unicorn 4,32GB 16m03s avg 4,708kB/s, peak 7,701kB/s
DVD to NAS Unicorn 3,93GB 14m34s avg 4,717kB/s, peak 7,553kB/s
DVD to HDD Unicorn 3,65GB 4m49s avg 13,263kB/s, peak 19,393kB/s
HDD to NAS Unicorn 3,65GB ~7m00s avg 8,900kB/s
DVD to NAS Unicorn 3,65GB 11m23s avg 5,612kB/s, peak 7,848kB/s

How-To

SSH

  • Enable SSH service
  • To have root access, log in as user root, and use same password as admin account.

Samba

  • Need to specify explicitly utf8 as charset:
mount -t cifs //mnemosyne/photos /smb/mnemosyne/photos -o noperm,iocharset=utf8

If you get the error mount error(13): Permission denied, you need to add the option sec:

mount -t cifs //mnemosyne/photos /smb/mnemosyne/photos -o noperm,iocharset=utf8,sec=ntlm

NFS

(See HOW-TO page here)

  • Enabled NFS service
  • Edited NFS privilege for share volume1/backup, allow rw, for client minimoy
  • Then from NFS client, tried
  • sudo mkdir -p /net/mnemosyne/backup
    sudo mount mnemosyne:/volume1/backup /net/mnemosyne/backup
    # mount.nfs: access denied by server while mounting mnemosyne:/volume1/backup
    
  • Looking into NAS file /var/log/messages (need to ssh as root on the NAS), there is the line:
  • ... refused mount request from HOST00245402988d.HELL for /volume1/backup (/): no export entry
    
  • So it seems that the connection is refused because the DNS name of the NFS client does not match the export line in file /etc/exports
  • /volume1/backup minimoy.HELL(rw,no_wdelay,no_root_squash,insecure_locks,anonuid=0,anongid=0)
    


Found a working recipe on this page:

  • Content of file /etc/exports
  • /volume1/backup 172.19.100.102(rw,no_wdelay,no_root_squash,insecure_locks,anonuid=0,anongid=0)
    
  • Touched file /var/lib/nfs/rmtab (because non-existent) :
  • touch /var/lib/nfs/rmtab
    cd /
    /usr/sbin/exportfs -a            # Update list of exported filesystem
    
  • On NFS client, mount the NFS share with:
  • sudo mount mnemosyne:/volume1/backup /net/mnemosyne/backup
    


Open issues:

  • How to make it to work using hostname instead of IP addess?
    Additional problem is that at each boot DNS Relay table on the ADSL router is reset to 'HOSTxxxxxxxxxxx' for wired interface on the NFS client, hence making it not recognizable for the NFS server.
  • How to deal with Access Control? I want root to be mapped to nobody, and write access only allowed for one user (which requires password to login)?
    This can be done with the following export line:
/volume1/backup minimoy.HELL(rw,no_wdelay,root_squash,insecure_locks)

Compile

Unison

Instruction from Tom Booschaert ([5]).

# install OCaml, Gnu C Compiler en Make:
ipkg install ocaml
ipkg install gcc
ipkg install make

# get Unison source and unpack:
mkdir Unison_tmp
cd Unison_tmp
wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.32.52.tar.gz
# Other versions:
# wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/unison-2.27.57/unison-2.27.57.tar.gz
tar -xzf unison-2.32.52.tar.gz

# use make to compile:
cd unison-2.32.52
make NATIVE=false UISTYLE=text

# copy executable to bin folder so it can be executed anywhere:
cp unison /opt/bin/
Compilation error
  • When building with ocaml 3.12, we get the following error:
ocamlc -I lwt -I ubase -custom -g -c /root/build/tmp/unison-2.27.57/update.ml
File "/root/build/tmp/unison-2.27.57/update.ml", line 1, characters 0-1:
Error: The implementation /root/build/tmp/unison-2.27.57/update.ml
       does not match the interface update.cmi:
       Modules do not match:
This is a known bug. Patch file update.mli as follows (see [6]):
sed -ri '/^module NameMap : Map/s/Map.S/MyMap.S/' update.mli
test Unison
unison -version
# unison version 2.27.57
unison -selftest
# Contacting server...
# Connected [//Mnemosyne//root/test-a.tmp -> //Mnemosyne//root/test-b.tmp]
# Running internal tests...
# backups 1 (local)...
# backups 2...
# backups 2a...
# backups 3...
# backups 4...
# backups 5 (directories)...
# backups 6 (backup prefix/suffix)...
# links 1 (directories and links)...
# links 2 (symlink to nowhere)...
# Success :-)