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à:
```bash
## Preliminari
In più casi dovremo eseguire uno script su tutte i nodi, per farlo possiamo utilizzare il seguente script `runsetup.sh`:
```bash
#!/bin/bash
# Our custom function
file=$1
cust_func(){
cust_func(){
echo "I am ${url}"
scp $file root@$url:/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
do
cust_func "$url $file" &
done < list.txt
wait
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 utilizzato per installare le macchine:
Script `runsetup.sh` utilizzato per installare le macchine:
```bash
#!/bin/bash
@ -48,6 +55,10 @@ apt update -y && apt upgrade -y
# 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
```
e che può essere eseguito come:
```bash
./runsetup.sh script.sh
```
## Personalizzare la shell di login sul Nodo 0
@ -143,19 +154,22 @@ Infine:
sudo systemctl restart dnsmasq
sudo reboot
```
## GlusterFS
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`:
```bash
sudo echo "nameserver 192.168.0.2" >> /etc/resolvconf/resolv.conf.d/head
sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
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:
```bash
sudo mkdir /data
sudo mkdir /data${i}
systemctl enable --now glusterd
```
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
```bash
sudo gluster peer probe steffe0
sudo gluster volume create gv0 replica 20 steffe{0..19}:/data force
sudo gluster volume start gv0
for i in {1..19}; do sudo gluster peer probe steffe${i}; done;
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
```
Possiamo quindi montare i dischi facendo
```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, 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