這是我們使用的是由一個可將虛擬機遷移一個什麼樣的腳本。
您可以使用此命令slcli virtual list --columns id,hostname,pendingMigrationFlag | grep True
和實際遷移列表可遷移的虛擬機可以使用此slcli call-api Virtual_Guest migrate "--id=$VSID"
#!/bin/bash
TYPE=${1:-server}
while :; do
VSID=`slcli virtual list --columns id,hostname,pendingMigrationFlag | grep "$TYPE" | grep True | head -1 | cut -d ' ' -f1`;
if [[ -n "$VSID" ]]; then
echo "Next item to migrate: $VSID"
slcli vs detail "$VSID"
slcli call-api Virtual_Guest migrate "--id=$VSID"
if [[ "$?" -eq "0" ]]; then
echo "Waiting for the migration to complete..."
while :; do
sleep 5
STATE=`slcli vs detail "$VSID" | grep active_transaction | awk '{print $2}'`
if [ "$STATE" = "NULL" ]; then
echo "Migration finished"
break
else
echo "Current state: $STATE"
fi
done
fi
else
echo "No vs found to migrate"
break
fi
done
感謝來完成,這個工程。 –
SoftLayer_Virtual_Guest/$ VSIID /遷移呼叫作品, ' - 當服務器已準備就緒,呼籲/遷移不遷移 - 當服務器已遷移 - 我的錯誤,這是正常情況 ' **是否有任何機會檢查在特定的VS是否有資格進行遷移而不實際(遷移)重新啓動它?** –
VS有一個名爲pendingMigrationFlag的屬性,如果此標誌設置爲false,則不需要遷移它,您可以像這樣獲取它SoftLayer_Virtual_Guest/$ VSIID /的getObject?objectMask =掩模[pendingMigrationFlag] –