Introduzione Alla Uml Mconsole

634 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
634
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduzione Alla Uml Mconsole

  1. 1. NETWORKING CON USER MODE LINUX E uml_mconsole 1
  2. 2. Configurazione della rete 2
  3. 3. Scopo dell'esperienza (1) Creare 4 sistemi in rete come nella figura 3
  4. 4. Scopo dell'esperienza (2) • Quattro nodi – Node11-3 – Node11-5 – NodeX – Node22-1 • Due sottoreti – 192.168.11.0, legata a switch1 – 192.168.22.0, legata a switch2 – Netmask1=255.255.255.240 – netmask2=255.255.255.248 • Obiettivo: far comunicare i nodi attraverso le due sottoreti 4
  5. 5. Presentazione dei componenti della rete • switch1 – connesso alla socket unix /tmp/uml1.ctl • switch2 – connesso alla socket unix /tmp/uml2.ctl • Node11-3 ... • Node11-5 analogo a node11-3 ma... • Node22-1 analogo a Node11-3 ma... • NodeX diverso dai precedenti perchè... 5
  6. 6. Due parole su come si scompatta un archivio • tar (TApe aRchive) • Opzioni – -v (verbose operation) – comando  -x scompatta  -t mostra contenuto – algoritmo di compressione  -Z compress (archivi .tar.Z)  -z gzip (archivi .tar.gz)  -j bzip2 (archivi .tar.bz2) – -f file • Esempio: tar -xzvf archivio.tar.gz 6
  7. 7. Primo passo: preparare i sistemi UML • Assicurarsi di avere le immagini dei filesystem nella opportuna directory – NOTA: MAI lavorare in $HOME, SEMPRE in /tmp – usiamo l'immagine debian5c.ext2 (sperando che stavolta funzioni, altrimenti installato.ext2) • Fare partire il supporto per la rete (i due switch virtuali) – switch1 $ ./uml_switch -unix /tmp/uml1.ctl – switch2 $ ./uml_switch -unix /tmp/uml2.ctl 7
  8. 8. Errori comuni • Mettere lo spazio tra i sottoparametri del kernel – NO: ubd0=file.cow, file.ext2 – SI: ubd0=file.cow,file.ext2 • Sbagliare a scrivere i nomi dei parametri – NO: udb – SI: ubd – NO: demon o damon – SI: daemon • Terminare in modo sporco i processi UML – MAI chiudere le finestre di UML, dare il comando shutdown dalla linea di comando del sistema UML 8
  9. 9. Secondo passo: configurare i nodi (1) • Si fa il login su ciascuno dei nodi e si lavora da linea di comando sui nodi virtuali • Login: – Username: root – Password nulla (basta battere invio, se non funziona provare con “root”) • Dare un nome ai nodi: – Editare il file /etc/hostname in modo che contenga il nome del nodo 9
  10. 10. Secondo passo: configurare i nodi (2) • Inserire le giuste informazioni di rete per risolvere i nomi – Si agisce sul file /etc/hosts – Alla fine ogni nodo dovrebbe avere un file fatto in questo modo: 127.0.0.1 localhost 192.168.11.3 Node11-3 ... 10
  11. 11. Quarto passo: configurare le interfacce di rete (1) • Si usa il file /etc/network/interfaces • Il file contiene diverse direttive – Direttiva auto: quali interfacce vanno inizializzate all'avvio della macchina  auto lo  auto eth0  auto eth1 (per node2) – Direttiva iface: una per ogni interfaccia  iface <nome> inet <modalità>  <nome> vale lo, eth0, eth1  inet indica che sono interfacce TCP/IP 11
  12. 12. Quarto passo: configurare le interfacce di rete (2) • Direttiva iface nel file /etc/network/interfaces – <modalità> vale  dhcp = inizializzazione dell'interfaccia in modo automatico col protocollo dhcp  loopback = interfaccia locale (127.0.0.1)  static = seguono parametri per configurare l'interfaccia – Configurazione statica di un'interfaccia  address = indirizzo IP dell'interfaccia (192.168.X.Y)  netmask = 255.255.255.0  network = indirizzo della rete (192.168.X.0)  broadcast = indirizzo di broadcast (192.168.X.255)  gateway = solo per node1 e node3, l'indirizzo dell'interfaccia di node2 che si affaccia sulla sottorete 12
  13. 13. Quinto passo: mettere tutto insieme • Possiamo riavviare tutti e tre i sistemi $ reboot • In alternativa possiamo forzare il riavvio delle interfacce di rete con i comandi – ifdown <interfaccia>, ifup <interfaccia> oppure – /etc/init.d/networking restart • In entrambi i casi abbiamo comunicazione entro una sottorete – Facendo login da Node11-3 riusciamo a fare ping su Node11-5 e viceversa – Ogni nodo deve essere in grado di pingare NodeX – Dopo una “particolare operazione” tutti i nodi pingano tra loro 13
  14. 14. Sfruttiamo la uml_mconsole 14
  15. 15. uml_mconsole La uml_mconsole è un prezioso strumento che ci permette di intervenire dall'esterno sui nodi senza la necessità di fermarli. La sintazzi tipica è: uml_mconsole umid request se abbiamo più richieste per la stessa macchina uml_mconsole umid • IMPORTANTE: se vogliamo usare la uml_mconsole quando lanciamo le macchine dobbiamo passare l'pzione umid=xyz (xyz=nome del nodo!) 15
  16. 16. uml_mconsole – comandi principali I comandi principali sono: • quit -> ci fa uscire dalla console • help -> ci mostra I comandi disponibili • halt -> spegne la macchina • reboot -> riavvia la macchina • cad -> manda il segnale cad gestito da /etc/inittab • config dev=config -> aggiunge il dispositivo dev alla macchina • remove dev -> rimuove il dispositivo dev • sysrq lettter -> esegue l'azione associata a letter • stop -> mette in pausa la macchina • go -> fa ripartire una macchina fermata in precedenza 16
  17. 17. Gestione device – Esempio (1) Facciamo riferimento all'esercizio precedente e ipotizziamo di voler collegare il nodo11-5 anche alla sottorete 192.168.22.0 Cosa bisogna fare? • Basta modificare il file /et/network/interfaces? • Basta prendere un altro cavo e attaccarlo allo switch2? • Occorre inevitabilmente spegnere la macchina e farla ripartire con un nuovo comando? • Altre ipotesi? 17
  18. 18. Gestione device – Esempio (2) Usiamo la uml_mconsole 1) Ci connettiamo uml_mconsole Node11-5 2) Aggiungiamo un'interfaccia config eth1=daemon,,unix,/tmp/uml2.ctl 3) Usciamo dalla uml_mconsole quit 4) Configuriamo l'interfaccia all'interno della rete ifconfig eht1 192.168.22.5 netmask 255.255.255.248 up 18
  19. 19. Gestione device – Esempio (3) 19
  20. 20. Gestione device – Esempio (4) Considerando la nuova rete, è possibile ottimizzare il routing dei pacchetti? – No, perchè... – Si, configurando... 20
  21. 21. uml_mconsole – segnali La possibilità di inviare segnali alle macchine è molto utile. Vediamo i segnali più utili: • cad → equivalente a Ctrl+Alt+Del • b →reboot, UML cleanup • i →uccide tutti i task mandando un SIGKILL • e → terminiamo tutti i task mandando un SIGTERM • m → mostra l'utilizzo della memoria • p → Esegue il dump dei registri e dello stack • s → sincronizza i dati “dirty” sull'unità di storage 21
  22. 22. Utilizzo dei segnali - Esempio Supponiamo di voler effettuare una copia di backup di una macchina senza volerla spegnere e riaccendere. Cosa bisogna fare? • Fare il dump della memoria della macchina host e ricostruire lo stato della memoria della macchina virtuale • È sufficiente copiare il file .cow senza particolari accorgimenti • Altro? 22
  23. 23. Utilizzo dei segnali - Esempio La procedura da seguire per un corretto backup è: • $uml_mconsole Node11-5 stop OK • $uml_mconsole Node11-5 sysrq s SysRq: Emergency Sync • $cp Node11-5.cow Node11-5-backup.cow • $uml_mconsole Node11-5 stop OK 23
  24. 24. hostfs Dall'interno delle macchine virtuali è possibile accedere a risorse esterne in due differenti modalità: • Tramite la rete • Accedendo direttamente al file system dell'host Nel primo caso è necessario avere permessi speciali per poter configurare risorse di rete sulla macchina host. Nel secondo caso abbiamo la possibilità di accedere all'intero file system della macchina host (con qualche limitazione) 24
  25. 25. hostfs – Come Funziona Il comando da utilizzare all'interno della macchina virtuale è estremamente semplice: UML$ mount none /mnt -t hostfs [-o /tmp] Analizziamo il comando nel dettaglio: • mount → comando per montare file system (fs) • none → dispositivo su cui si trova il fs • /mnt → directory in cui montare il fs • -t hostfs → tipo di fs • -o /tmp → directory dell'host file system che si vuole montare (assieme alle sottodirectory) Esercizio: montate la cartella /tmp dell'host e provate ad aprire un file con vim sia dal lato UML che da lato host. Cosa succede? 25
  26. 26. Esercizio Per chi è stato veloce e ha già finito. 26

×