Richiesta di test!
Mi piacerebbe che qualcuno di voi provasse una nuova opzione che cambia il modo in cui UML scrive sui file del vostro filesystem e postasse qui le sue esperienze.
Normalmente, UML utilizza le chiamate di libreria standard open/close read/write. Il problema è che in questo modo i dati vengono duplicati nella cache delle pagine dell'host e le prestazioni dell'i/o su disco ne risentono. La nuova opzione mappa il file del filesystem direttamente nella cache delle pagine, eliminando così le copie duplicate delle pagine e lo spreco di cache delle pagine...
Si noterà una nuova "Opzione sperimentale" nella pagina Modifica profilo di configurazione. Per attivarla, abilitare ubd=mmap, salvare e riavviare. Si dovrebbe notare in dmesg sotto le opzioni del kernel. (dmesg | grep mmap)
Quando avremo un certo numero di segnalazioni di successo, prenderò in considerazione la possibilità di abilitarlo per tutti.
[color=darkred][b]ATTENZIONE:[/b][/color][/size] Non consiglio a nessuno di attivare questa funzione. C'è sempre il rischio di perdita di dati con una funzione in fase di maturazione come questa. Jeff Dike ha risolto l'ultimo bug noto di ubd=mmap il mese scorso, che ha distrutto i file system superiori a 4 GB (quindi sarebbe un buon test), quindi usate questa opzione con cautela. Nelle mailing list di UML non sono stati segnalati fallimenti legati a mmap, ma non è un'opzione molto conosciuta.
La versione attuale (nei kernel 2.4.24) ha funzionato bene per me con mmap abilitato, ma il vostro chilometraggio può variare.
Grazie,
-Chris
Commenti (7)
I’m game. 🙂
I just rebooted my linode with it enabled. I do nightly backups, so I am not overly concerned. Here’s hoping for the best..
That went badly.
From dmesg:
EXT3-fs error (device ubd(98,32)) in ext3_reserve_inode_write: IO failure
EXT3-fs error (device ubd(98,32)) in ext3_orphan_add: IO failure
attempt to access beyond end of device
62:20: rw=0, want=1086378492, limit=525312
EXT3-fs error (device ubd(98,32)): ext3_get_inode_loc: unable to read inode block – inode=2507, block=808465534
EXT3-fs error (device ubd(98,32)) in ext3_reserve_inode_write: IO failure
attempt to access beyond end of device
62:20: rw=0, want=1086378492, limit=525312
EXT3-fs error (device ubd(98,32)): ext3_get_inode_loc: unable to read inode block – inode=2507, block=808465534
EXT3-fs error (device ubd(98,32)) in ext3_reserve_inode_write: IO failure
attempt to access beyond end of device
62:20: rw=0, want=1086378492, limit=525312
EXT3-fs error (device ubd(98,32)): ext3_get_inode_loc: unable to read inode block – inode=2507, block=808465534
EXT3-fs error (device ubd(98,32)) in ext3_reserve_inode_write: IO failure
Over and over and over, and I/O failures on files. I’m turning it back off..
Well then. Let me gather the info and send that along to the list.
-Chris
My var filesystem was pretty goofed up, but I managed to fix it, and am up and running again without mmap.
Thanks for giving it a try. Glad it wasn’t too hosed… I guess there is our answer about mmap. It’s hungry for filesystems!
I’ve posted a msg to uml-user, so we’ll see what comes of it. I also removed the option from the config edit page…
Thanks,
-Chris
Not a problem, I was prepared if it had gone worse. I saw your email, I’ll be interested to see if they can track down the problem.. It’s an interesting option that I’d like to use on my non-linode UML’s as well.
Sounds like Jeff knows what to look for (from #uml)…
[code]13:05 < caker> jdike: anything else I can provide on the ubd=mmap corruption issue?
13:33 < jdike> caker: I’ve seen problems, so I’ve got something to chase
13:33 < jdike> caker: namely pages of zeros which shouldn’t be[/code]
-Chris