Vai al contenuto principale
BlogLinuxRFT: opzione di configurazione sperimentale "ubd=mmap

RFT: opzione sperimentale di configurazione "ubd=mmap

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)

  1. Author Photo

    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..

  2. Author Photo

    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..

  3. Author Photo

    Well then. Let me gather the info and send that along to the list.

    -Chris

  4. Author Photo

    My var filesystem was pretty goofed up, but I managed to fix it, and am up and running again without mmap.

  5. Author Photo

    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

  6. Author Photo

    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.

  7. Author Photo

    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

Lascia una risposta

Il vostro indirizzo e-mail non sarà pubblicato. I campi obbligatori sono contrassegnati da *