diff --git a/Setup-iniziale.md b/Setup-iniziale.md index 86e4e7d..b4d2f71 100644 --- a/Setup-iniziale.md +++ b/Setup-iniziale.md @@ -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.