Configuration NAS Mnemosyne: Difference between revisions

From miki
Jump to navigation Jump to search
Line 139: Line 139:
</pre>
</pre>
Note this might interfere with synology defaults [http://superuser.com/questions/659547/setting-synology-dsm-default-cifs-permissions]. 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/766 permission settings.
Note this might interfere with synology defaults [http://superuser.com/questions/659547/setting-synology-dsm-default-cifs-permissions]. 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/766 permission settings.

=== Upgrade firmware ===
TBC

=== Install optware ===
TBC

=== Extra packages ===
To install via ipkg:
<source lang=bash>
ipkg install screen
ipkg install tmux
</source>


== How-To ==
== How-To ==

Revision as of 15:15, 30 December 2015

Reference Information

  • Device: Synology NAS DS409+
  • Name: Mnemosyne
  • Disk Station Manager: http://mnemosyne:5000, log in with admin account admin
  • SSH: root@mnemosyne (same password as admin account)
  • Configuration files: /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

Configuration

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)

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)
System — Language
  • Display: English
System — Time
  • Time zone: (UTC+01:00) Brussels, Copenhagen, Madrid, Paris
System — Notification
  • SMTP server: smtp.scarlet.be
  • SMTP port: 25
  • Primary mail: michael.peeters@scarlet.be
  • Secondary mail: michael.peeters@noekeon.be
System — Power
  • Scheduled Power On: Weekdays, 17:30
  • Scheduled Power Off: Daily, 02:00
System — 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)
Privileges — Shared folders:
  • 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
File Sharing — NFS
  • NFS Service: enabled
File Sharing — 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 solution — 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/766 permission settings.

Upgrade firmware

TBC

Install optware

TBC

Extra packages

To install via ipkg:

ipkg install screen
ipkg install tmux

How-To

Enable SSH

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

Mount NAS samba share on client

Client must explicitly specify charset utf8 in the mount line:

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

Enable 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 :-)

Command-line reference

TBC

Statistics

Some statistics on NAS file transfer

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