rdma.zsh: Handle machines with multiple NICs
Iterate over each network card and add RDMA to it. Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
48a2b87ecd
commit
f1ea1327f4
42
rdma.zsh
42
rdma.zsh
|
@ -4,25 +4,27 @@ if [ "$#" -lt 2 ]; then
|
|||
echo "Usage: $0 {rxe,siw,info,start,status,stop,off} {remote host,...}"
|
||||
fi
|
||||
|
||||
rdma_ip() {
|
||||
getent hosts $1 | head -n 1 | awk '{print $1}'
|
||||
rdma_ips() {
|
||||
getent hosts $1 | awk '{print $1}'
|
||||
}
|
||||
|
||||
rdma_dev() {
|
||||
ssh $1 ip addr show to $(rdma_ip $1) | awk -F': ' '{print $2}'
|
||||
rdma_devs() {
|
||||
for ip in $(rdma_ips $1); do
|
||||
ssh $1 ip addr show to $ip | awk -F': ' '{print $2}'
|
||||
done
|
||||
}
|
||||
|
||||
rdma_cur() {
|
||||
ssh $1 rdma link | awk -F '[0-9 ]' '{print $2}'
|
||||
ssh $1 rdma link | awk -F '[ |/]' '{print $2}'
|
||||
}
|
||||
|
||||
rdma_start() {
|
||||
cur=$(rdma_cur $1)
|
||||
if [[ "$cur" != "$3" ]]; then
|
||||
if [[ ! -z "$cur" ]]; then
|
||||
rdma_stop $1
|
||||
fi
|
||||
ssh $1 "sudo rdma link add "$3"0 type $3 netdev $(rdma_dev $1)"
|
||||
if [ -z "$(rdma_cur $1 | grep $3)" ]; then
|
||||
rdma_stop $1
|
||||
devs=($(rdma_devs $1))
|
||||
for i in $(seq ${#devs}); do
|
||||
ssh $1 "sudo rdma link add $3$((i-1)) type $3 netdev ${devs[$i]}"
|
||||
done
|
||||
fi
|
||||
rdma_status $1 $2
|
||||
}
|
||||
|
@ -32,19 +34,27 @@ rdma_info() {
|
|||
}
|
||||
|
||||
rdma_status() {
|
||||
link=$(ssh $1 rdma link show)
|
||||
if [ ! -z $link ]; then
|
||||
echo "$2 $link($(rdma_ip $1))"
|
||||
links=($(ssh $1 rdma link show))
|
||||
if [ ! -z "$links" ]; then
|
||||
ips=($(rdma_ips $1))
|
||||
devs=($(rdma_devs $1))
|
||||
for link in $links; do
|
||||
dev=$(echo $link | awk '{print $NF}')
|
||||
ip=${ips[${devs[(ie)$dev]}]}
|
||||
echo "$2 $link ($ip)"
|
||||
done
|
||||
else
|
||||
echo "$2 stopped"
|
||||
fi
|
||||
}
|
||||
|
||||
rdma_stop() {
|
||||
ssh $1 "sudo rdma link delete siw0 2>/dev/null"
|
||||
ssh $1 "sudo rdma link delete rxe0 2>/dev/null"
|
||||
for dev in $(rdma_cur $1); do
|
||||
ssh $1 "sudo rdma link delete $dev"
|
||||
done
|
||||
}
|
||||
|
||||
IFS=$'\n'
|
||||
tags=($(python /home/anna/bin/colors/vm.py ${@:2}))
|
||||
for vm in "${@:2}"; do
|
||||
index=${@[(ie)$vm]}
|
||||
|
|
Loading…
Reference in New Issue