¿Puedo mejorar la velocidad de la red con VirtualBox entre el host y el invitado?

3

Utilizo una máquina VirtualBox con Arch Linux como servidor web de desarrollo. Quiero mejorar la velocidad de transferencia rsync a través de smb: //. ¿Qué tipo de configuración es la mejor para mejorar la transferencia / sincronización de archivos?

¿Qué configuración de red es la mejor para la velocidad entre el host y el invitado?

Mi configuración: Intel PRO / 1000 MT Desktop (Adaptador en puente (puente), en1: Wi-Fi (AirPort))

    
pregunta tenshimsm 08.07.2012 - 23:42

3 respuestas

1

Mejor que smb:// sería montar sus recursos compartidos NFS a través de una interfaz de red privada que ejecuta los controladores virtio-net . Una vez montado, dentro del SO host, rsync en los datos con:

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

O lo que quieras.

Alguien ya mencionó Vagrant y, por sí solo, no acelerará la configuración de VirtualBox, pero sí hace que hacer cosas como montaje en recursos compartidos en su Mac mediante exportación NFS mucho, mucho más fácil que hacerlo a mano.

Por ejemplo, aquí hay un Vagrantfile que sube a una instalación de Arch Linux y monta su directorio de Documentos en su máquina a través de NFS usando controladores virtio a /documents en la imagen.

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

Requiere privilegios de root para trabajar. Deberá agregar:

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

a su archivo sudoers a través de visudo para que funcione.

Una vez que hayas puesto ese Vagrantfile en el disco, todo lo que tienes que hacer es guardar el cd al directorio donde lo guardaste y ejecutar vagrant up y estás en el negocio. Para conectar es vagrant ssh o puede descomentar esa línea que dejé allí para ejecutarla con un cabezal de visualización.

Esa es la configuración más rápida que conozco para E / S de host / guest con VirtualBox ejecutando Linux como SO invitado.

    
respondido por el Ian C. 08.08.2014 - 05:08
1

Esta no es directamente la respuesta que está buscando, sino un enfoque alternativo que funciona de maravilla para mis entornos de desarrollo.

Vagrant ( vagrantup.com ) es una herramienta creada en VirtualBox que facilita el uso de máquinas virtuales para entornos de desarrollo. Una vez que lo instaló, puede navegar a una carpeta local con sus archivos de origen en el terminal e inicializar su máquina virtual. Vagrant asignará la carpeta actual de manera predeterminada a "/ vagrant" dentro de la máquina virtual con acceso de lectura y escritura, a través del soporte de carpetas compartidas de VirtualBox. Luego, podría apuntar el webroot dentro de su máquina virtual a una carpeta debajo de allí, por ejemplo.

Consulte la guía Comenzar para obtener más información sobre Vagrant. Si prefieres Arch Linux, también puedes encontrar cuadros precompilados en www.vagrantbox.es . Incluso puede crear su propia caja desde cero, en cuyo caso puede consultar este capítulo en el manual .

En cuanto a la portabilidad, creo que no es una buena idea distribuir sus fuentes dentro de una máquina virtual de esta manera (incluso para un solo desarrollador). Debe colocarlos en un sistema de control de versiones como Git o SVN, y hacer un check-out en todas las máquinas en las que desee desarrollar.

    
respondido por el Gerry 09.07.2012 - 11:06
0

Si se encuentra con un cuello de botella de E / S, recomendaría colocar la VM en su propio disco duro. O eso o actualizar a un SSD para mejorar el rendimiento de E / S del disco.

    
respondido por el EmmEff 09.08.2012 - 16:12

Lea otras preguntas en las etiquetas