Suite au tuto sur vagrant (qui ne m'a absolument pas convaincu, remarquez bien, mais bon ... c'est un autre problème ...), je profite de la fièvre VM qui nous enflamme pour poster cette question:

Je trouve aussi que développer sous linux c'est mieux, voir indispensable dans certains cas. Oui mais windows, moi, j'aime bien. J'utilise vitrualBox depuis quelques temps maintenant, et je suis toujours face au même problème, mais qui prend des proportions plus grandes maintenant que j'utilise phpstorm: comment communiquer entre l'host et le guest de facon fluide? Quoi qu'il en soit la question est aussi d'intéret pour ceux qui voudront utilser vagrant pour servir mais garder win pour coder.

  • J'ai essayé les dossiers partagés de VB, qui sont montés de facon automatique dans /media. Le pb c'est que linux peine a lire les fichiers (NTFS) et le chargement de mes pages est suuuuuuuperlong (genre 10s ... au lieu des ~100ms en général). L'utilisation intensive de la console que je fais pour coder (par exemple avec sf2) est aussi super chi*** car super long.

  • J'ai aussi essayer samba: les fichier sont sur la debian, et j'ai une connexion depuis windows pour les lire/écrire. Jusqu'a présent c'était sans problème, mais depuis que je suis passé a PHPStorm (coté host), qui synchronise en temps réel, index les fichiers en continue, etc ... , j'ai de vraies latences de plusieurs secondes lorsque je code (cette fois windows peine a lire les fichiers qui sont sur linux).

L'idée est donc que je code depuis windows, mais que mon serveur reste sur la VM. Quelqu'un a-t-'il une idée brillante pour faciliter les choses? J'ai bien conscience de demander le beurre, l'argent du beurre et les fesses de la crémière, mais bon ... on sait jamais ...

