Aggiornare 'Setup iniziale'

master
Fabio Durastante 3 years ago
parent cd4bcb50d2
commit aa4d36160d

@ -1,27 +1,34 @@
Per eseguire uno script su tutte i nodi possiamo utilizzare lo script di utilità: ## Preliminari
```bash
In più casi dovremo eseguire uno script su tutte i nodi, per farlo possiamo utilizzare il seguente script `runsetup.sh`:
```bash
#!/bin/bash #!/bin/bash
# Our custom function # Our custom function
file=$1 file=$1
cust_func(){ cust_func(){
echo "I am ${url}" echo "I am ${url}"
scp $file root@$url:/root/$file scp $file root@$url:/root/$file
ssh root@$url chmod +x /root/$file ssh root@$url chmod +x /root/$file
ssh root@$url /root/$file NUMBER=$(echo $url | tr -dc '0-9')
} ssh root@$url /root/$file $NUMBER
}
while IFS= read -r url while IFS= read -r url
do do
cust_func "$url $file" & cust_func "$url $file" &
done < list.txt done < list.txt
wait wait
echo "All commands have been run." echo "All commands have been run."
``` ```
seguito dal nome `script.sh` che vogliamo eseguire su tutte le macchine. seguito dal nome `script.sh` che vogliamo eseguire su tutte le macchine, e.g.,
```bash
./runsetup.sh script.sh
```
## Script di configurazione iniziale del nodo ## Script di configurazione iniziale del nodo
Script utilizzato per installare le macchine: Script `runsetup.sh` utilizzato per installare le macchine:
```bash ```bash
#!/bin/bash #!/bin/bash
@ -48,6 +55,10 @@ apt update -y && apt upgrade -y
# Install required packages # Install required packages
apt -y install build-essential gcc openmpi-bin openmpi-common libopenmpi-dev glusterfs-server slurm python3-pip valgrind tree git curl man-db mc parallel neovim unrar atool apt -y install build-essential gcc openmpi-bin openmpi-common libopenmpi-dev glusterfs-server slurm python3-pip valgrind tree git curl man-db mc parallel neovim unrar atool
``` ```
e che può essere eseguito come:
```bash
./runsetup.sh script.sh
```
## Personalizzare la shell di login sul Nodo 0 ## Personalizzare la shell di login sul Nodo 0
@ -143,19 +154,22 @@ Infine:
sudo systemctl restart dnsmasq sudo systemctl restart dnsmasq
sudo reboot sudo reboot
``` ```
Dobbiamo inoltre comunicare il DNS a tutti i nodi in modo che possano risolvere le connessioni tra loro, ad esempio creando lo script `fixdns.sh`:
## GlusterFS
```bash ```bash
sudo echo "nameserver 192.168.0.2" >> /etc/resolvconf/resolv.conf.d/head sudo echo "nameserver 192.168.0.2" >> /etc/resolvconf/resolv.conf.d/head
sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u sudo resolvconf -u
``` ```
ed eseguendo
```bash
./runsetup.sh fixdns.sh
```
## GlusterFS
Creiamo la cartella che conterrà le home condivise in **tutti i nodi** e attiviamo il servizio GlusterFS: Creiamo la cartella che conterrà le home condivise in **tutti i nodi** e attiviamo il servizio GlusterFS:
```bash ```bash
sudo mkdir /data sudo mkdir /data${i}
systemctl enable --now glusterd systemctl enable --now glusterd
``` ```
Per installare GlusterFS dobbiamo per prima cosa permettere le connessioni dagli altri nodi attraverso il Firewall: Per installare GlusterFS dobbiamo per prima cosa permettere le connessioni dagli altri nodi attraverso il Firewall:
@ -165,16 +179,21 @@ for i in {1..19}; do sudo iptables -I INPUT -p all -s steffe$i -j ACCEPT; done;
Ora dobbiamo far riconoscere i nodi tra di loro Ora dobbiamo far riconoscere i nodi tra di loro
```bash ```bash
sudo gluster peer probe steffe0 sudo gluster peer probe steffe0
sudo gluster volume create gv0 replica 20 steffe{0..19}:/data force for i in {1..19}; do sudo gluster peer probe steffe${i}; done;
sudo gluster volume start gv0 e creare il volume condiviso:
```bash
sudo gluster volume create data transport tcp steffe0:/data0 steffe1:/data1 steffe2:/data2 steffe3:/data3 steffe4:/data4 steffe5:/data5 steffe6:/data6 steffe7:/data7 steffe8:/data8 steffe9:/data9 steffe10:/data10 steffe11:/data11 steffe12:/data12 steffe13:/data13 steffe14:/data14 steffe15:/data15 steffe16:/data16 steffe17:/data17 steffe18:/data18 steffe19:/data19 force
sudo gluster volume start data
sudo gluster volume info sudo gluster volume info
``` ```
Possiamo quindi montare i dischi facendo
```bash ```bash
for i in {1..19}; do sudo gluster peer probe steffe${i}; done; mkdir -p /mnt/data
mount -t glusterfs steffe0:data /mnt/data
``` ```
## Slurm Workload Manager ## Slurm Workload Manager
Slurm Workload Manager, precedentemente noto come Simple Linux Utility for Resource Management (SLURM), o semplicemente **Slurm**, è un job scheduler gratuito e open source per kernel Linux e Unix-like, utilizzato da molti dei supercomputer e cluster di computer del mondo. Slurm Workload Manager, precedentemente noto come Simple Linux Utility for Resource Management (SLURM), o semplicemente **Slurm**, è un job scheduler gratuito e open source per kernel Linux e Unix-like, utilizzato da molti dei supercomputer e cluster di computer del mondo.

Loading…
Cancel
Save