Skip to content

Instantly share code, notes, and snippets.

@ramereth
Last active April 9, 2018 21:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ramereth/5e11018570f8cd8aa7e707643a4bbf4b to your computer and use it in GitHub Desktop.
Save ramereth/5e11018570f8cd8aa7e707643a4bbf4b to your computer and use it in GitHub Desktop.
# vm rbd conversion
nova stop 89ebfe43-64ff-4f61-ba63-417dee3420f7
qemu-img convert -f qcow2 -O raw -p \
/var/lib/nova/instances/89ebfe43-64ff-4f61-ba63-417dee3420f7/disk \
rbd:vms/89ebfe43-64ff-4f61-ba63-417dee3420f7_disk:id=cinder
nova start 89ebfe43-64ff-4f61-ba63-417dee3420f7
rm -f /var/lib/nova/instances/89ebfe43-64ff-4f61-ba63-417dee3420f7/disk*
# image rbd conversion
qemu-img convert -f qcow2 -O raw -p \
/var/lib/glance/images/e1847f1a-01d2-4957-a067-b56085bf3781 \
rbd:images/e1847f1a-01d2-4957-a067-b56085bf3781:id=glance
rbd --id glance snap create images/e1847f1a-01d2-4957-a067-b56085bf3781@snap
rbd --id glance snap protect images/e1847f1a-01d2-4957-a067-b56085bf3781@snap
glance location-add \
--url rbd://984bfc10-b028-4d76-89d5-c7eae798295a/images/e1847f1a-01d2-4957-a067-b56085bf3781/snap \
e1847f1a-01d2-4957-a067-b56085bf3781
glance location-delete \
--url file:///var/lib/glance/images/e1847f1a-01d2-4957-a067-b56085bf3781 \
e1847f1a-01d2-4957-a067-b56085bf3781
glance --os-image-api-version 1 image-update --disk-format raw e1847f1a-01d2-4957-a067-b56085bf3781
# volume rbd conversion
# openstack volume create --size <same size as old> <new name>
cinder --os-project-id <project id> create --name <new name> <size>
qemu-img convert -n -f raw -O raw -p \
/dev/lvm/volume-2094ba85-3623-40e9-8217-220bb1d7f71d \
rbd:volumes/volume-456247e3-d068-42ed-9243-fd91239fbfdb:id=cinder
openstack server remove volume <server> <volume>
openstack server add volume --device /dev/vdb <server> <volume>
# boot volume rbd conversion
# openstack volume create --size <same size as old> <new name>
cinder --os-project-id <project id> create --name <new name> <size>
qemu-img convert -n -f raw -O raw -p \
/dev/lvm/volume-2094ba85-3623-40e9-8217-220bb1d7f71d \
rbd:volumes/volume-456247e3-d068-42ed-9243-fd91239fbfdb:id=cinder
# log into mysql
# change current volume to vdb and set boot index to 1
use cinder;
update volume_attachment set mountpoint='/dev/vdb' where volume_id = 'oldVolumeId' and deleted = 0;
use nova;
update block_device_mapping set device_name = '/dev/vdb', boot_index=1 where volume_id = 'oldVolumeId' and deleted = 0;
# detach volume
openstack server remove volume <server> <old volume>
# attach new volume
openstack server add volume --device=/dev/vda <server> <new volume>
cinder set-bootable <new volume> true
# log into mysql
use cinder;
update volume_attachment set mountpoint='/dev/vda' where volume_id = 'shinyNewVolumeId' and deleted = 0;
use nova;
update block_device_mapping set device_name = '/dev/vda', boot_index=0 where volume_id = 'shinyNewVolumeId' and deleted = 0;
# force a fresh and correct libvirt config
nova reboot --hard <start>
# remove iscsi session
iscsiadm -m session
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-b99dbf5d-f815-4cfe-9d3d-384c4f8446ba -p 10.1.0.221 -u
set -ex
image_dir="/data/openstack-glance"
image_id="${1}"
mkdir -p images
openstack image show -f shell ${image_id} > images/${image_id}.sh
source images/${image_id}.sh
ls -lh ${image_dir}/${image_id}
qemu-img convert -f ${disk_format} -O raw -p \
${image_dir}/${image_id} \
${image_dir}/${image_id}.raw
if [ "${protected}" == 'True' ] ; then
set_protected="--protected"
else
set_protected="--unprotected"
fi
if [ "${visibility}" == "public" ] ; then
set_visibility="--public"
else
set_visibility="--private"
fi
if [ -n "${tags}" ] ; then
set_tags="--tag \"${tags}\""
fi
openstack image create \
--container-format ${container_format} \
--disk-format raw \
--file ${image_dir}/${image_id}.raw \
--min-disk ${min_disk} \
--min-ram ${min_ram} \
${set_protected} \
${set_visibility} \
${set_tags} \
"${name} - raw"
new_image_id="$(openstack image show "${name} - raw" -f value -c id)"
openstack image set \
--name "${name}" \
--property hw_scsi_model=virtio-scsi \
--property hw_disk_bus=scsi \
--property hw_qemu_guest_agent=yes \
--property os_require_quiesce=yes \
${new_image_id}
glance image-update --owner ${owner} ${new_image_id}
openstack image delete ${image_id}
# rm -f ${image_dir}/${image_id}.raw
set -xe
ls -lh /var/lib/nova/instances/${1}/disk
nova stop ${1}
virsh_name="$(openstack server show ${1} -c OS-EXT-SRV-ATTR:instance_name -f value)"
RUNNING=1
while [ $RUNNING -eq 1 ] ; do
sleep 1
if [ "$(openstack server show -c "OS-EXT-STS:power_state" -f value $1)" == "Shutdown" ] ; then
RUNNING=0
fi
done
qemu-img convert -f qcow2 -O raw -p \
/var/lib/nova/instances/${1}/disk \
rbd:vms/${1}_disk:id=cinder
virsh blkdeviotune $virsh_name vda
virsh blkdeviotune $virsh_name vda --write_bytes_sec 0 --write_bytes_sec_max 0
nova start ${1}
mv -f /var/lib/nova/instances/${1}/disk /var/lib/nova/instances/${1}/disk.moved
set -ex
cinder list --all-tenants
cinder --os-project-id 8312bbf43e9842498c92fd2304e27879 create --name gnome-hispano-swap 2
cinder --os-project-id <project id> create --name <new name> <size>
qemu-img convert -n -f raw -O raw -p \
/dev/lvm/volume-2094ba85-3623-40e9-8217-220bb1d7f71d \
rbd:volumes/volume-456247e3-d068-42ed-9243-fd91239fbfdb:id=cinder
openstack server remove volume <server> <volume>
openstack server add volume --device /dev/vdb <server> <volume>
image_dir="/data/openstack-glance"
vol_id="${1}"
vol_tenant="$(openstack volume show ${vol_id} -c os-vol-tenant-attr:tenant_id -f value)"
image_name="$(openstack image show ${image_id} -f value -c name)"
image_owner="$(openstack image show ${image_id} -f value -c owner)"
openstack image show -f shell ${image_id} > ${image_id}.txt
ls -lh ${image_dir}/${image_id}
qemu-img convert -f qcow2 -O raw -p \
${image_dir}/${image_id} \
${image_dir}/${image_id}.raw
openstack image create \
--container-format bare \
--disk-format raw \
--file ${image_dir}/${image_id}.raw \
"${image_name} - raw"
new_image_id="$(openstack image show "${image_name} - raw" -f value -c id)"
openstack image set \
--name "${image_name}" \
--property hw_scsi_model=virtio-scsi \
--property hw_disk_bus=scsi \
--property hw_qemu_guest_agent=yes \
--property os_require_quiesce=yes \
${new_image_id}
glance image-update --owner ${image_owner} ${new_image_id}
openstack image delete ${image_id}
rm -f ${image_dir}/${image_id}.raw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment