Posso migliorare la velocità della rete con VirtualBox tra host e guest?

3

Uso una macchina VirtualBox con Arch Linux come server web di sviluppo. Voglio migliorare la velocità di trasferimento rsync via smb: //. Che tipo di configurazione è meglio migliorare il trasferimento / sincronizzazione dei file?

Quale configurazione di rete è la migliore per la velocità tra l'host e l'ospite?

La mia configurazione: Intel PRO / 1000 MT Desktop (Adaptador em ponte (collegato), en1: Wi-Fi (AirPort))

    
posta tenshimsm 08.07.2012 - 23:42
fonte

3 risposte

1

Meglio di smb:// sarebbe per NFS montare le tue condivisioni su un'interfaccia di rete privata che esegue i driver virtio-net . Una volta montato, all'interno del sistema operativo host, avresti rsync nei dati con:

rsync /some/mount/point /home/myuser/

O qualunque cosa tu voglia.

Qualcuno ha già menzionato Vagrant e, da solo, non accelera la tua configurazione di VirtualBox, ma fa fare cose come montando in condivisioni sul tuo Mac tramite l'esportazione NFS molto, molto più facile di farlo a mano.

Ad esempio, ecco un Vagrantfile che ingrandisce un'installazione di Arch Linux e monta la directory Documenti sul tuo computer tramite NFS usando i driver virtio a /documents sull'immagine.

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "losingkeys/arch"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.network "public_network"
  config.vm.provider "virtualbox" do |vb|
    vb.customize ['modifyvm', :id, '--nictype1', 'virtio']
    vb.customize ['modifyvm', :id, '--nictype2', 'virtio']
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.memory = 1024
    vb.cpus   = 2
    # Uncomment this to run in not-headless mode
    # vb.gui  = true
  end
  config.vm.synced_folder '.', '/vagrant', type: 'nfs'
  config.vm.synced_folder File.join(ENV['HOME'], 'Documents'), "/documents", type: "nfs"
end

Richiede che i privilegi di root funzionino. Dovrai aggiungere:

Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

al tuo file sudoers tramite visudo perché funzioni.

Una volta che hai messo Vagrantfile su disco tutto ciò che devi fare è andare nella directory in cui l'hai salvato ed eseguire vagrant up e sei in affari. Per collegarlo è vagrant ssh o puoi decommentare quella riga che ho lasciato lì per eseguirla con un display head.

Questa è la configurazione più veloce che conosca per host / guest I / O con VirtualBox che esegue Linux come sistema operativo guest.

    
risposta data 08.08.2014 - 05:08
fonte
1

Questa non è direttamente la risposta che stai cercando, ma un approccio alternativo che fa miracoli per i miei ambienti di sviluppo.

Vagrant ( vagrantup.com ) è uno strumento creato su VirtualBox che facilita l'utilizzo di macchine virtuali per gli ambienti di sviluppo. Una volta installato, puoi navigare in una cartella locale con i tuoi file sorgente nel terminale e inizializzare la tua macchina virtuale. Vagrant eseguirà il mapping della cartella corrente per impostazione predefinita su "/ vagrant" all'interno della macchina virtuale con accesso in lettura e scrittura, tramite il supporto delle cartelle condivise di VirtualBox. Ad esempio, potresti puntare il webroot all'interno della tua macchina virtuale in una cartella sottostante,

Dai un'occhiata alla guida introduttiva per maggiori informazioni su Vagrant. Se preferisci Arch Linux, puoi anche trovare le caselle predefinite in www.vagrantbox.es . Puoi persino creare la tua scatola da zero, nel qual caso potresti voler consultare questo capitolo nel manuale .

Per quanto riguarda la portabilità, credo che non sia una buona idea distribuire le risorse all'interno di una macchina virtuale in questo modo (anche per un singolo sviluppatore). Dovresti metterli in un sistema di controllo della versione come Git o SVN e fare un check-out su ogni computer su cui vuoi sviluppare.

    
risposta data 09.07.2012 - 11:06
fonte
0

Se ti stai imbattendo in un collo di bottiglia di I / O, ti consiglio di inserire la VM sul proprio disco rigido. O quello o l'aggiornamento a un SSD per migliorare le prestazioni di I / O del disco.

    
risposta data 09.08.2012 - 16:12
fonte

Leggi altre domande sui tag