NAS (de l'anglès Network Attached Storage) és el nom donat a una tecnologia d'emmagatzemament dedicada a compartir la capacitat d'emmagatzemament d'un computador (Servidor) amb ordinadors personals o servidors clients a través d'una xarxa (normalment TCP/IP), fent ús d'un Sistema Operatiu optimitzat per donar accés amb els protocols CIFS, NFS, FTP o TFTP.
Generalment, els sistemes NAS són dispositius d'emmagatzematge específics a què s'accedeix des dels equips a través de protocols de xarxa (normalment TCP/IP). També es podria considerar que un servidor Windows que comparteix les seves unitats per xarxa és un sistema NAS, però la definició sol aplicar-se a sistemes específics.
Tenim un servidor amb el Mldonkey, amb un disc dur dedicat a guardar les descarregues. Cada 3-4 dies haviem de borrar manualment fitxers per alliberar espai. He fet un petit script amb perl que fa la feina per mi, pot ser útil per algú. En l'script només s'ha de definir la carpeta on hi ha els fitxers a borrar ($path) i l'espai mínim que volem tenir lliure al disc dur ($min_free):
#!/usr/bin/perl
use File::stat;
use Filesys::DiskSpace;
my $path = "/dades/files";
my $min_free=2*1024*1024; # 2 GBytes lliure
opendir(DIRHANDLE, $path) || die;
# Posa nom fitxer i mida en dos hash amb la data com a key
foreach $name (readdir(DIRHANDLE)) {
my $fs=stat($path.$name);
my $ftime=$fs->mtime;
my $fls{"$ftime"}=$fs->size;
my $fln{"$ftime"}=$name;
}
closedir(DIRHANDLE);
foreach my $key (sort keys %fls){ # Ordena fitxers per antiguitat
# Comprova espai lliure ...
my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $path;
if($avail>$min_free){ last; }
# ... si falta, esborra. Abans comprova que no sigui "." o ".."
if( $fln{"$key"}!~/^\.$/ && $fln{"$key"}!~/^\.\.$/ ) {
unlink($path.$fln{"$key"});
}
}
En el meu cas tinc muntat un dic dur com a “/dadesâ€, i tinc configurat el Mldonkey perque guardi els fitxers descarregats a “/dades/filesâ€, els temporals tambe, de fet corre integrament en aquest disc dur. Aquest script es crida desde el crontab cada mitja hora. El que fa es comprovar l'espai lliure al disk, i en cas de que n'hi hagi menys del definit a $min_free, comença a borrar els fitxers mes vells fins que el disk te el mínim d'espai definit.
Recordeu que l'script a de correr sota un usuari que tingui permisos per a borrar fitxers en aquell directori.

Sistemas operativos, particiones de discos duros etc etc etc etc.
PRUEVAPRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVA PRUEVAPRUEVA PRUEVA
Un truc que seeeempre oblido i que resulta molt útil quan cal fer una cerca de fitxers i fer alguna cosa amb el resultat. Consisteix en utilitzar find i xargs.
Per les coses més senzilles, com ara buscar tots els .jpg dins un directori i moure'ls a un directori concret:
find /dir_on_cerquem/ -name "*.jpg" -exec mv '{}' /home/lasker/imatges/ ';' Atenció amb el punt i coma del final, és realment lleig, però sense ell l'invent no funciona.
Segon mètode, per exemple per buscar un tros de codi dins un projecte:
PROBLEMA:
Tinc un petit servidor a casa i malgrat faig copies de les dades en cinta, m'he adonat que en cas de error físic del disc dur, haurà d'estar x temps sense funcionament, el temps que trigui a muntar un nou disc i recuperar el sistema. Nesecitaba un sistema barat per sol·lucionar aquest problema i he muntat un Raid 1 per software amb discs IDE, que no implica la compra de dispositius cars. (Evidentment no tindrà el mateix rendiment que altres solucions, però servirà)
UN XIC D'INFORMACIÓ:
RAID significa (Redundant Array of Inexpensive Discs) Matriu Redundant de discs barats, podem elegir entre molts tipus de RAID, jo en aquest cas he elegit el RAID 1 (mirall) permet en cas de error mecànic d'un dels discs recuperar les dades ja que tenim una copia idèntica de les mateixes.
Jo, en ubuntu no podia grabar CD's, em deia que havia de compilar el
kernel amb l'emulació scsi (he entès que els kernels superiors de 2.5.4
no l'activen per defecte, ho he trobat raro, però com que no m'ha anat
li he trobat certa lògica, també pot ser que em deixé sjo algo, no
crec, però tot i així aquí us exposo la meva ràpida i evident solució)
Doncs si nois, ahir vaig rebre el meu flamant Dimension 8400 amb un disc serial ATA de 160GB a 7200 rpm amb la preinstal·lació de Guin d'Ous.Â
El primer pas, reduir la partició Guin d'Ous (malgrat tot sempre s'acaba fent servir per alguna cosa, encara que sigui per comparar amb un altre s.o.) i fer espai per la nova sota linux.
I aquí la sorpresa. SATA o serial ATA és una implementació controlada per la bios, i l'instal·lador del Fedora no contemplava aquest tipus de disc, amb el qual, reboot i apa, fora.
Buscant per seagate, fórums linux, google, etc, he trobat l'article http://www.linuxcompatible.org/story.php?id=37544 que comenta els "fix" a la versió Fedora Core 3 Versió 2.6.9 Release 1.681
El titol ja ho diu tot, a vegades calen fer coses poc habituals i si es pot evitar re-iniciar sempre es una avantatge, perque no hagueu de fer aixo per un 'format' de tota la vida:
mkdosfs -F 32
per exemple:
[ X.Caballe ] Una imatge anomenada dd_rescue es una eina per a copiar dades des d'un fitxer o un dispositiu de blocs (com pot ser un disc dur o un CD, per exemple) a un altre, amb la particularitat que tracta de recuperar les dades en cas de detectar un error de lectura. A diferencia del dd original, no talla el fitxer de sortida, excepte si li indiquem que ho faci.
D'aquesta forma, cada vegada que l'executem contra un mateix fitxer de sortida tracta d'omplir els forats. L'algortime de dd_rescue llegeix la part que no esta feta malbe. A continuacio llegeix les parts danyades, dividint-les en unes de menor mida i tractar de recuperar la informacio. Repeteix aquesta operacio fins arribar a la mida del bloc de hardware, arribar al limit d'intents indicats o l'usuari interrompi l'operacio.
El IOzone es una utlitat d'estadistiques dels accessos a disc. Les operacions que monitoritza son les seguents:
Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write
Podem fer cosetes tan mones com aquestes:

