prod_iscsi.patch
| src/datastore_mad/remotes/iscsi/clone | ||
|---|---|---|
| 76 | 76 |
CLONE_CMD=$(cat <<EOF |
| 77 | 77 |
set -e |
| 78 | 78 |
$SUDO $LVCREATE -L${SIZE}M ${VG_NAME} -n ${LV_NAME}
|
| 79 |
$SUDO $DD if=$DEV_SRC of=$DEV bs=64k
|
|
| 79 |
$SUDO $DD if=$DEV_SRC of=$DEV bs=2M
|
|
| 80 | 80 | |
| 81 |
TID=\$($SUDO $(tgtadm_next_tid)) |
|
| 82 | ||
| 83 |
$SUDO $(tgtadm_target_new "\$TID" "$IQN") |
|
| 84 |
$SUDO $(tgtadm_target_bind_all "\$TID") |
|
| 85 |
$SUDO $(tgtadm_logicalunit_new "\$TID" "$DEV") |
|
| 81 |
$SUDO $(tgt_setup_lun "$IQN" "$DEV") |
|
| 86 | 82 |
$SUDO $(tgt_admin_dump_config "$TARGET_CONF") |
| 87 | 83 |
EOF |
| 88 | 84 |
) |
| src/datastore_mad/remotes/iscsi/cp | ||
|---|---|---|
| 84 | 84 |
set -e |
| 85 | 85 |
$SUDO $LVCREATE -L${SIZE}M ${VG_NAME} -n ${LV_NAME}
|
| 86 | 86 | |
| 87 |
TID=\$($SUDO $(tgtadm_next_tid)) |
|
| 88 | ||
| 89 |
[ -z "\$TID" ] && TID=1 |
|
| 90 | ||
| 91 |
$SUDO $(tgtadm_target_new "\$TID" "$IQN") |
|
| 92 |
$SUDO $(tgtadm_target_bind_all "\$TID") |
|
| 93 |
$SUDO $(tgtadm_logicalunit_new "\$TID" "$DEV") |
|
| 87 |
$SUDO $(tgt_setup_lun "$IQN" "$DEV") |
|
| 94 | 88 |
$SUDO $(tgt_admin_dump_config "$TARGET_CONF") |
| 95 | 89 |
EOF |
| 96 | 90 |
) |
| ... | ... | |
| 121 | 115 | |
| 122 | 116 |
ssh_exec_and_log "$DST_HOST" "$REGISTER_CMD" "Error registering $DST_HOST:$DEV" |
| 123 | 117 | |
| 124 |
exec_and_log "eval $DUMP | $SSH $DST_HOST $SUDO $DD of=$DEV bs=64k" \
|
|
| 118 |
exec_and_log "eval $DUMP | $SSH $DST_HOST $SUDO $DD of=$DEV bs=2M" \
|
|
| 125 | 119 |
"Error dumping $SRC to $DST_HOST:$DEV" |
| 126 | 120 | |
| 127 | 121 |
echo "$IQN" |
| src/datastore_mad/remotes/iscsi/mkfs | ||
|---|---|---|
| 76 | 76 |
set -e |
| 77 | 77 |
$SUDO $LVCREATE -L${SIZE}M ${VG_NAME} -n ${LV_NAME}
|
| 78 | 78 | |
| 79 |
TID=\$($SUDO $(tgtadm_next_tid)) |
|
| 80 |
[ -z "\$TID" ] && TID=1 |
|
| 81 | ||
| 82 |
$SUDO $(tgtadm_target_new "\$TID" "$IQN") |
|
| 83 |
$SUDO $(tgtadm_target_bind_all "\$TID") |
|
| 84 |
$SUDO $(tgtadm_logicalunit_new "\$TID" "$DEV") |
|
| 79 |
$SUDO $(tgt_setup_lun "$IQN" "$DEV") |
|
| 85 | 80 |
$SUDO $(tgt_admin_dump_config "$TARGET_CONF") |
| 86 | 81 | |
| 87 | 82 |
if [ "$FSTYPE" != "save_as" ]; then |
| src/mad/sh/scripts_common.sh | ||
|---|---|---|
| 44 | 44 |
TAR=tar |
| 45 | 45 |
TGTADM=tgtadm |
| 46 | 46 |
TGTADMIN=tgt-admin |
| 47 |
TGTSETUPLUN=tgt-setup-lun |
|
| 47 | 48 |
VMKFSTOOLS=vmkfstools |
| 48 | 49 |
WGET=wget |
| 49 | 50 | |
| ... | ... | |
| 349 | 350 | |
| 350 | 351 |
function tgtadm_get_tid_for_iqn {
|
| 351 | 352 |
IQN="$1" |
| 352 |
echo "$TGTADM --lld iscsi --op show --mode target | \ |
|
| 353 |
echo "$TGTADM --lld iscsi --op show --mode target | strings | \
|
|
| 353 | 354 |
grep \"$IQN\" | awk '{split(\$2,tmp,\":\"); print(tmp[1]);}'"
|
| 354 | 355 |
} |
| 355 | 356 | |
| 356 | 357 |
function tgtadm_next_tid {
|
| 357 |
echo "$TGTADM --lld iscsi --op show --mode target | \ |
|
| 358 |
echo "$TGTADM --lld iscsi --op show --mode target | strings | \
|
|
| 358 | 359 |
$GREP \"Target\" | tail -n 1 | \ |
| 359 | 360 |
$AWK '{split(\$2,tmp,\":\"); print tmp[1]+1;}'"
|
| 360 | 361 |
} |
| ... | ... | |
| 402 | 403 |
echo $TARGET|$AWK -F. '{print $(NF-1)}'
|
| 403 | 404 |
} |
| 404 | 405 | |
| 406 |
function tgt_setup_lun {
|
|
| 407 |
IQN="$1" |
|
| 408 |
DEV="$2" |
|
| 409 |
echo "$TGTSETUPLUN -d $DEV -n $IQN 1>&2" |
|
| 410 |
} |
|
| 411 | ||
| 405 | 412 |
function iqn_get_host {
|
| 406 | 413 |
IQN="$1" |
| 407 | 414 |
TARGET=`echo "$IQN"|$CUT -d: -f2` |
| src/tm_mad/iscsi/clone | ||
|---|---|---|
| 81 | 81 |
$SUDO $LVCREATE -L\${SIZE} ${VG_NAME} -n ${TARGET_LV_NAME}
|
| 82 | 82 | |
| 83 | 83 |
# clone lv with dd |
| 84 |
$SUDO $DD if=$SOURCE_DEV of=$TARGET_DEV bs=64k
|
|
| 84 |
$SUDO $DD if=$SOURCE_DEV of=$TARGET_DEV bs=2M
|
|
| 85 | 85 | |
| 86 | 86 |
# new iscsi target |
| 87 |
TID=\$($SUDO $(tgtadm_next_tid)) |
|
| 88 | ||
| 89 |
$SUDO $(tgtadm_target_new "\$TID" "$NEW_IQN") |
|
| 90 |
$SUDO $(tgtadm_target_bind_all "\$TID") |
|
| 91 |
$SUDO $(tgtadm_logicalunit_new "\$TID" "$TARGET_DEV") |
|
| 87 |
$SUDO $(tgt_setup_lun "$NEW_IQN" "$TARGET_DEV") |
|
| 92 | 88 |
$SUDO $(tgt_admin_dump_config "$TARGET_CONF") |
| 93 | 89 |
EOF |
| 94 | 90 |
) |
| ... | ... | |
| 101 | 97 |
mkdir -p $DST_DIR |
| 102 | 98 |
$SUDO $(iscsiadm_discovery "$TARGET_HOST") |
| 103 | 99 |
$SUDO $(iscsiadm_login "$NEW_IQN" "$TARGET_HOST") |
| 104 |
sleep 2 |
|
| 105 |
DISK_BY_PATH=\$(ls /dev/disk/by-path/*$NEW_IQN-lun-1) |
|
| 106 |
ln -s "\$DISK_BY_PATH" "$DST_PATH" |
|
| 107 | 100 |
EOF |
| 108 | 101 |
) |
| 109 | 102 | |
| 110 | 103 |
ssh_exec_and_log "$DST_HOST" "$DISCOVERY_CMD" \ |
| 111 | 104 |
"Error discovering $NEW_IQN in $DST_HOST" |
| 112 | 105 | |
| 106 |
TEST_CMD=$(cat <<EOF |
|
| 107 |
set -e |
|
| 108 |
while [ ! -L /dev/disk/by-path/*$NEW_IQN-lun-1 ]; do |
|
| 109 |
sleep 1 |
|
| 110 |
done |
|
| 111 |
EOF |
|
| 112 |
) |
|
| 113 | ||
| 114 |
ssh_exec_and_log "$DST_HOST" "$TEST_CMD" \ |
|
| 115 |
"Error waiting for $NEW_IQN iSCSI LUN to appear in $DST_HOST" |
|
| 116 | ||
| 117 | ||
| 118 |
LINK_CMD=$(cat <<EOF |
|
| 119 |
set -e |
|
| 120 |
DISK_BY_PATH=\$(ls /dev/disk/by-path/*$NEW_IQN-lun-1) |
|
| 121 |
ln -s "\$DISK_BY_PATH" "$DST_PATH" |
|
| 122 |
DISK_DEVNAME=\$(readlink -f \$DISK_BY_PATH | awk -F'/' '{ print \$NF }')
|
|
| 123 |
EOF |
|
| 124 |
) |
|
| 125 | ||
| 126 |
ssh_exec_and_log "$DST_HOST" "$LINK_CMD" \ |
|
| 127 |
"Error linking $NEW_IQN in $DST_HOST" |
|
| 128 | ||
| 113 | 129 |
exit 0 |
| src/tm_mad/iscsi/ln | ||
|---|---|---|
| 63 | 63 |
mkdir -p $DST_DIR |
| 64 | 64 |
$SUDO $(iscsiadm_discovery "$TARGET_HOST") |
| 65 | 65 |
$SUDO $(iscsiadm_login "$IQN" "$TARGET_HOST") |
| 66 |
sleep 2 |
|
| 66 |
EOF |
|
| 67 |
) |
|
| 68 | ||
| 69 |
ssh_exec_and_log "$DST_HOST" "$DISCOVER_CMD" \ |
|
| 70 |
"Error discovering $DST_HOST:$DEV" |
|
| 71 | ||
| 72 |
TEST_CMD=$(cat <<EOF |
|
| 73 |
set -e |
|
| 74 |
while [ ! -L /dev/disk/by-path/*$IQN-lun-1 ]; do |
|
| 75 |
sleep 1 |
|
| 76 |
done |
|
| 77 |
EOF |
|
| 78 |
) |
|
| 79 | ||
| 80 |
ssh_exec_and_log "$DST_HOST" "$TEST_CMD" \ |
|
| 81 |
"Error waiting for $IQN iSCSI LUN to appear in $DST_HOST" |
|
| 82 | ||
| 83 |
LINK_CMD=$(cat <<EOF |
|
| 84 |
set -e |
|
| 67 | 85 |
DISK_BY_PATH=\$(ls /dev/disk/by-path/*$IQN-lun-1) |
| 68 | 86 |
ln -s "\$DISK_BY_PATH" "$DST_PATH" |
| 87 |
DISK_DEVNAME=\$(readlink -f \$DISK_BY_PATH | awk -F'/' '{ print \$NF }')
|
|
| 69 | 88 |
EOF |
| 70 | 89 |
) |
| 71 | 90 | |
| 72 |
ssh_exec_and_log "$DST_HOST" "$DISCOVER_CMD" \ |
|
| 73 |
"Error registering $DST_HOST:$DEV" |
|
| 91 |
ssh_exec_and_log "$DST_HOST" "$LINK_CMD" \ |
|
| 92 |
"Error linking $DST_HOST:$DEV" |
|
| 93 | ||
| 74 | 94 | |
| 75 | 95 |
exit 0 |
| src/tm_mad/iscsi/mv | ||
|---|---|---|
| 114 | 114 | |
| 115 | 115 |
TARGET_HOST=$(iqn_get_host "$IQN") |
| 116 | 116 | |
| 117 |
LOGIN_CMD=$(cat <<EOF
|
|
| 117 |
LOGIN_CMD=$(cat <<EOF |
|
| 118 | 118 |
set -e |
| 119 | 119 |
mkdir -p $DST_DIR |
| 120 | 120 |
$SUDO $(iscsiadm_discovery "$TARGET_HOST") |
| 121 | 121 |
$SUDO $(iscsiadm_login "$IQN" "$TARGET_HOST") |
| 122 |
EOF |
|
| 123 |
) |
|
| 124 | ||
| 125 |
ssh_exec_and_log "$DST_HOST" "$LOGIN_CMD" \ |
|
| 126 |
"Error logging in $IQN" |
|
| 127 | ||
| 128 |
TEST_CMD=$(cat <<EOF |
|
| 129 |
set -e |
|
| 130 |
while [ ! -L /dev/disk/by-path/*$IQN-lun-1 ]; do |
|
| 122 | 131 |
sleep 1 |
| 132 |
done |
|
| 133 |
EOF |
|
| 134 |
) |
|
| 135 | ||
| 136 |
ssh_exec_and_log "$DST_HOST" "$TEST_CMD" \ |
|
| 137 |
"Error waiting for $IQN iSCSI LUN to appear in $DST_HOST" |
|
| 138 | ||
| 139 |
LINK_CMD=$(cat <<EOF |
|
| 140 |
set -e |
|
| 123 | 141 |
DISK_BY_PATH=\$(ls /dev/disk/by-path/*$IQN-lun-1) |
| 124 | 142 |
ln -sf "\$DISK_BY_PATH" "$DST_PATH" |
| 125 | 143 |
EOF |
| 126 | 144 |
) |
| 127 | 145 | |
| 128 |
ssh_exec_and_log "$DST_HOST" "$LOGIN_CMD" \ |
|
| 129 |
"Error logging in $IQN" |
|
| 146 |
ssh_exec_and_log "$DST_HOST" "$LINK_CMD" \ |
|
| 147 |
"Error linking to $DISK_BY_PATH $DST_PATH" |
|
| 148 | ||
| 149 | ||
| 130 | 150 |
fi |
| 131 | 151 | |
| 132 | 152 |
exit 0 |
| src/tm_mad/iscsi/mvds | ||
|---|---|---|
| 101 | 101 |
set -e |
| 102 | 102 | |
| 103 | 103 |
# clone lv with dd |
| 104 |
$SUDO $DD if=$SOURCE_DEV of=$TARGET_DEV bs=64k
|
|
| 104 |
$SUDO $DD if=$SOURCE_DEV of=$TARGET_DEV bs=2M
|
|
| 105 | 105 | |
| 106 | 106 |
# remove if source_dev is not persistent |
| 107 | 107 |
if [ -z "$PERSISTENT" ]; then |