La red privada de Infiniband es 192.168.20.x con máscara 16 A continuación se encuentra el script que se ha diseñado para levantar la interfaz (ib0) para el nodo master {{{ # Commands below need to be run from the front end as root. # Front end usually has the IP address 192.168.10.1 for eth0. # # Network rocks add network ibnet subnet=192.168.20.0 netmask=255.255.0.0 rocks set host interface ip localhost iface=ib0 ip=192.168.20.1 rocks set host interface subnet localhost iface=ib0 subnet=ibnet rocks set host interface module localhost iface=ib0 module=ip_ipoib rocks set host interface name localhost iface=ib0 name=clustertalca2 rocks sync host network localhost # # Firewall rocks add firewall host=localhost chain=INPUT protocol=all service=all action=ACCEPT network=ibnet iface=ib0 rulename="A80-IB0-PRIVATE" rocks sync host firewall localhost rocks set network servedns ibnet True # # /etc/hosts.local echo "# Front end" > /etc/hosts.local printf "%-14s %-20s %-14s\n" "192.168.20.1" "clustertalca2.ibnet" "ib-clustertalca2" >> /etc/hosts.local }}} [[attachment:infiniband-clustertalca2.sh|Descargar script]] La configuración de los nodos: {{{#! /bin/bash # BASH script to configure IPoIB for non front end nodes in a Rocks 6.1 cluster. # IP address scheme for InfiniBand (ib0) will reflect that of Ethernet (eth0). # Must be root to run this script. # Function to convert the first character in a string to uppercase function ucfirst_character () { original_string="$@" first_character=${original_string:0:1} rest_of_the_string=${original_string:1} first_character_uc=`echo "$first_character" | tr a-z A-Z` echo "${first_character_uc}${rest_of_the_string}" } # Necessary variables # Remove login and/or nas from the list below if the cluster does not have login and/or NAS nodes export MYNODETYPES="compute" # Outer for loop begins for x in $MYNODETYPES do echo $x # List of nodes of given type (login, nas or compute) export MYNODES=`rocks list host | grep "$x" | awk -F ':' '{ print $1 }' | sort -t- -k 2,2n -k 3,3n` # /etc/hosts.local header for a given type of node if [ $x == "nas" ] then export y=`echo $x | tr a-z A-Z` else export y=`ucfirst_character $x` fi echo "# $y node(s)" >> /etc/hosts.local # Inner for loop begins for MYHOSTNAME_ETH0 in $MYNODES do # echo "MYHOSTNAME_ETH0" # echo $MYHOSTNAME_ETH0 # # Additiional necessary variables export MYHOSTNAME_IB0="ib-$MYHOSTNAME_ETH0" export MYHOSTIP_ETH0=`rocks list host interface $MYHOSTNAME_ETH0 | grep "eth0" | awk '{ print $4 }'` export MYHOSTIP_IB0=`echo $MYHOSTIP_ETH0 | sed 's/192.168.255/192.168.20/g'` export MYSHORTNAME_ETH0=`echo $MYHOSTNAME_ETH0 | sed 's/compute/c/g' | sed 's/login/l/g' | sed 's/nas/n/g'` export MYSHORTNAME_IB0=`echo $MYHOSTNAME_IB0 | sed 's/compute/c/g' | sed 's/login/l/g' | sed 's/nas/n/g'` # # Network rocks add host interface $MYHOSTNAME_ETH0 ib0 echo "1" rocks set host interface ip $MYHOSTNAME_ETH0 iface=ib0 ip=$MYHOSTIP_IB0 echo "2" echo $MYHOSTNAME_ETH0 rocks set host interface subnet $MYHOSTNAME_ETH0 iface=ib0 subnet=ibnet echo "3" rocks set host interface module $MYHOSTNAME_ETH0 iface=ib0 module=ip_ipoib echo "4" rocks set host interface name $MYHOSTNAME_ETH0 iface=ib0 name=$MYHOSTNAME_ETH0 echo "5" rocks sync host network $MYHOSTNAME_ETH0 # # Firewall rocks add firewall host=$MYHOSTNAME_ETH0 chain=INPUT protocol=all service=all action=ACCEPT network=ibnet iface=ib0 rulename="A80-IB0-PRIVATE" rocks sync host firewall $MYHOSTNAME_ETH0 # # For debugging purposes only printf "%-14s %-20s %-14s %-18s %-10s\n" "${MYHOSTIP_ETH0}" "${MYHOSTNAME_ETH0}.local" "${MYSHORTNAME_ETH0}.local" "${MYHOSTNAME_ETH0}" "${MYSHORTNAME_ETH0}" printf "%-14s %-20s %-14s %-18s %-10s\n" "${MYHOSTIP_IB0}" "${MYHOSTNAME_ETH0}.ibnet" "${MYSHORTNAME_ETH0}.ibnet" "${MYHOSTNAME_IB0}" "${MYSHORTNAME_IB0}" # # /etc/hosts.local printf "%-14s %-20s %-14s %-18s %-10s\n" "${MYHOSTIP_ETH0}" "${MYHOSTNAME_ETH0}.local" "${MYSHORTNAME_ETH0}.local" "${MYHOSTNAME_ETH0}" "${MYSHORTNAME_ETH0}" >> /etc/hosts.local printf "%-14s %-20s %-14s %-18s %-10s\n" "${MYHOSTIP_IB0}" "${MYHOSTNAME_ETH0}.ibnet" "${MYSHORTNAME_ETH0}.ibnet" "${MYHOSTNAME_IB0}" "${MYSHORTNAME_IB0}" >> /etc/hosts.local done # Inner for loop ends done # Outer for loop ends }}} [[attachment:infiniband-nodes.sh|Descargar script]]