(Precheur linuxien ou OSXien argneux: passe ton chemin s'il te plait)

13 réponses


Bahamut45
Réponse acceptée

Bon je vais te dire comment moi je procède avec mon système de développement, au lancement de ma session sur mon pc, j'ai fais un script batch pour qu'il me lance ma vm une fois que celle ci est totalement démarré et que mon partage samba est fonctionnel, je monte un lecteur réseau qui pointe sur mon /var/www de ma debian. Mon projet sous ST2 est directement relié à mon lecteur réseau Z et je peux éditer mes fichiers directement de mes projets web sans aucune latence.

Pour répondre à ta question lors de la formation cakephp et l'utilisation de la console, je faisais directement mes modifications sur ma vm et tout apparaissait directement sur mon ST2.

Perso j'ai un sync_folder sur windows et je n'ai pas eu des temps de chargement aussi long c'est bizarre la VM réagit bien, tu as aloué cb de Mo de RAM ?

Vallyan
Auteur

Mon PC en fait 8Gb, et j'en donne 4 a la VM (Debian 7).

Pour avoir regardé un peu sur les forums, il semblerait que ce soit le file system de windows que n'est pas apprécié coté linux. Mais si ca ne te le fait pas c'est qu'il y a moyen de résoudre ce soucis, va falloir que je regarde un peu plus, donc ...

Vallyan
Auteur

Pour info, voici des benchmarks (acces serveur) pour les 3 possibilités de partages de fichiers (win host, linux guest, toujours):

Les shared folders sont entre 10 et 15 fois plus lents que Samba (et meme en utilisant Samba, mettre les fichier sur le linux fait gagner un facteur 1.5 a 2 en terme de vitesse).

Il semblerait donc qu'un mount CIFS depuis win soit le meilleur compromis ... je vais tenter en tous cas.

Grafikart, je serais curieux de connaitre ta config ... ou est-ce cakePHP qui est tellement plus rapide que les autres framework qu'il compense une latence d'un facteur 10 :P ? Ca pour le coup ca me convertirait ^^

Bonjour Vallyan,

(Precheur linuxien ou OSXien argneux: passe ton chemin s'il te plait)
Je comprend pas cette reflexion mais bon je suis un codeur windows avec une vm linux.

Je ne suis pas un utilisateur de VirtualBox car j'utilise VMware, mais peut tu me dire comment tu as configurer ta carte réseau de ta vm ?

Pour mon cas, j'ai une debian 7 virtuelle avec le strict minimum requis en terme de ressource, j'ai monté un samba et je n'ai aucune latence avec SublimeText 2.

Le probleme n'est pas au niveau du montage et samba rempli très bien son role , je pense que le probleme est la configuration du bridge reseau entre ton host et ton guest.

Donne moi plus d'information sur ta configuration.

Cordialement

Vallyan
Auteur

Salut Bahamut,

J'ai vu souvent le débat devenir "passe a tout linux" ou "Moi j'ai jamais eu de pb avec mon mac" ... je prends les devant pour dire que c'est pas la question ;)

Alors pour te répondre: je suis très loin de ma zone de confort avec la config réseau ! Je te donne ce que vois mais sans vraiment piger ce que ca fait:

Attached to: Bridged Adapter
Name: Intel(R) Centrino Adavnced-N 6230
Promiscuous Mode: Deny
Cable connected (checked)

Je sais pas si ca te dis quelque chose ou s'il te faut d'autres infos ... ?

Merci en tous cas

Alors on va partir de la base peut tu faire un ping de ton pc hote vers l'ip de ta guest et me donner le resultat ?

Peut tu me donner des details sur ton pc host car il me semble que la carte reseau centrino n est une carte wifi ?

Vallyan
Auteur

Alors pour le ping: voici:

Pinging 192.168.1.58 with 32 bytes of data:
Reply from 192.168.1.58: bytes=32 time<1ms TTL=64
Reply from 192.168.1.58: bytes=32 time<1ms TTL=64
Reply from 192.168.1.58: bytes=32 time<1ms TTL=64
Reply from 192.168.1.58: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.1.58:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Pour les specs de mon PC, que puis-je te dire ?
C'est un portable, Win 7, proc i7
Si ca aide: voici les adapteurs réseau que me propose virtualbox.

Moi ca ne me parle pas :( ...

Bon alors je sais pas comment tu utilise ton pc portable, par contre l'utilisation de la carte wifi en bridge est pour moi pas une bonne idée, pour moi il faut que tu utilise le bridge sur ton port ethernet (Realtek PCIe), as tu la possibilité d'avoir un cable rj45 pour ta liaison a ta box et de faire des test d'accès à ton partage samba ?

Vallyan
Auteur

Cool, je vais me faire un plaisir de tester ca dès que je remets la main sur un de mes cables qui doit trainer quelque part.
Merci infiniment de te pencher sur mon problème, en tous cas. Je te tiens au jus.

Vallyan
Auteur

Bon, malheureusement utiliser une connexion filaire ne change rien, j'ai toujours mon message, et le temps de synchronisation est toujours aussi long.

Le ping quant a lui est toujours très bon, bien entendu.

Il est fort possible au final que le problème vienne de phpstorm, qui ne gere pas bien les fichier situés sur un réseau. ST3 a le meme soucis chez moi (et chez les autres: http://stackoverflow.com/a/18945401/1795767) en ce qui concerne le file watch d'un dossier sur le réseau.

Je ne sais pas si tu génères parfois tes fichiers depuis le guest (a la console par exemple), mais si c'est le cas et que tu vois les modifs instantanément dans ton IDE / éditeur, je serais curieux de savoir ce que tu utilises ... entre toi pour qui ca a l'air de bien tourner, et Graf qui utilise les Shared Folders sans voire de latence serveur ... y a pas de justice :( ...

Vallyan
Auteur

Ca ressemble a ce que je fais. Tu me confirmes donc que des que tu éteinds ta VM, tes fichiers sont inaccessibles (il sont sur la VM, et non pas sur windows ... ) ?

La latence, je ne l'ai qu'avec PHPstorm, ST3 ne pose pas de problème de ce point de vu. Le refresh, par contre, je ne l'ai ni pour l'un ni pour l'autre (alors que ST2 sur ma VM fais le refresh correctement, bien entendu ...).

Merci d'avoir passé du temps la-dessus en tous cas, je vais continuer a essayer de rendre les choses plus fluides, en particulier en essayent de monter depuis la VM un dossier qui réside sur mon windows, je sais qu'avec samba en théorie c'est faisable ... mais pour le moment pas tellement de succès ...

Merci encore :)

Si tu veux de l'aide pour ton samba ;) je suis toujours la xD

Personnellement ma configuration est extrêmement basique mais je n'ai pas tester avec PhpStorm, en faite quand on utilise un lecteur réseau, on fait croire à Windows que c'est comme si tu avais monter un disque dur directement sur ton pc, donc je comprend pas pourquoi un logiciel ajoute une latence.

Je te confirme que dès que ma vm n'est plus accessible je ne peux plus éditer mes fichiers, sinon j'ai même été plus loin avec cette configuration, même en ajoutant un vpn et en travaillant à 400 km de chez moi je n'ai quasiment pas de latence avec ST2.

Donc on devrait arriver à la même chose avec toi.