SVC: Миграция данных с использованием CLI 2


Встала задача заменить целиком один сторадж сервер, снабжающий томами SVC,  на другой.

Сначала планировалось переносить экстенты через GUI SVC, но учитывая большое количество VDisk-ов, MDisk-ов и многоходовости визарда, на это потребовалась бы прорва времени и уйма внимания.

В общем решил вникнуть в SVC CLI и вот что из этого получилось:

================ mdmigrate.sh =====================

# SVC Mdisk migration utility (c) Alexander Dubrovsky

#!/usr/bin/sh

SVCNAME=$1

DISKS=`grep -v «#» srcdst.$SVCNAME`
MDGRP=`grep $SVCNAME mdgrp|awk ‘{print $2}’`

VDISKS=`ssh admin@$SVCNAME «svcinfo lsvdisk -filtervalue mdisk_grp_name=$MDGRP -nohdr» |awk ‘{print $2}’`

for i in $VDISKS
do 
for j in $DISKS 
do

TD=`echo $j |awk -F»;» ‘{print $1}’`
ND=`echo $j |awk -F»;» ‘{print $2}’`

EXTS=`ssh admin@$SVCNAME «svcinfo lsvdiskextent -nohdr $i» |awk -v ID=$TD  ‘( $1 == ID ) {print $2}’ `

if [ «$EXTS» != «» ] ; then

echo ssh admin@$SVCNAME «svctask migrateexts -source $TD -target $ND -exts $EXTS -vdisk $i «
#            ssh admin@$SVCNAME «svctask migrateexts -source $TD -target $ND -exts $EXTS -vdisk $i «

MIGPRC=`ssh admin@$SVCNAME «svcinfo lsmigrate -nohdr»`
fi
done
while [ ! -z «$MIGPRC» ] ; do
echo $MIGPRC
sleep 5
MIGPRC=`ssh admin@$SVCNAME «svcinfo lsmigrate -nohdr»`
done

done

========= mdgrp — SVC to MDisk Group matching ========================

svc1    MDGroup1
svc2    MDGroup2

=========================================================

======== srcdst.svc1 — Source to Target MDisks matching for svc1 cluster ==========

25;38

28;39

30;41

37;40

==========================================================

Конечно же хост, с которого запускается скрипт, должен без пароля по ключу ходить к SVC.

Данный скрипт — просто пример использования CLI, но в принципе может быть использован без модификаций, если у кого-то встанет аналогичная задача.

Он проходит по всем VDisk и запускает на параллельное выполнение процессы миграции экстентов со всех MDisk-ов, которые нужно освободить на новые или просто другие.

Поскольку один MDisk не может быть источником и/или приемником для двух и более одновременных процессов миграции, то скрипт дожидается окончания процессов для каждого VDisk, и затем идет дальше.

 

 


Оставьте комментарий

2 мыслей про “SVC: Миграция данных с использованием CLI