OpenStack Boot Volume Пример: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| (не показано 19 промежуточных версий этого же участника) | |||
| Строка 9: | Строка 9: | ||
Чуть более полное описание, если хочется указать размер загрузочного диска отличного от того что описан в flavor |
Чуть более полное описание, если хочется указать размер загрузочного диска отличного от того что описан в flavor |
||
<PRE> |
<PRE> |
||
| − | + | openstack \ |
|
--os-compute-api-version 2.67 \ |
--os-compute-api-version 2.67 \ |
||
server create \ |
server create \ |
||
| Строка 29: | Строка 29: | ||
=Настройка= |
=Настройка= |
||
Тут я не описываю шаги - так как для каждого случая это разные шаги :) |
Тут я не описываю шаги - так как для каждого случая это разные шаги :) |
||
| + | <BR> |
||
| + | Очистить все лишнее |
||
| + | <PRE> |
||
| + | #!/bin/bash |
||
| + | |||
| + | cloud-init clean --logs |
||
| + | cloud-init clean |
||
| + | rm -rf /var/lib/cloud/* |
||
| + | |||
| + | truncate -s0 /etc/machine-id |
||
| + | rm -f /var/lib/dbus/machine-id |
||
| + | ln -sf /etc/machine-id /var/lib/dbus/machine-id 2>/dev/null || true |
||
| + | |||
| + | rm -f /etc/udev/rules.d/70-persistent-net.rules |
||
| + | </PRE> |
||
=Создание временного <code>volume</code>= |
=Создание временного <code>volume</code>= |
||
| Строка 34: | Строка 49: | ||
<PRE> |
<PRE> |
||
| − | for ATTACHED_VOLUME_ID in $( |
+ | for ATTACHED_VOLUME_ID in $(openstack server show mmazur-test -f yaml | yq '.volumes[].id' ); |
do |
do |
||
echo "Volume: ${ATTACHED_VOLUME_ID}"; |
echo "Volume: ${ATTACHED_VOLUME_ID}"; |
||
| − | SIZE=$( |
+ | SIZE=$(openstack volume show ${ATTACHED_VOLUME_ID} -f yaml | yq '.size'); |
if [ "${SIZE}" == "20" ]; |
if [ "${SIZE}" == "20" ]; |
||
then |
then |
||
| Строка 43: | Строка 58: | ||
fi; |
fi; |
||
done |
done |
||
| + | </PRE> |
||
| + | <PRE> |
||
| + | Volume: 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0 |
||
| + | </PRE> |
||
| + | Создать временный volume так как напрямую создать image с <code>status: in use</code> <code>volume</code> нельзя (это вероятно баг) |
||
| + | |||
| + | <PRE> |
||
| + | openstack volume create --source 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0 TMP-Vol-mmazur-20250903 |
||
| + | </PRE> |
||
| + | ==output (1)== |
||
| + | {{#spoiler:show=openstack volume create | |
||
| + | <PRE> |
||
| + | +---------------------+--------------------------------------+ |
||
| + | | Field | Value | |
||
| + | +---------------------+--------------------------------------+ |
||
| + | | attachments | [] | |
||
| + | | availability_zone | nova | |
||
| + | | bootable | true | |
||
| + | | consistencygroup_id | None | |
||
| + | | created_at | 2025-09-04T08:39:00.567846 | |
||
| + | | description | None | |
||
| + | | encrypted | False | |
||
| + | | id | 4c587446-fbf0-4895-9c46-85278e24aaae | |
||
| + | | migration_status | None | |
||
| + | | multiattach | False | |
||
| + | | name | TMP-Vol-mmazur-20250903 | |
||
| + | | properties | | |
||
| + | | replication_status | None | |
||
| + | | size | 20 | |
||
| + | | snapshot_id | None | |
||
| + | | source_volid | 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0 | |
||
| + | | status | creating | |
||
| + | | type | volumes-nvme | |
||
| + | | updated_at | None | |
||
| + | | user_id | cf919c1f6830468b887746cde925872b | |
||
| + | +---------------------+--------------------------------------+ |
||
| + | </PRE> |
||
| + | }} |
||
| + | |||
| + | =Исправление известного бага (workaround)= |
||
| + | ==Описание бага== |
||
| + | Это [https://docs.openstack.org/releasenotes/cinder/2024.1.html известный баг: the volume property signature_verified propagating to images created from volumes] |
||
| + | <BR> |
||
| + | Характерная ошибка в локах: |
||
| + | <PRE> |
||
| + | cinder.volume.flows.manager.create_volume cinder.exception.GlanceMetadataExists: Glance metadata cannot be updated, key signature_verified exists for volume id ... |
||
| + | </PRE> |
||
| + | В моей инсталляции опенстека еще не исправлена |
||
| + | ==openstack volume show== |
||
| + | Проверить информацию о созданном <code>volume</code> |
||
| + | |||
| + | <PRE> |
||
| + | openstack volume show TMP-Vol-mmazur-20250903 -f yaml |
||
| + | </PRE> |
||
| + | ==output (2)== |
||
| + | {{#spoiler:show=openstack volume show (не интересно)| |
||
| + | |||
| + | |||
| + | <PRE> |
||
| + | attachments: [] |
||
| + | availability_zone: nova |
||
| + | bootable: 'true' |
||
| + | consistencygroup_id: null |
||
| + | created_at: '2025-09-04T08:39:00.000000' |
||
| + | description: null |
||
| + | encrypted: false |
||
| + | id: 4c587446-fbf0-4895-9c46-85278e24aaae |
||
| + | migration_status: null |
||
| + | multiattach: false |
||
| + | name: TMP-Vol-mmazur-20250903 |
||
| + | os-vol-host-attr:host: cinder-volume-3@volumes-nvme#volumes-nvme |
||
| + | os-vol-mig-status-attr:migstat: null |
||
| + | os-vol-mig-status-attr:name_id: null |
||
| + | os-vol-tenant-attr:tenant_id: 7837cead1c444779a1bd3f4617b4fdf2 |
||
| + | properties: {} |
||
| + | replication_status: null |
||
| + | size: 20 |
||
| + | snapshot_id: null |
||
| + | source_volid: 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0 |
||
| + | status: available |
||
| + | type: volumes-nvme |
||
| + | updated_at: '2025-09-04T08:39:01.000000' |
||
| + | user_id: cf919c1f6830468b887746cde925872b |
||
| + | volume_image_metadata: |
||
| + | checksum: d4e18699850ed28cc79eac3e2ab9a811 |
||
| + | container_format: bare |
||
| + | disk_format: qcow2 |
||
| + | image_id: bfe4e997-ea19-440d-be2b-678ddf60699d |
||
| + | image_name: Ubuntu-2022-vdbench-mmazur-20250902-2 |
||
| + | min_disk: '0' |
||
| + | min_ram: '0' |
||
| + | owner_specified.openstack.md5: '' |
||
| + | owner_specified.openstack.object: images/Ubuntu-22.04 |
||
| + | owner_specified.openstack.sha256: '' |
||
| + | signature_verified: 'False' |
||
| + | size: '1374704640' |
||
| + | </PRE> |
||
| + | }} |
||
| + | ==workaround== |
||
| + | Что бы обойти баг, нужно удалить <code> signature_verified</code> |
||
| + | <PRE> |
||
| + | openstack volume show TMP-Vol-mmazur-20250903 -c volume_image_metadata -c id -f yaml |
||
| + | </PRE> |
||
| + | <PRE> |
||
| + | id: 4c587446-fbf0-4895-9c46-85278e24aaae |
||
| + | volume_image_metadata: |
||
| + | checksum: d4e18699850ed28cc79eac3e2ab9a811 |
||
| + | container_format: bare |
||
| + | disk_format: qcow2 |
||
| + | image_id: bfe4e997-ea19-440d-be2b-678ddf60699d |
||
| + | image_name: Ubuntu-2022-vdbench-mmazur-20250902-2 |
||
| + | min_disk: '0' |
||
| + | min_ram: '0' |
||
| + | owner_specified.openstack.md5: '' |
||
| + | owner_specified.openstack.object: images/Ubuntu-22.04 |
||
| + | owner_specified.openstack.sha256: '' |
||
| + | signature_verified: 'False' |
||
| + | size: '1374704640' |
||
| + | </PRE> |
||
| + | |||
| + | <PRE> |
||
| + | openstack volume unset --image-property signature_verified TMP-Vol-mmazur-20250903 |
||
| + | </PRE> |
||
| + | |||
| + | |||
| + | После чего можно создавать новый <code>image</code> |
||
| + | <PRE> |
||
| + | openstack volume show TMP-Vol-mmazur-20250903 -c volume_image_metadata -c id -f yaml |
||
| + | </PRE> |
||
| + | <PRE> |
||
| + | id: 4c587446-fbf0-4895-9c46-85278e24aaae |
||
| + | volume_image_metadata: |
||
| + | checksum: d4e18699850ed28cc79eac3e2ab9a811 |
||
| + | container_format: bare |
||
| + | disk_format: qcow2 |
||
| + | image_id: bfe4e997-ea19-440d-be2b-678ddf60699d |
||
| + | image_name: Ubuntu-2022-vdbench-mmazur-20250902-2 |
||
| + | min_disk: '0' |
||
| + | min_ram: '0' |
||
| + | owner_specified.openstack.md5: '' |
||
| + | owner_specified.openstack.object: images/Ubuntu-22.04 |
||
| + | owner_specified.openstack.sha256: '' |
||
| + | size: '1374704640' |
||
| + | </PRE> |
||
| + | |||
| + | =Создание образа <code>image</code>= |
||
| + | |||
| + | <PRE> |
||
| + | openstack image create \ |
||
| + | --volume 4c587446-fbf0-4895-9c46-85278e24aaae \ |
||
| + | --container-format bare \ |
||
| + | --disk-format qcow2 \ |
||
| + | Ubuntu-2022-vdbench-mmazur-20250904 |
||
| + | </PRE> |
||
| + | |||
| + | <PRE> |
||
| + | +---------------------+--------------------------------------+ |
||
| + | | Field | Value | |
||
| + | +---------------------+--------------------------------------+ |
||
| + | | container_format | bare | |
||
| + | | disk_format | qcow2 | |
||
| + | | display_description | None | |
||
| + | | id | 4c587446-fbf0-4895-9c46-85278e24aaae | |
||
| + | | image_id | 78acbdc0-d493-4227-9671-43c1e179892a | |
||
| + | | image_name | Ubuntu-2022-vdbench-mmazur-20250904 | |
||
| + | | protected | False | |
||
| + | | size | 20 | |
||
| + | | status | uploading | |
||
| + | | updated_at | 2025-09-04T08:39:01.000000 | |
||
| + | | visibility | shared | |
||
| + | | volume_type | volumes-nvme | |
||
| + | +---------------------+--------------------------------------+ |
||
| + | </PRE> |
||
| + | |||
| + | <PRE> |
||
| + | ./openstack image show Ubuntu-2022-vdbench-mmazur-20250904 -f yaml |
||
| + | </PRE> |
||
| + | <PRE> |
||
| + | container_format: bare |
||
| + | created_at: '2025-09-04T08:55:16Z' |
||
| + | disk_format: qcow2 |
||
| + | file: /v2/images/78acbdc0-d493-4227-9671-43c1e179892a/file |
||
| + | id: 78acbdc0-d493-4227-9671-43c1e179892a |
||
| + | min_disk: 0 |
||
| + | min_ram: 0 |
||
| + | name: Ubuntu-2022-vdbench-mmazur-20250904 |
||
| + | owner: 7837cead1c444779a1bd3f4617b4fdf2 |
||
| + | properties: |
||
| + | locations: [] |
||
| + | os_hidden: false |
||
| + | owner_specified.openstack.md5: '' |
||
| + | owner_specified.openstack.object: images/Ubuntu-22.04 |
||
| + | owner_specified.openstack.sha256: '' |
||
| + | protected: false |
||
| + | schema: /v2/schemas/image |
||
| + | status: queued |
||
| + | tags: [] |
||
| + | updated_at: '2025-09-04T08:55:16Z' |
||
| + | visibility: shared |
||
| + | </PRE> |
||
| + | =<code>server create</code>= |
||
| + | <PRE> |
||
| + | ./openstack \ |
||
| + | --os-compute-api-version 2.67 \ |
||
| + | server create \ |
||
| + | --flavor m1.xlarge \ |
||
| + | --network fixed-net \ |
||
| + | --security-group allow_all \ |
||
| + | --key-name mmazur \ |
||
| + | --block-device source_type=image,uuid=78acbdc0-d493-4227-9671-43c1e179892a,volume_size=20,volume_type=volumes-nvme,boot_index=0,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | --block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \ |
||
| + | mmazur-test-202509040-vdbench-01 |
||
</PRE> |
</PRE> |
||
Текущая версия на 10:58, 4 сентября 2025
Загрузка с Volume
Задача:
- Создать загрузочный image с пред-установленным софтом
Запустить сервер
Чуть более полное описание, если хочется указать размер загрузочного диска отличного от того что описан в flavor
openstack \
--os-compute-api-version 2.67 \
server create \
--flavor m1.xlarge \
--network fixed-net \
--security-group allow_all \
--key-name mmazur \
--block-device source_type=image,uuid=c84178c9-eeb0-4dc9-915f-2fc5ee83044e,volume_size=20,volume_type=volumes-nvme,boot_index=0,delete_on_termination=true \
mmazur-test
source_type=imageсоздать блочное устройство (volume!) из imageuuid=c84178c9-eeb0-4dc9-915f-2fc5ee83044eid того образа из которого создаватьvolume_size=20размерvolume_type=volumes-nvmeтип (смотреть доступныеopenstack volume type list)boot_index=0delete_on_termination=trueудалить при удалении сервера
Настройка
Тут я не описываю шаги - так как для каждого случая это разные шаги :)
Очистить все лишнее
#!/bin/bash cloud-init clean --logs cloud-init clean rm -rf /var/lib/cloud/* truncate -s0 /etc/machine-id rm -f /var/lib/dbus/machine-id ln -sf /etc/machine-id /var/lib/dbus/machine-id 2>/dev/null || true rm -f /etc/udev/rules.d/70-persistent-net.rules
Создание временного volume
В моем случае мне нужно было найти образ размером 20Gb (рутовый вольюм) это мой частный случай
for ATTACHED_VOLUME_ID in $(openstack server show mmazur-test -f yaml | yq '.volumes[].id' );
do
echo "Volume: ${ATTACHED_VOLUME_ID}";
SIZE=$(openstack volume show ${ATTACHED_VOLUME_ID} -f yaml | yq '.size');
if [ "${SIZE}" == "20" ];
then
break;
fi;
done
Volume: 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0
Создать временный volume так как напрямую создать image с status: in use volume нельзя (это вероятно баг)
openstack volume create --source 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0 TMP-Vol-mmazur-20250903
output (1)
Исправление известного бага (workaround)
Описание бага
Это известный баг: the volume property signature_verified propagating to images created from volumes
Характерная ошибка в локах:
cinder.volume.flows.manager.create_volume cinder.exception.GlanceMetadataExists: Glance metadata cannot be updated, key signature_verified exists for volume id ...
В моей инсталляции опенстека еще не исправлена
openstack volume show
Проверить информацию о созданном volume
openstack volume show TMP-Vol-mmazur-20250903 -f yaml
output (2)
workaround
Что бы обойти баг, нужно удалить signature_verified
openstack volume show TMP-Vol-mmazur-20250903 -c volume_image_metadata -c id -f yaml
id: 4c587446-fbf0-4895-9c46-85278e24aaae volume_image_metadata: checksum: d4e18699850ed28cc79eac3e2ab9a811 container_format: bare disk_format: qcow2 image_id: bfe4e997-ea19-440d-be2b-678ddf60699d image_name: Ubuntu-2022-vdbench-mmazur-20250902-2 min_disk: '0' min_ram: '0' owner_specified.openstack.md5: '' owner_specified.openstack.object: images/Ubuntu-22.04 owner_specified.openstack.sha256: '' signature_verified: 'False' size: '1374704640'
openstack volume unset --image-property signature_verified TMP-Vol-mmazur-20250903
После чего можно создавать новый image
openstack volume show TMP-Vol-mmazur-20250903 -c volume_image_metadata -c id -f yaml
id: 4c587446-fbf0-4895-9c46-85278e24aaae volume_image_metadata: checksum: d4e18699850ed28cc79eac3e2ab9a811 container_format: bare disk_format: qcow2 image_id: bfe4e997-ea19-440d-be2b-678ddf60699d image_name: Ubuntu-2022-vdbench-mmazur-20250902-2 min_disk: '0' min_ram: '0' owner_specified.openstack.md5: '' owner_specified.openstack.object: images/Ubuntu-22.04 owner_specified.openstack.sha256: '' size: '1374704640'
Создание образа image
openstack image create \ --volume 4c587446-fbf0-4895-9c46-85278e24aaae \ --container-format bare \ --disk-format qcow2 \ Ubuntu-2022-vdbench-mmazur-20250904
+---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | container_format | bare | | disk_format | qcow2 | | display_description | None | | id | 4c587446-fbf0-4895-9c46-85278e24aaae | | image_id | 78acbdc0-d493-4227-9671-43c1e179892a | | image_name | Ubuntu-2022-vdbench-mmazur-20250904 | | protected | False | | size | 20 | | status | uploading | | updated_at | 2025-09-04T08:39:01.000000 | | visibility | shared | | volume_type | volumes-nvme | +---------------------+--------------------------------------+
./openstack image show Ubuntu-2022-vdbench-mmazur-20250904 -f yaml
container_format: bare created_at: '2025-09-04T08:55:16Z' disk_format: qcow2 file: /v2/images/78acbdc0-d493-4227-9671-43c1e179892a/file id: 78acbdc0-d493-4227-9671-43c1e179892a min_disk: 0 min_ram: 0 name: Ubuntu-2022-vdbench-mmazur-20250904 owner: 7837cead1c444779a1bd3f4617b4fdf2 properties: locations: [] os_hidden: false owner_specified.openstack.md5: '' owner_specified.openstack.object: images/Ubuntu-22.04 owner_specified.openstack.sha256: '' protected: false schema: /v2/schemas/image status: queued tags: [] updated_at: '2025-09-04T08:55:16Z' visibility: shared
server create
./openstack \
--os-compute-api-version 2.67 \
server create \
--flavor m1.xlarge \
--network fixed-net \
--security-group allow_all \
--key-name mmazur \
--block-device source_type=image,uuid=78acbdc0-d493-4227-9671-43c1e179892a,volume_size=20,volume_type=volumes-nvme,boot_index=0,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
--block-device source_type=blank,destination_type=volume,volume_size=75,volume_type=alletra-volumes,delete_on_termination=true \
mmazur-test-202509040-vdbench-01