从卷启动实例¶
您可以从卷而不是镜像启动实例。
要完成这些任务,请在 openstack server create 命令中使用以下参数
任务 |
openstack server create 参数 |
信息 |
|---|---|---|
从镜像启动实例并附加不可启动的卷。 |
|
|
从镜像创建卷并从该卷启动实例。 |
|
|
从现有的源镜像、卷或快照启动。 |
|
|
将交换磁盘附加到实例。 |
|
|
将临时磁盘附加到实例。 |
|
注意
要将卷附加到正在运行的实例,请参阅 Cinder 文档。
注意
允许附加到单个服务器的磁盘设备的最大数量可以通过选项 compute.max_disk_devices_to_attach 进行配置。
从镜像启动实例并附加不可启动卷¶
您可以创建一个不可启动的卷,并将该卷附加到从镜像启动的实例。
要创建一个不可启动的卷,请不要从镜像创建它。卷必须完全为空,没有分区表也没有文件系统。
创建一个不可启动的卷。
$ openstack volume create --size 8 test-volume +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2021-06-01T15:01:31.000000 | | description | None | | encrypted | False | | id | 006efd7a-48a8-4c75-bafb-6b483199d284 | | migration_status | None | | multiattach | False | | name | test-volume | | properties | | | replication_status | None | | size | 8 | | snapshot_id | None | | source_volid | None | | status | creating | | type | lvmdriver-1 | | updated_at | None | | user_id | 0a4d2edb9042412ba4f719a547d42f79 | +---------------------+--------------------------------------+
列出卷并确认其状态为
available。$ openstack volume list +--------------------------------------+-------------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------------+-----------+------+-------------+ | 006efd7a-48a8-4c75-bafb-6b483199d284 | test-volume | available | 8 | | +--------------------------------------+-------------+-----------+------+-------------+
创建一个实例,将卷指定为要附加的块设备。
$ openstack server create \ --flavor $FLAVOR --image $IMAGE --network $NETWORK \ --block-device uuid=006efd7a-48a8-4c75-bafb-6b483199d284,source_type=volume,destination_type=volume \ --wait test-server +-------------------------------------+-----------------------------------------------------------------+ | Field | Value | +-------------------------------------+-----------------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | devstack-ubuntu2004 | | OS-EXT-SRV-ATTR:hypervisor_hostname | devstack-ubuntu2004 | | OS-EXT-SRV-ATTR:instance_name | instance-00000008 | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | OS-SRV-USG:launched_at | 2021-06-01T15:13:48.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | private=10.0.0.55, fde3:4790:906b:0:f816:3eff:fed5:ebd9 | | adminPass | CZ76LZ9pNXzt | | config_drive | | | created | 2021-06-01T15:13:37Z | | flavor | m1.tiny (1) | | hostId | 425d65fe75c1e53cecbd32d3e686314235507b6edebbeaa56ff341c7 | | id | 446d1b00-b729-49b3-9dab-40a3fbe190cf | | image | cirros-0.5.1-x86_64-disk (44d317a3-6183-4063-868b-aa0728576f5f) | | key_name | None | | name | test-server | | progress | 0 | | project_id | ae93f388f934458c8e6583f8ab0dba2d | | properties | | | security_groups | name='default' | | status | ACTIVE | | updated | 2021-06-01T15:13:49Z | | user_id | 0a4d2edb9042412ba4f719a547d42f79 | | volumes_attached | id='006efd7a-48a8-4c75-bafb-6b483199d284' | +-------------------------------------+-----------------------------------------------------------------+
再次列出卷,以确保状态已更改为
in-use,并且卷正确报告了附加信息。$ openstack volume list +--------------------------------------+-------------+--------+------+--------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------------+--------+------+--------------------------------------+ | 006efd7a-48a8-4c75-bafb-6b483199d284 | test-volume | in-use | 1 | Attached to test-server on /dev/vdb | +--------------------------------------+-------------+--------+------+--------------------------------------+
从卷启动实例¶
您可以从现有的镜像、卷或快照创建可启动的卷。此过程向您展示如何从镜像创建卷,并使用该卷启动实例。
列出可用的镜像,记下您想要使用的镜像的 ID。
$ openstack image list +--------------------------------------+--------------------------+--------+ | ID | Name | Status | +--------------------------------------+--------------------------+--------+ | 44d317a3-6183-4063-868b-aa0728576f5f | cirros-0.5.1-x86_64-disk | active | +--------------------------------------+--------------------------+--------+
创建一个实例,使用所选镜像并请求“从卷启动”行为。
$ openstack server create \ --flavor $FLAVOR --network $NETWORK \ --image 44d317a3-6183-4063-868b-aa0728576f5f --boot-from-volume 10 \ --wait test-server +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | devstack-ubuntu2004 | | OS-EXT-SRV-ATTR:hypervisor_hostname | devstack-ubuntu2004 | | OS-EXT-SRV-ATTR:instance_name | instance-0000000c | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | OS-SRV-USG:launched_at | 2021-06-01T16:02:06.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | private=10.0.0.3, fde3:4790:906b:0:f816:3eff:fe40:bdd | | adminPass | rqT3RUYYa5H5 | | config_drive | | | created | 2021-06-01T16:01:55Z | | flavor | m1.tiny (1) | | hostId | 425d65fe75c1e53cecbd32d3e686314235507b6edebbeaa56ff341c7 | | id | 69b09fa0-6f24-4924-8311-c9bcdeb90dcb | | image | N/A (booted from volume) | | key_name | None | | name | test-server | | progress | 0 | | project_id | ae93f388f934458c8e6583f8ab0dba2d | | properties | | | security_groups | name='default' | | status | ACTIVE | | updated | 2021-06-01T16:02:07Z | | user_id | 0a4d2edb9042412ba4f719a547d42f79 | | volumes_attached | id='673cbfcb-351c-42cb-9659-bca5b2a0361c' | +-------------------------------------+----------------------------------------------------------+
注意
以这种方式创建的卷在服务器删除时不会被删除,并且需要稍后手动删除。如果您希望更改此行为,则需要预先创建卷,如以下所述。
列出卷,以确保已创建新卷,并且其状态为
in-use,并且卷正确报告了附加信息。$ openstack volume list +--------------------------------------+------+--------+------+--------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+------+--------+------+--------------------------------------+ | 673cbfcb-351c-42cb-9659-bca5b2a0361c | | in-use | 1 | Attached to test-server on /dev/vda | +--------------------------------------+------+--------+------+--------------------------------------+ $ openstack server volume list test-server +--------------------------------------+----------+--------------------------------------+--------------------------------------+ | ID | Device | Server ID | Volume ID | +--------------------------------------+----------+--------------------------------------+--------------------------------------+ | 673cbfcb-351c-42cb-9659-bca5b2a0361c | /dev/vda | 9c7f68d4-4d84-4c1e-83af-b8c6a56ad005 | 673cbfcb-351c-42cb-9659-bca5b2a0361c | +--------------------------------------+----------+--------------------------------------+--------------------------------------+
与其依赖 nova 从镜像创建卷,也可以在创建实例之前预先创建卷。当您希望对创建的卷进行更多控制(例如启用加密)时,这会很有用。
列出可用的镜像,记下您想要使用的镜像的 ID。
$ openstack image list +--------------------------------------+--------------------------+--------+ | ID | Name | Status | +--------------------------------------+--------------------------+--------+ | 44d317a3-6183-4063-868b-aa0728576f5f | cirros-0.5.1-x86_64-disk | active | +--------------------------------------+--------------------------+--------+
从所选镜像创建可启动的卷。
当传递
--image参数时,Cinder 会使卷可启动。$ openstack volume create \ --image 44d317a3-6183-4063-868b-aa0728576f5f --size 10 \ test-volume +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2021-06-01T15:40:56.000000 | | description | None | | encrypted | False | | id | 9c7f68d4-4d84-4c1e-83af-b8c6a56ad005 | | migration_status | None | | multiattach | False | | name | test-volume | | properties | | | replication_status | None | | size | 10 | | snapshot_id | None | | source_volid | None | | status | creating | | type | lvmdriver-1 | | updated_at | None | | user_id | 0a4d2edb9042412ba4f719a547d42f79 | +---------------------+--------------------------------------+
注意
如果您想将卷创建到特定的存储后端,您需要使用具有
cinder_img_volume_type属性的镜像。有关更多信息,请参阅 cinder 文档。注意
通过将
--type ENCRYPTED_VOLUME_TYPE参数添加到卷创建命令,也可以创建可启动的加密卷。例如$ openstack volume create \ --type ENCRYPTED_VOLUME_TYPE --image IMAGE --size SIZE \ test-volume
这需要一个加密卷类型,必须由管理员提前创建。有关更多信息,请参阅 horizon 文档。
创建一个实例,将卷指定为启动设备。
$ openstack server create \ --flavor $FLAVOR --network $NETWORK \ --volume 9c7f68d4-4d84-4c1e-83af-b8c6a56ad005\ --wait test-server +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | devstack-ubuntu2004 | | OS-EXT-SRV-ATTR:hypervisor_hostname | devstack-ubuntu2004 | | OS-EXT-SRV-ATTR:instance_name | instance-0000000a | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | OS-SRV-USG:launched_at | 2021-06-01T15:43:21.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | private=10.0.0.47, fde3:4790:906b:0:f816:3eff:fe89:b004 | | adminPass | ueX74zzHWqL4 | | config_drive | | | created | 2021-06-01T15:43:13Z | | flavor | m1.tiny (1) | | hostId | 425d65fe75c1e53cecbd32d3e686314235507b6edebbeaa56ff341c7 | | id | 367b7d42-627c-4d10-a2a0-f759501499a6 | | image | N/A (booted from volume) | | key_name | None | | name | test-server | | progress | 0 | | project_id | ae93f388f934458c8e6583f8ab0dba2d | | properties | | | security_groups | name='default' | | status | ACTIVE | | updated | 2021-06-01T15:43:22Z | | user_id | 0a4d2edb9042412ba4f719a547d42f79 | | volumes_attached | id='9c7f68d4-4d84-4c1e-83af-b8c6a56ad005' | +-------------------------------------+----------------------------------------------------------+
注意
这里的示例使用
--volume选项以简化操作。也可以使用--block-device选项以更精细地控制参数。有关详细信息,请参阅 openstack server create 文档。再次列出卷,以确保状态已更改为
in-use,并且卷正确报告了附加信息。$ openstack volume list +--------------------------------------+-------------+--------+------+--------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------------+--------+------+--------------------------------------+ | 9c7f68d4-4d84-4c1e-83af-b8c6a56ad005 | test-volume | in-use | 10 | Attached to test-server on /dev/vda | +--------------------------------------+-------------+--------+------+--------------------------------------+ $ openstack server volume list test-server +--------------------------------------+----------+--------------------------------------+--------------------------------------+ | ID | Device | Server ID | Volume ID | +--------------------------------------+----------+--------------------------------------+--------------------------------------+ | 9c7f68d4-4d84-4c1e-83af-b8c6a56ad005 | /dev/vda | c2368c38-6a7d-4fe8-bc4e-483e90e7608b | 9c7f68d4-4d84-4c1e-83af-b8c6a56ad005 | +--------------------------------------+----------+--------------------------------------+--------------------------------------+
附加交换或临时磁盘到实例¶
使用 --swap 选项 openstack server 命令在启动时附加交换磁盘,或使用 --ephemeral 选项在启动时附加临时磁盘。后者可以多次指定。当您终止实例时,这两个磁盘都会被删除。
使用 512 MB 交换磁盘和 2 GB 临时磁盘启动实例。
$ openstack server create \
--flavor FLAVOR --image IMAGE --network NETWORK \
--ephemeral size=2 --swap 512
--wait test-server
注意
flavor 定义了最大交换和临时磁盘大小。您不能超过这些最大值。