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:44]
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. 
- 
-  <clientname>:/# 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 
- 
-Und nun noch unter /etc die datei rsync.pass mit dem richtigen Passwort ablegen 
-  <client>:/# sudo echo <streng geheim> /etc/rsync.pass 
-   
-Um alles richitg zu machen werden zum Abschluss die Rechte für die Datei neu gesetzt: 
-  <client>:/# sudo chmod 600 /etc/rsync.pass 
- 
-Ein kleiner Probelauf mit  
-  <client>:/# sudo /opt/backup/backup.sh 
-sollte dann auch noch die letzten kleinen Fehler aufzeigen (z.B fehlende bzw. leere rsync.pass, fehlender oder falscher Eintrag in "hosts allow" auf der Target-Seite, ...).   
interessen/computer/fileserver.1393325065.txt.gz · Last modified: 2014/02/25 11:44 by tomtom