User Tools

Site Tools


interessen:computer:fileserver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
interessen:computer:fileserver [2014/02/25 11:27]
tomtom
— (current)
Line 1: Line 1:
-====== Fileserver ====== 
  
-Als Fileserver nutze ich hier meinen Hauptserver mit folgenden Services 
-  * Glusterfs 
-  * NFS 
-  * rsync 
- 
-===== GlusterFS ===== 
- 
-Den Glusterfs-Service habe ich gmäss Anleitung(en) aufgesetzt. Der Server geht unter Ubuntu (server) auch ganz leicht, aber ich habe trotzdem eine Weile gebraucht, um den Client richtig zu konfigurieren.  
-Bei allen Anleitungen soll man sich nach der Installation des Server einfach per 
-  <client>:/# mount -t glusterfs <server>:<share> /<zielordner>  
-mit der Freigabe verbinden.  
-Der Befehl wurde auch ohne Fehler ausgeführt - der Ordner war aber immer leer und auch neue Dateien tauchten nicht im Server auf. 
-Nach einer Weile der Recherche im Netz hab ich dann was anderes probiert. 
-Erst hab ich einen Ordner angelegt 
-  <client>:/# mkdir /etc/glusterfs 
-danach in diesen Ordner die Volumedefinitionen aus dem **Server** aus 
-  <server>:/# /etc/glusterd/vols/<volume>/<volume>-fuse.vol 
-in den Ordner 
-  <client>:/# /etc/glusterfs/ 
-auf dem **Client** kopiert. 
-Danach war es relativ simpel in die Datei 
-  <client>:/# /etc/fstab 
-die Zeile 
-  /etc/glusterfs/<volume>-fuse.vol /<zielordner> glusterfs defaults,_netdev 0 0 
-einzufügen. 
-Nach einem  
-  <client>:/# mount -all 
-waren dann die Dateien zu sehen und auch veränderbar.  
-Endlich funktionierte es! :-D 
- 
-===== NFS ===== 
- 
- 
-NFS ist einfach via Anleitung aufgesetzt worden. Dazu gibt es die diversen Anleitungen im Internet, so dass ich hier nicht näher darauf eingehe. 
- 
- 
-===== rsync ===== 
- 
-RSYNC hat bei mir die Aufgabe meinen Firmenlaptop zu sichern. Dazu habe ich auf diesem ein Script zu laufen, das in regelmässigen Abständen nachsieht, ob der Backup-Server bzw. dessen Freigabe erreichbar ist und wenn das bestätigt ist werden vorher festgelegte Ordner synchronisiert. 
-  * [[http://rsync.samba.org/documentation.html|rsync Man pages]] 
- 
-==== ServerKonfiguration ==== 
- 
-Nach der Installation von rsync ist unter Ubuntu erstmal nur der Clientdienst aktiv. Den Serverdienst muss man erst einrichten und dann als Service definieren. 
-Zu erst wird die Datei 
-  /etc/rsyncd.conf 
-mit folgendem Inhalt angelegt 
-  <server>:/etc# cat rsyncd.conf  
-  use chroot = true 
-  strict modes = false 
-  hosts allow = <network/mask> 
-  uid = <user> 
-  gid = users 
-  max connections = 5 
-  syslog facility = local5 
-  pid file = /var/run/rsyncd.pid 
-   
-  [<Share1>] 
-  comment = backup folder on <server> 
-  path = /data1/Arbeit/ 
-  read only = no 
-  list = yes 
-  auth users = <user at source> 
-  secrets file = /etc/rsyncd.secrets 
-   
-  [<Share2>] 
-  comment = Documents folder on <server> 
-  path = /data1/Dateiablage/ 
-  read only = no 
-  list = yes 
-  auth users = <user at share> 
-  secrets file = /etc/rsyncd.secrets 
- 
-In der Datei 
-  /etc/rsyncd.secrets 
-stehen nur die User mit den dazugehörigen Passwörtern drinn. Ich wollte die nicht so unbedingt einfach in die Konfig hämmern. Mann sollte ja wenigstens den Anschein von Sicherheit wahren. :-D 
- 
-Danach hab ich noch mit 
-  apt-get install xinetd 
-den xinetd Startservice installiert. 
-In dem dazugehörigen Ordner unter  
-  /etc/xinetd.d 
-muss dann noch eine Datei rsync angelegt werden. Die sieht bei mir so aus 
-  <server>:/etc# cat xinetd.d/rsync  
-  # default: off 
-  # description: The rsync server is a good addition to an ftp server, as it \ 
-  # allows crc checksumming etc. 
-  service rsync 
-  { 
-  disable = no 
-  flags = IPv6 
-  socket_type     = stream 
-  wait            = no 
-  user            = root 
-  server          = /usr/bin/rsync 
-  server_args     = --daemon 
-  log_on_failure  += USERID 
-  } 
-Nach einem  
-  <server>:/# service xinetd restart 
-ist der rsync-Service dann erreichbar. 
- 
-==== Clientkonfiguration ==== 
- 
-Auf dem Client hab ich ein Backup-Script laufen in dem ich einer seits den/ die Server angeben kann auf die ich sichern will und anderer seits die Verzeichnisse angebe die ich sichern will. 
-Das Script wird dann über einen CRON-Job in regelmässigen Abständen aufgerufen. 
- 
- <servername>:/$ cat /opt/backup/backup.sh  
- #!/bin/bash 
- ## insert all directories to sync/ backup ## 
- directories=( <directory1> <directory2>) 
- workdir=<workdir>  
- ## define target 
- user=<transferuser> 
- server=(<targetserver1> <targetserver2>) 
- # view /etc/rsyncd.conf at targetserver 
- targetshare=<share at target> 
- ## generate log-file-names 
- tstemp=`date +%Y%m%d%H` 
- tstemp_old=`date +%Y%m%d -d yesterday` 
- logfile=$workdir/$tstemp.backup.log 
- logcheckfile=$workdir/$tstemp.backup.check.log 
- # backup log 
- logtimefile=$workdir/backup.time.log 
- logtimefiletemp=$logtimefile.temp 
- ## clean old log from messages and let all informations since the last running backup in file 
- clean_log() 
- { 
-   i=1 
-   while ((i <= 100)) 
-     do 
-       if (tail -$i $logtimefile|grep done) 
-         then 
-           tail -$i $logtimefile > $logtimefiletemp 
-           cat $logtimefiletemp > $logtimefile 
-    rm $logtimefiletemp 
-    break 
-       fi 
-       i=$(( $i + 1 )) 
-     done 
-   return 0 
- } 
- ## generate display message for graphical desktops and write backup log 
- errormsg() 
- { 
-   errorcount=0 
-   ## if differrents between rsync run and rsync check exists, error message will generate 
-   for i in `cat $logcheckfile | grep '<f'|cut -d\/ -f2-` 
-     do 
-      if (cat $logfile | grep $i) 
-       then 
- ((errorcount++)) 
-       fi 
-     done 
-   if (($errorcount > 0)) 
-     then 
-       ## enable only if script run at system with graphical desktop ## 
-       #notify-send -u critical -t 3000 -i /opt/backup/pictures/error.jpg "Backup to $target failure!!" 
-       message='Backup error! Server :' 
-     else 
-       ## enable only if script run at system with graphical desktop ## 
-       #notify-send -u normal -t 3000 -i /opt/backup/pictures/symbol_check.png "Backup to $target done!" 
-       rm $logcheckfile 
-       rm $logfile 
-       message='Backup done with server: ' 
-       if (ls $workdir| grep $tstemp_old) 
-         then 
-           for i in `ls $workdir| grep $tstemp_old` 
-      do 
-        rm $i 
-      done 
-       fi 
-    fi 
-   message=`date`" : "$message$target 
-   echo $message >> $logtimefile 
-   return 0 
- } 
- ## use for rsyncd at target server(s) ## 
- # check if job running from other schedule 
- if(! ps -ef | grep rsync | grep $workdir )  
-   then 
-     for target in "${server[@]}" 
-      do 
-        # check if host available 
-        if( ping -c 1  $target > /dev/null )  
-          then 
-            date >> $logfile 
-            date >> $logcheckfile 
-            for dir in "${directories[@]}" 
-              do 
-                echo $dir >> $logfile 
-                ## synchronize the directory 
-                rsync -vah --partial $workdir/$dir $user@$target::$targetshare/ --password-file=/etc/rsync.pass >> $logfile 
-                echo $dir >> $logcheckfile 
-                ## check if directories synchron (it's a dry run with renerate a check file) 
-                rsync -vahn --partial $workdir/$dir $user@$target::$targetshare/ --password-file=/etc/rsync.pass >> $logcheckfile 
-              done 
-            date >> $logfile 
-            clean_log 
-            errormsg 
-            ## transfer the backup-log 
-            rsync -vzh --partial $logtimefile $user@$target::$targetshare/ --password-file=/etc/rsync.pass 
-          else 
-            message=`date`" : Synchronisation host not reachable! hostname: "$target 
-            echo $message >> $logtimefile 
-          fi 
-       done 
-   fi 
-  exit 
- 
-sfjspdfjsdkal  
interessen/computer/fileserver.1393324041.txt.gz · Last modified: 2014/02/25 11:27 by tomtom