nov
11

I nuovi file system per GNU/Linux: NiLFS(2) (parte seconda)

 

Post originale su Linux e dintorni

Primi esperimenti con NiLFS(2)

Finito il tempo delle descrizioni e delle parole è giunto quello di passare all’azione, mettere le mani pasta nelle novità open è il passatempo preferito di ogni smanetto che si rispetti ed anche in questo caso non poteva mancare questa interessante parte.

Per testare queste innovazioni dovete fornirvi di un apposito kernel:

1) 2.6.27 con moduli ricompilati

2) 2.6.30-rc1 che già integra il tutto al suo interno

in entrambe i casi vi consiglio di gettare un rapido e veloce sguardo alla pagina ufficiale del progetto dove, nella sezione FAQ (http://www.nilfs.org/en/faq.html), potete trovare informazioni tecniche in grado di facilitarvi i compiti.

Poniamo la condizione per cui il vostro sistema è pronto a recepire i comandi adatti all’attivazione e funzionamento del file system, per prima cosa è necessario caricare il modulo adatto quindi da un console di sistema date il seguente comando:

sudo modprobe nilfs2

ora capite bene come sia impossibile avere un file system nativo dato che il vostro sistema è attivo quindi adotteremo un piccolo trucco innocente, creeremo un file dove andremmo a creare un file system montandolo nel sistema.

Creazione del file (descrizione semplicistica)

$ dd if=/dev/zero of=/tmp/disk.img bs=384M count=1
 
1+0 records in
 
1+0 records out
 
402653184 bytes (403 MB) copied, 60.7253 s, 6.6 MB/s

Inizializzazione con NiLFS(2)

$ mkfs.nilfs2 /tmp/disk.img
 
mkfs.nilfs2 ver 2.0
 
Start writing file system initial data to the device
 
Blocksize:4096  Device:/tmp/disk.img  Device Size:402653184
 
File system initialization succeeded !!

Montaggio dell’immagine disco con loop

$ sudo losetup /dev/loop0 /tmp/disk.img
 
$ sudo mkdir /mnt/nilfs
 
$ sudo mount -t nilfs2 /dev/loop0 /mnt/nilfs/
 
mount.nilfs2: WARNING! - The NILFS on-disk format may change at any time.
 
mount.nilfs2: WARNING! - Do not place critical data on a NILFS filesystem.
 
$ ls /mnt/nilfs
 
$

Ora è giunto il momento di aggiungere qualche file e di vedere all’opera le caratteristiche di snapshoting del sistema, il comando lscp ci permette di esplorare i punti controllo creati:

$ cd /mnt/nilfs
 
$ sudo touch file1.txt file2.txt
 
$ lscp
 
CNO        DATE     TIME  MODE  FLG   NBLKINC       ICNT
 
1  2009-08-21 22:29:31   cp    -         11          3
 
2  2009-08-21 22:36:44   cp    -         11          5

mentre il comando mkcp crea un nuovo punto di controllo su esplicita richiesta dell’utente:

$ sudo mkcp -s
 
$ lscp
 
CNO        DATE     TIME  MODE  FLG   NBLKINC       ICNT
 
1  2009-08-21 22:29:31   cp    -         11          3
 
2  2009-08-21 22:36:44   ss    -         11          5
 
3  2009-08-21 22:39:47   cp    i          7          5
 
$

In questo modo siete riusciti a sfruttare alcune delle nuove caratteristiche del file system ma non ci accontentiamo, vogliamo tentare anche il ripristino di uno snapshot e per farlo dobbiamo prima cambiare il contenuto del disco aggiungendo altri file in modo da confrontare l’attuale contenuto con quello di uno snap precedente.

Agginuta di altri file

$ sudo touch file3.txt file4.txt
 
$ ls
 
file1.txt  file2.txt  file3.txt  file4.txt
$

ora nel sistema sono presenti 4 file mentre nello stato precedente erano presenti solo 2 file, ovviamente il sistema ha uno snapshot della vecchia “configurazione” e quello che ci interessa è proprio riuscire a montare la vecchia versione del file system in sola lettura.

Creiamo a tale scopo un secondo punto di mount e selezionando lo shot che ci interessa andiamo a montare lo stesso con il seguente comando:

$ sudo mkdir /mnt/nilfs-ss2
 
$ sudo mount.nilfs2 -r /dev/loop0 /mnt/nilfs-ss2/ -o cp=2

come potete notare il parametro che identifica il punto di controllo da montare viene passato attraverso il flag cp=X dove X altro non è che il numero assegnato ad ogni snap sotto la voce CNO, esso è visualizzabile tramite lscp il quale elenca punti di controllo disponibili.

Ora abbiamo un primo punto di mount con il file system aggiornato avente 4 file .txt al suo interno ed un secondo punto di mount dove è montato lo sanpshot con all’interno solo 2 file, possiamo verificare questa condizione in questo modo:

$ ls /mnt/nilfs
 
file1.txt  file2.txt  file3.txt  file4.txt
 
$ ls /mnt/nilfs-ss2/
 
file1.txt  file2.txt
$

Esistono altri comandi utili per questo file system che permettono altre interessanti manipolazioni:

chcp: permette di convertire uno snapshot in un punto di controllo

rmcp: invalida un punto di controllo e lo rende non disponibile

Nel prossimo post parlerò dell’altro file system che si prepara ad entrare in concorrenza con NiLFS.

Ciao a tutti.

Popularity: 1% [?]

  • OkNotizie
  • Upnews
  • Wikio



Puoi visualizzare il post originale qui.




Fatal error: Call to undefined function wp23_related_posts() in /home/tuxfeed/public_html/wp-content/themes/df_marine/index.php on line 68