Étude du déploiement de réseaux virtuels à destination de 300 étudiants.
Rappel :
Chaque étudiant(e) dispose de 3 Go d'espace de sauvegarde (300 x 3 Go = 900 Go au total.
Dans leur espace de 3 Go les étudiant(e)s gèrent chacun(ne) :
A noter qu'il est possible de faire de nombreuses machines virtuelles temporaires (modifications dans /tmp). Pour des TP d'installation par exemple.
Quelques liens :
La ou les machines virtuelles des étudiants peuvent devoir éventuellement :
Du plus simple : une VM connectée à Internet (via le proxy)
Au moyen : 2 ou 3 VM interconnectées et connectés à Internet
Au plus compliqué : un réseau tout entier
Sous VDN tout est scripts shells bash (exception faite pour l'interface graphique qui est Ruby/GTK2).
Exemple de rôles :
Mais tout autre rôle possible :
Mise en oeuvre :
#!/usr/bin/env bash set -eu DESC="Configuration de base de alice et bob (hostname, hosts, interfaces)." run() { . $VDN_PATH/bin/functions-scripts.sh setErrorHandler echoStart requireSshGuests alice bob parallelDisablePause vdn-scripts baseConfigAlice baseConfigBob unsetErrorHandler echoDone }
... # Fixer un fichier ... # Exécuter une commande sur le système virtuel ...
Au département informatique, chaque étudiant dispose déjà de 30 machines virtuelles, sans aucun espace supplémentaire autre que quelques Mo (moins de 10 Mo je pense) dans leur home.
Comment ?
/dev/kvm
(modules noyaux kvm, kvm_{intel,amd})notamment :
Un compte vdn hébergeant :
qemu-system-x86_64 -smp 8 -enable-kvm -cpu host -device virtio-rng-pci,rng=rng0 -object rng-random,filename=/dev/urandom,id=rng0 -pidfile /tmp/vdn-passerelle-davalan-pid -rtc base=localtime -m 256M -initrd /home/davalan/vdn/files/initrd.img-4.19.0-5-amd64 -kernel /home/davalan/vdn/files/vmlinuz-4.19.0-5-amd64 -append root=/dev/vda1 ro console=ttyS0,115200n8 vdn-emulator=kvm vdn-mode=tgz vdn-nb-disk=1 net.ifnames=0 noresume fastboot -boot order=c -drive file=/home/davalan/vdn/files/DebianBuster-amd64.disk,if=virtio,snapshot=on,format=raw -drive file=/tmp/vdn-passerelle-davalan-config.tgz,if=virtio,media=disk,format=raw -drive file=/home/davalan/vdn-save/fixme/passerelle.tgz,if=virtio,media=disk,format=raw -drive file=/tmp/vdn-passerelle-davalan-part,if=virtio,media=disk,format=raw -drive file=/tmp/vdn-passerelle-davalan-swap,if=virtio,media=disk,format=raw -drive file=/tmp/vdn-passerelle-davalan-out,if=virtio,media=disk,format=raw -device virtio-net-pci,netdev=n1,mac=52:55:25:E8:05:00 -netdev socket,id=n1,mcast=239.2.0.0:2000 -device virtio-net-pci,netdev=n2,mac=52:55:25:E8:05:01 -netdev socket,id=n2,mcast=234.1.37.232:2001 -device virtio-net-pci,netdev=n3,mac=52:55:25:E8:05:02 -netdev socket,id=n3,mcast=234.1.37.232:2002 -device virtio-net-pci,netdev=n0,mac=52:55:25:E8:05:03 -netdev user,id=n0,hostfwd=tcp::5522-:22 -serial mon:stdio -monitor null -vnc unix:/tmp/vdn-vnc-davalan-passerelle-socket
?