Una de els tasques importants que vaig barrinant en la part de guifi.net i ComEsFa?org els darrers dies és la construcció del que hauria de ser un protocol d'actuació per tal de donar resposta als diferents tipus de contingències que puguin aparèixer (caigudes de xarxa, que un servidor s'espatlli, que hi hagi una inundació al torrent de l'Esperança, que caigui un llamp i fregeixi alguns servidors i ràdios,... etc).
El primer pas era fer còpies de la base de dades, és un part important perquè inclou la part més important, faltava però mantenir un sincronisme entre diverses màquines del codi (php, imatges, etc..) de tota aquella part A través del blog del mussol Oriol, que està sindicat a ComEsFa?org, he descobert una nova eina que simplifica moltíssim aquesta tasca. És molt senzilla i és la que en faig 5 cèntims en aquestes ratlles.
A traves d'un article de BULMA he recuperat una referencia que fa temps havia oblidat i no recordo el perque. De fet, fins hi tot provat l'Unison pero ara mateix el tinc completament oblidat dins el meu cap. Aixi que penso provar d'usar-lo durant un temps si no us dic el contrari us el recomano, perque pel que he llegit soluciona molts dels problemes que tinc amb el rsync. Sobre tot a l'hora de fer backups en servidors que no vull tenir l'rsync corrent i en infraestructura windows que malgrat uso el un port d'rsync per win deixa molt que desitjar.

O sigui, que el mes destacable es que podem sincronitzar dos PCs sense haver de deixar cap port nou obert, simplement connectar-nos a traves de l'SSH, per exemple.
L'autor de l'article fa una explicació de la implantació que ha fet amb SuSE de una configuració de discs en xarxa (SAN - Storage Area Network) fent servir el projecte iSCSCI (discs SCSI en xarxa).
En anglès, un exemple interessant de les possibilitats de de Linux per a grans entorns, per a usuaris avençats.
En aquest article s'explica pas a pas com crear un sistema d'arxius ("filesystem") virtual, de manera que en realitat fa servir un simple arxiu en el disc, és a dir, no pas en una partició de disc a banda ni tampoc en un altre disc físic.
En anglès, pas a pas detallat incloent les comandes a executar.

A vegades les nostres aplicacions necessiten el contingut de fitxers. La majoria de casos és suficient amb què el fitxer en qüestió estigui instal·lat en algun punt que l'aplicació sàpiga trobar.
En aquest cas, però, ens interessarà que el fitxer estigui incorporat a l'executable. Això ens podria ser útil per si volem distribuir un programa autoextraïble en format binari.