Languages

User login


Servidor de còpies de seguretat


Introducció

La idea d'aquesta página es fer de manual d'instruccions per al servei de còpies de seguretat per guifi.net sobre un dels meus servidors.

Servidor: sargue.penedes.guifi.net
Trasto encarregat: http://www.guifi.net/guifi/device/19648

La idea es va proposar en aquest fil del fòrum: http://www.guifi.net/node/27419

 

A qui va dirigit aquest servei?

Tothom que estigui connectat a guifi.net sigui amb un servidor o PC client, sigui Linux, Windows, MacOSX, etc. Ara be de moment cal tenir en compte que les dades tot i que poden circular encriptades al disc del servidor de còpies no està encriptat i jo tinc accés (obviament). Així que dades sensibles potser millor no. Tampoc cal fer còpies del terabyte de pel·licules que teniu al disc perque tot i que el servidor de còpies te força espai de disc tampoc cal malbaratar-lo. No em plantejo cap límit concret de tamany de moment però evidentment no puc oferir espai de disc il·limitat.
 

Me'n puc refiar?

No. Com única còpia potser no. Ara, millor això que no res. Però encara millor això com segon backup. Però clar, es que jo soc molt paranoic. Les dades estan gravades en discos configurats en RAID 6 (doble redundància) i en una segona fase amb un arxiu històric sobre backuppc. Prou segur i redundant però al final en un sol servidor.

Un resum del sistema de còpies

Bàsicament es tracta d'un servidor connectat a guifi que anirà fent un backup del que li diguem a través de la xarxa guifi.net. Útil per fer-vos una còpia de les dades i configuracions que tingueu sigui un servidor o un equip normal. Diposareu d'uns enllaços web per tal d'accedir a les còpies per si heu de recuperar qualsevol dels fitxers qeu heu triat. Ofereixo el servei de manera gratuïta.

 

M'hi apunto!

Com que de moment no disposem de mecanisme de gestió d'altes, baixes i demés per web m'ho heu de demanar a mi. Preferiblement directe per email, sino feu un comentari aquí o al fil del forum.

 

Mecanisme de còpies

Les còpies d'un equip connectat a guifi.net es fan mitjançant el software rsync que permet un us òptim de l'ample de banda. Podem fer servir els següents transports:

  • rsync directe
  • rsync sobre ssh
  • rsync directe sobre vpn

Avantatges e inconvenientes de cada part:

Rsync directe

El propi protocol rsync directe per xarxa al port 873 TCP. No disposa d'encriptació. L'autentificació es propia del rsync amb un simple usuari i clau. L'avantatge es que podem definir un usuari de nomes lectura i restringit a només les parts del sistema de fitxers que volem copiar. Inconvenient: cal IP pública.
 

Impacte sobre la xarxa

Per tal de no impactar negativament sobre la xarxa hi posarem de moment un parell de mesures. Si algú en pensa alguna altra si us plau que m'ho faci saber.

Els scripts de còpies van buscant cada hora el PC (fent ping) per veure si està connectat. Un cop el troba i si fas menys de 24 hores que no es fa còpia s'inicia una. Podem definir un rang d'hores entre les quals es farà aquesta cerca. Això permet que PCs que estan molt o sempre connectas (com servidors) puguin programar-se les còpies a la nit.

L'altre mecanisme limitador es l'ample de banda consumit per rsync. Aquest software te implementada una opció per limitar l'ample de banda utilitzat (--bwlimit) i farem servir aquest límit en kiB/s per tal de no consumir un excés d'ample de banda.

Rsync sobre ssh

Mecanisme que es fa servir molt i que permet transportar rsync sobre un canal SSH (port 22 TCP). Cal IP pública de guifi. Encriptació i autentificació d'usuaris propies d'ssh que permet, per exemple, l'ús de certificats per validar l'acces. L'inconvenient es que cal un usuari de sistema (SSH) per tal de poder executar la copia. A més normalment com que es volen copiar configuracions de servidors i demes acostuma a ser necessari que aquest usuari sigui root amb la qual cosa hem de donar acces per SSH i root externament i a un servidor que no tenim per que coneixer. Resumint: amb això probablement m'haureu de donar accés root a la vostra màquina. Lleig. Però potser no i el que volem copiar està tot accesible de manera que podem fer un usuari que hi pugui llegir sense més permisos que això amb la qual cosa ja ens va molt be aquest mecanisme.

Rsync sobre una vpn

Aquest es una mica el millor dels dos mons. Per un costat es fa servir una OpenVPN per tal de disposar d'un entorn encriptat i segur. D'altra banda es fa servir el protocol natiu rsync directe per tal de donar un accés limitat a les dades que volem copiar. Com que disposem d'una VPN no es necessaria una IP pública amb el que es molt interessant per equips client que tenen una IP de tipus 192.168.x.x. Inconvenients: cal montar una VPN i per tant es un pel més complicat de configurar, però tampoc tant!
 

Configuració dels clients

Us poso una mica els pasos que cal fer per configurar el client per tal de poder fer servir això. No es complicat però intentaré ser breu. Sempre podem anar ampliant la documentació.
 

Client Linux

Rsync directe

Cal instalar el software rsync preferiblement versió 3 o superior. Rara seria la distribució que no ho portes. Per tal de fer-lo servir com a daemon s'ha d'executar amb --daemon i consultarà la configuració al fitxer /etc/rsyncd.conf. Habitualment les distribucions ja disposaran d'un mecanisme al /etc/init.d per arrencar el daemon tot i que probablement no funcionarà per defecte.

