[one-users] Equallogic premigrate script

Francesco Camisa francesco.camisa at policlinicosanmarco.it
Thu Dec 27 06:05:41 PST 2012


I'm using ON 3.8.1. KVM is the hypervisor.

I customized the premigrate script to login the iscsi target before initiating a live migration.

It's a work-in-progress since at least it has to be modified to iterate in case there are multiple targets.

#!/bin/bash

# -------------------------------------------------------------------------- #
# Copyright 2002-2012, OpenNebula Project Leads (OpenNebula.org)             #
#                                                                            #
# Licensed under the Apache License, Version 2.0 (the "License"); you may    #
# not use this file except in compliance with the License. You may obtain    #
# a copy of the License at                                                   #
#                                                                            #
# http://www.apache.org/licenses/LICENSE-2.0                                 #
#                                                                            #
# Unless required by applicable law or agreed to in writing, software        #
# distributed under the License is distributed on an "AS IS" BASIS,          #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
# See the License for the specific language governing permissions and        #
# limitations under the License.                                             #
#--------------------------------------------------------------------------- #
# PREMIGRATE SOURCE DST remote_system_dir vmid dsid template
#  - SOURCE is the host where the VM is running
#  - DST is the host where the VM is to be migrated
#  - remote_system_dir is the path for the VM home in the system datastore
#  - vmid is the id of the VM
#  - dsid is the target datastore
#  - template is the template of the VM in XML and base64 encoded

# To access the vm_template you can use the xpath.rb utility. Check the
# datastore drivers for an example.

DST=$1
SRC=$2
RSD=$3
VMID=$4
DSID=$5
TMPL=$6

if [ -z "${ONE_LOCATION}" ]; then
    TMCOMMON=/var/lib/one/remotes/tm/tm_common.sh
else
    TMCOMMON=$ONE_LOCATION/var/remotes/tm/tm_common.sh
fi

. $TMCOMMON

DRIVER_PATH=$(dirname $0)

source ${DRIVER_PATH}/../../datastore/iscsi/iscsi.conf

TARGET_HOST=192.168.10.2
IQN=$(onevm show $VMID|grep SOURCE|cut -f2 -d "\""|cut -f1 -d "\"")

DISCOVER_CMD=$(cat <<EOF
    set -e
    $SUDO $(iscsiadm_discovery "$TARGET_HOST")
    $SUDO $(iscsiadm_login "$IQN" "$TARGET_HOST")
    sleep 10
EOF
)

ssh_exec_and_log "$DST" "$DISCOVER_CMD" \
        "Error registering $DST_HOST:$DEV"
exit 0


 

Francesco Camisa
Vice Direttore Generale
Policlinico San Marco
via Zanotto 40
30173 Mestre-VE
Italy


More information about the Users mailing list