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.
Potresti anche leggere:
Popularity: 1% [?]
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