Aquí hi ha una mica de tutorial: http://www.fredshack.com/docs/rsync.html

La part amb xixa es fer un fitxer rsyncd.conf, aquí teniu la documentació: http://samba.anu.edu.au/ftp/rsync/rsyncd.conf.html

Bàsicament es tracta de definir el que els hi diuen "mòduls" que son punts del sistema de fitxers. Despres els mòduls els podem protegir per usuari, IP d'origen, marcant que siguin només lectura, etc. Per exemple si voleu fer backup de /etc, /home, /root i /var es poden crear 4 mòduls per cada un d'aquests punts amb el nom del directori per facilitar (tot i que pot ser el nom que vulgueu).

Per últim arranqueu el servei, comproveu que escolta al port 873 TCP (o un altre si el voleu canviar, cap problema) i si teniu firewall i demés deixar que el servidor de còpies hi pugui accedir. El sistema comprovarà si pot accedir al vostre servei fent un ping a la IP i per tant ha de respondre als pings fets des del servidor de backup (per si ho teniu filtrar al firewall).

L'últim punt es enviar-me un email amb les dades per que us pugui montar la còpia. Em cal tot això:

  • nom del backup (el nom que li voleu posar, normalment el nom de la màquina o del trasto guifi si voleu)
  • IP pública guifi.net
  • port on escolta el rsyncd, que per defecte es el 873 TCP
  • usuari i clau pel servei rsyncd
  • llistat dels mòduls pels que s'ha de fer còpia
  • llista d'exclusions (per a l'opció --exclude-from de l'rsync)
  • nom d'usuari i clau que es volen per accedir a les còpies, hauria de ser diferent dels anteriors per raons de seguretat
  • rang d'hores del dia que es farà còpia
  • límit d'ample de banda màxim en kilobytes per segon
  • tamany inicial de les dades totals a copiar
  • previsió del ritme de creixement si es pot calcular i es periòdic

Rsync sobre ssh

No cal executar l'rsync com a daemon, però evidenment si que l'heu de tenir instal·lat. Us paso un certificat públic (properament el penjaré aquí) que heu de posar com admés a l'usuari que vulgueu (root o el que sigui) que pugui llegir totes les dades de les que voleu fer còpia. I ja està bàsicament.

Les dades que m'heu de pasar son:

  • nom del backup (el nom que li voleu posar, normalment el nom de la màquina o del trasto guifi si voleu)
  • IP pública guifi.net
  • port on escolta el ssh, que per defecte es el 22 TCP
  • nom de l'usuari ssh
  • llistat de les rutes pels que s'ha de fer còpia (ex: /etc, /var, /home ...)
  • llista d'exclusions (per a l'opció --exclude-from de l'rsync)
  • nom d'usuari i clau que es volen per accedir a les còpies
  • rang d'hores del dia que es farà còpia
  • límit d'ample de banda màxim en kilobytes per segon
  • tamany inicial de les dades totals a copiar
  • previsió del ritme de creixement si es pot calcular i es periòdic

Rsync sobre una vpn

La configuració d'aquesta opció es com la primera (rsync directe) però amb una configuració de client OpenVPN. Ho montaré si hi ha demanda d'aquest sol·lució.

 

Com funciona i està montada la part servidor?

Aquest invent funciona sobre el servidor http://www.guifi.net/guifi/device/19648 funcionant ininterrompudament. Disposa d'un SAI APC Smart-UPS 1400 monitoritzat per xarxa per evitar aturades brusques (si la electricitat falla fins que el SAI s'esgoti el servidor s'aturarà correctament). El hardware del servidor es prou nou, un servidor Intel Xeon dual-core amb 2 GB de RAM ECC. Disposa d'un total de 14 discos SATA connectats, 6 d'ells directes i gestionats amb software raid de linux i 8 més connectats a una controladora Adaptec 5805. La gestió de l'espai de disc es fa amb LVM. El servidor corre un Debian Testing (perque realment no es un servidor de producció, tot i que ara amb això de guifi comença a fer feines mes serioses).

La part software está montada de moment amb simples scripts bash i executats via cron. Això implica que tota alta, baixa, modificació o inclús consulta de la configuració només la puc fer jo. Evidentment si això comença a fer-se servir ja mirarem de montar alguna interficie per fer tasques. De moment no val la pena l'esforç.

 Estructura en el servidor

Cada usuari te un directori sota /bkps/guifi amd dos subdirectoris: logs i backup. Dintre de backup es on es guarda la rèplica que es fa amb la comanda rsync mentre que a logs es van guardan els logs de l'execució dels scripts de backup. Aquest directori es accesible per l'usuari a través de la web de manera que pot consultar com han anat les diferents execucions. Aquest es un dels mecanismes d'extracció de les còpies de seguretat.

A més també està configurat el software backuppc per tal de fer una còpia històrica (una imatge del directori backup) per cada dia dels darrers dos anys (això potser ho ajustem en el futur en funció de l'us de disc). Hi ha també un accés via web com a usuari d'aquestes còpies històriques de manera que també es poden restaurar còpies mitjançant aquest mecanisme (que inclou a més una visió històrica).

Les dues URLs son:

 

Versions del document

  • 22/1/2010 - primera versió
  • 23/1/2010 - afegits límits horari i d'ample de banda, exclusions
  • 24/1/2010 - afegida informació sobre l'estructura de les còpies al servidor