Description du projet :
Ce projet consiste a créer un « super ordinateur » en miniature.
Ce « super ordinateur » sera réalisé en regroupant plusieurs ordinateurs indépendants appelés nœuds (node en anglais) dans une seule unité logique (grappe), afin de permettre une gestion globale et de dépasser les limitations d’un ordinateur.
Une grappe de serveurs est donc un groupe de serveurs indépendants fonctionnant comme un seul et même système. Un client dialogue avec une grappe, comme s’il s’agissait d’une machine unique.
Ce projet sera sera composée de 3 Orange Pi One (extensible).
Pour ce projet, j’ai choisi la carte orangePi One car elle est peu coûteuse (10€ l’unité) et le processeur embarqué est assez performant (4 coeurs @ 1.2 Ghz).
Liste du matériel (BOM) :
- 3 cartes OrangePi One,
- 1 chargeur usb de 40w
- 1 switch 100 mB
- 1 clé wifi usb (ou ethernet usb)
- 3 cables reseaux
- 3 cables d’alimentation
- 3 radiateurs cpu et 6 radiateurs ram
cout total < 100 €
Les étapes :
- assemblage de la grappe :
cela n’a pas posé de problèmes particulier. - installation des OS sur les carte micro sd
– téléchargement du système Armbian Debian Jessie https://www.armbian.com/orange-pi-one/
– téléchargement et installation de l’outil etcher https://etcher.io/
– création des OS a partir de l’image disque debian sur les 3 cartes micro sd avec etcher - configuration du noeud maitre :
– configuration du clavier en français :
1root@orangepi:# dpkg-reconfigure keyboard-configuration
– désinstallation de network manager
1root@orangepi:# apt-get purge network-manager
– configuration des interfaces réseaux :
1234567891011121314151617root@master:# nano /etc/network/interfaces# Wired adapter #1allow-hotplug eth0iface eth0 inet staticaddress 192.168.169.1netmask 255.255.255.0dns-nameservers 8.8.8.8 8.8.4.4# Wireless adapter #1allow-hotplug wlan0iface wlan0 inet dhcpwpa-conf /etc/wpa_supplicant/wpa_supplicant.conf# Local loopbackauto loiface lo inet loopback
– configuration de l’accès internet via wlan0 (wifi) :
12345678910111213141516root@master:# nano /etc/wpa_supplicant/wpa_supplicant.confnetwork={ssid="<ssid>"psk="<psk>"}root@master:# <code>service networking restartroot@master:# ping www.google.frPING www.google.fr (172.217.19.227) 56(84) bytes of data.64 bytes from par21s11-in-f3.1e100.net (172.217.19.227): icmp_seq=1 ttl=53 time=16.3 ms64 bytes from par21s11-in-f3.1e100.net (172.217.19.227): icmp_seq=2 ttl=53 time=17.3 ms64 bytes from par21s11-in-f3.1e100.net (172.217.19.227): icmp_seq=3 ttl=53 time=24.1 ms--- www.google.fr ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 5008msroot@master:#
– mise à jour du système :
1root@orangepi:# apt-get update && apt-get upgrade -y
– configuration de la time zone (Europe/Paris) :
1root@orangepi:# dpkg-reconfigure tzdata
– configuration du nom d’hôte :
12root@orangepi:# nano /etc/hostnamemaster
– configuration du fichier hosts :
1234567891011root@orangepi:# nano /etc/hosts127.0.0.1 localhost master::1 localhost master ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters192.168.169.1 master master.lan192.168.169.11 slave1 slave1.lan192.168.169.12 slave2 slave2.lan
– configuration du resolveur :
1234root@orangepi:# nano /etc/resolv.confnameserver 8.8.8.8root@orangepi:# reboot
– configuration du nat (pour que les autres noeuds puissent accéder à internet via le noeud maitre) :
1234567891011121314root@master:# iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPTroot@master:# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADEroot@master:# iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPTroot@master:# iptables-save > /etc/iptables_rules.saveroot@master:# nano /etc/sysctl.conf...# Uncomment the next line to enable packet forwarding for IPv4net.ipv4.ip_forward=1...root@master:# echo 'post-up iptables-restore < /etc/iptables_rules.save' >> /etc/network/interfacesroot@master:# <code>service networking restart
– configuration du serveur udhcp (pour attribuer automatiquement une adresse ip à tous les noeuds du réseau) :
1234567891011121314151617181920212223242526272829303132root@master:# apt-get install udhcpdroot@master:# touch /var/lib/misc/udhcpd.leasesroot@master:# nano /etc/default/udhcpd# Comment the following line to enableDHCPD_ENABLED="yes"# nano /etc/udhcpd.conf# The start and end of the IP lease blockstart 192.168.169.10 #default: 192.168.0.20end 192.168.169.100 #default: 192.168.0.254# The interface that udhcpd will useinterface eth0 #default: eth0# kernel 3#static_lease b6:f9:bc:5a:6d:3e 192.168.169.11#static_lease fa:53:12:e0:47:27 192.168.169.12# kernel 4static_lease 02:81:46:70:72:48 192.168.169.11static_lease 02:81:46:45:de:fa 192.168.169.12#Optionsopt dns 8.8.8.8option subnet 255.255.255.0opt router 192.168.169.1#opt wins 192.168.10.10#option dns 129.219.13.81 # appened to above DNS servers for a total of 3option domain lanoption lease 864000 # 10 days of seconds
– le serveur maitre (« master ») doit pouvoir se connecter directement sur les autres noeuds via ssh (sans demander de mdp) :
123root@master:~# ssh-keygenroot@master:~# ssh-copy-id slave1root@master:~# ssh-copy-id slave2