当前位置:   article > 正文

glance,nova,cinder,swift服务基本使用_cirros镜像下载

cirros镜像下载

基础准备

使用Centos7.9云主机搭建的Openstack平台作为实验节点

Glance服务的基本使用

1.创建镜像
(1)下载上传cirros镜像文件

CirrOS是一个极小的云操作系统,可以使用这个小的操作系统来进行Glance服务组件的操作练习。将提供的cirros-0.3.4-x86_64-disk.img镜像上传到controller节点的root目录下面。

[root@controller ~]# ls
…
cirros-0.3.4-x86_64-disk.img
  • 1
  • 2
  • 3

将镜像上传至controller节点后,通过file命令查看镜像文件信息

[root@controller ~]# file cirros-0.3.4-x86_64-disk.img 
cirros-0.3.4-x86_64-disk.img: QEMU QCOW Image (v2), 41126400 bytes
  • 1
  • 2
(2)创建镜像

查看创建镜像的命令格式

[root@controller ~]# glance help image-create
usage: glance image-create [--architecture <ARCHITECTURE>]
                           [--protected [True|False]] [--name <NAME>]
                           [--instance-uuid <INSTANCE_UUID>]
                           [--min-disk <MIN_DISK>] [--visibility <VISIBILITY>]
                           [--kernel-id <KERNEL_ID>]
                           [--tags <TAGS> [<TAGS> ...]]
                           [--os-version <OS_VERSION>]
                           [--disk-format <DISK_FORMAT>]
                           [--os-distro <OS_DISTRO>] [--id <ID>]
                           [--owner <OWNER>] [--ramdisk-id <RAMDISK_ID>]
                           [--min-ram <MIN_RAM>]
                           [--container-format <CONTAINER_FORMAT>]
                           [--hidden [True|False]] [--property <key=value>]
                           [--file <FILE>] [--progress] [--store <STORE
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

参数说明:

  • –disk-format: 镜像格式

  • –container-format: 镜像在其他项目中的可见性

  • –progress: 显示上传镜像的进度

  • –file:选择本地镜像文件

  • –name: 上传后镜像的名称

使用镜像cirros-0.3.4-x86_64-disk.img通过命令上传镜像至OpenStack中。

[root@controller ~]# glance image-create --name cirrosA --disk-format qcow2 --container-format bare --progress --file cirros-0.3.4-x86_64-disk.img 
[=============================>] 100%
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                                 |
| container_format | bare                                                                             |
| created_at       | 2023-02-03T09:38:22Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | d673cd4f-adc1-4bbc-9f03-2292f2339355                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirrosA                                                                          |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f7 |
|                  | 39d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2                                 |
| os_hidden        | False                                                                            |
| owner            | ad1ecfaf84ae410c8e5db7c8ff37db39                                                 |
| protected        | False                                                                            |
| size             | 13287936                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2023-02-03T09:38:23Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | shared                                                                           |
+------------------+----------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
2.管理镜像
(1)查看镜像

通过命令可以在OpenStack平台中查看当前Glance中所上传的镜像名称

[root@controller ~]# glance image-list
+--------------------------------------+---------+
| ID                                   | Name    |
+--------------------------------------+---------+
| d673cd4f-adc1-4bbc-9f03-2292f2339355 | cirrosA |
+--------------------------------------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

查看镜像的详细信息

[root@controller ~]# glance image-show d673cd4f-adc1-4bbc-9f03-2292f2339355
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                                 |
| container_format | bare                                                                             |
| created_at       | 2023-02-03T09:38:22Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | d673cd4f-adc1-4bbc-9f03-2292f2339355                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirrosA                                                                          |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f7 |
|                  | 39d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2                                 |
| os_hidden        | False                                                                            |
| owner            | ad1ecfaf84ae410c8e5db7c8ff37db39                                                 |
| protected        | False                                                                            |
| size             | 13287936                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2023-02-03T09:38:23Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | shared                                                                           |
+------------------+----------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
(2)修改镜像

可以使用 glance image-update 更新镜像信息

命令格式如下

[root@controller ~]# glance help image-update
usage: glance image-update [--architecture <ARCHITECTURE>]
                           [--protected [True|False]] [--name <NAME>]
                           [--instance-uuid <INSTANCE_UUID>]
                           [--min-disk <MIN_DISK>] [--visibility <VISIBILITY>]
                           [--kernel-id <KERNEL_ID>]
                           [--os-version <OS_VERSION>]
                           [--disk-format <DISK_FORMAT>]
                           [--os-distro <OS_DISTRO>] [--owner <OWNER>]
                           [--ramdisk-id <RAMDISK_ID>] [--min-ram <MIN_RAM>]
                           [--container-format <CONTAINER_FORMAT>]
                           [--hidden [True|False]] [--property <key=value>]
                           [--remove-property key]
                           <IMAGE_ID>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

参数说明:

  • –min-disk: 镜像启动最小硬盘大小
  • –name: 镜像名称
  • –disk-format:镜像格式
  • –min-ram:镜像启动最小内存大小
  • –container-format:镜像在项目中可见性

如果需要改变镜像启动硬盘最低要求值(min-disk)1G,(min-ram)1024M,min-disk默认单位为G,min-ram默认单位为M

使用glance image-update 更新镜像信息

[root@controller ~]# glance image-update --min-disk=1 --min-ram=1024 d673cd4f-adc1-4bbc-9f03-2292f2339355
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                                 |
| container_format | bare                                                                             |
| created_at       | 2023-02-03T09:38:22Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | d673cd4f-adc1-4bbc-9f03-2292f2339355                                             |
| min_disk         | 1                                                                                |
| min_ram          | 1024                                                                             |
| name             | cirrosA                                                                          |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f7 |
|                  | 39d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2                                 |
| os_hidden        | False                                                                            |
| owner            | ad1ecfaf84ae410c8e5db7c8ff37db39                                                 |
| protected        | False                                                                            |
| size             | 13287936                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2023-02-03T09:49:18Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | shared                                                                           |
+------------------+----------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

(3)删除镜像

使用glance image-delete 删除上传至openstack平台中的镜像

命令格式如下

[root@controller ~]# glance help  image-delete
usage: glance image-delete <IMAGE_ID> [<IMAGE_ID> ...]

Delete specified image.

Positional arguments:
  <IMAGE_ID>  ID of image(s) to delete.

Run `glance --os-image-api-version 1 help image-delete` for v1 help
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

只需要在命令后跟上镜像ID即可

[root@controller ~]# glance image-delete d673cd4f-adc1-4bbc-9f03-2292f2339355
[root@controller ~]# glance image-list
+--------------------------------------+--------+
| ID                                   | Name   |
+--------------------------------------+--------+
|                                      |        |
+--------------------------------------+--------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Nova服务的基本使用

1.创建flavor类型

flavor类型为Openstack在创建云主机时需要提供的云主机大小类型,云主机的资源大小可使用不同的flavor来定义

(1)创建flavor类型

命令格式如下

[root@controller ~]# openstack help flavor create
usage: openstack flavor create [-h] [-f {json,shell,table,value,yaml}]
                               [-c COLUMN] [--max-width <integer>]
                               [--fit-width] [--print-empty] [--noindent]
                               [--prefix PREFIX] [--id <id>] [--ram <size-mb>]
                               [--disk <size-gb>] [--ephemeral <size-gb>]
                               [--swap <size-mb>] [--vcpus <vcpus>]
                               [--rxtx-factor <factor>] [--public | --private]
                               [--property <key=value>] [--project <project>]
                               [--description <description>]
                               [--project-domain <project-domain>]
                               <flavor-name>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

使用命令创建一个flavor,10G的硬盘大小,512内存,1颗vCPU,ID为10,名称为flavor1

[root@controller ~]# openstack flavor create --disk 10 --ram 512 --vcpu 1 --id 10 flavor1
+----------------------------+---------+
| Field                      | Value   |
+----------------------------+---------+
| OS-FLV-DISABLED:disabled   | False   |
| OS-FLV-EXT-DATA:ephemeral  | 0       |
| disk                       | 10      |
| id                         | 10      |
| name                       | flavor1 |
| os-flavor-access:is_public | True    |
| properties                 |         |
| ram                        | 512     |
| rxtx_factor                | 1.0     |
| swap                       |         |
| vcpus                      | 1       |
+----------------------------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
(2)查看flavor类型

使用 openstack flavor list 命令查看flavor类型列表

+----+-----------+------+------+-----------+-------+-----------+
| ID | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+------+------+-----------+-------+-----------+
| 1  | m1.tiny   |  512 |   10 |         0 |     1 | True      |
| 10 | flavor1   |  512 |   10 |         0 |     1 | True      |
| 2  | m1.small  | 1024 |   20 |         0 |     1 | True      |
| 3  | m1.medium | 2048 |   40 |         0 |     2 | True      |
+----+-----------+------+------+-----------+-------+-----------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

使用 openstack flavor show 命令查看flavor类型的详细信息

命令格式如下

[root@controller ~]# openstack flavor show --help
usage: openstack flavor show [-h] [-f {json,shell,table,value,yaml}]
                             [-c COLUMN] [--max-width <integer>] [--fit-width]
                             [--print-empty] [--noindent] [--prefix PREFIX]
                             <flavor>
  • 1
  • 2
  • 3
  • 4
  • 5

查看刚刚创建的flavor1的详细信息

[root@controller ~]# openstack flavor show flavor1
+----------------------------+---------+
| Field                      | Value   |
+----------------------------+---------+
| OS-FLV-DISABLED:disabled   | False   |
| OS-FLV-EXT-DATA:ephemeral  | 0       |
| access_project_ids         | None    |
| disk                       | 10      |
| id                         | 10      |
| name                       | flavor1 |
| os-flavor-access:is_public | True    |
| properties                 |         |
| ram                        | 512     |
| rxtx_factor                | 1.0     |
| swap                       |         |
| vcpus                      | 1       |
+----------------------------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
2.访问安全组

访问安全组为是OpenStack提供给云主机的一个访问策略控制组,通过安全组中的策略可以控制云主机的出入访问规则

(1)查看访问安全组

使用命令 openstack security group list 可以查看当前所创建的访问安全组列表。

[root@controller ~]# openstack security group list
+--------------------------------------+---------+-------------+----------------------------------+------+
| ID                                   | Name    | Description | Project                          | Tags |
+--------------------------------------+---------+-------------+----------------------------------+------+
| 3d996b69-079f-41da-84bd-2065f6522fb2 | default | 缺省安全组  | ad1ecfaf84ae410c8e5db7c8ff37db39 | []   |
+--------------------------------------+---------+-------------+----------------------------------+------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

default 为Openstack平台自带的安全组,通过命令可以查看安全组中的安全规则

[root@controller ~]# openstack security group rule list default
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
| ID                                   | IP Protocol | Ethertype | IP Range  | Port Range | Remote Security Group                |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
| 2d1decd6-977e-4177-9238-f52905a8c0f5 | None        | IPv4      | 0.0.0.0/0 |            | 3d996b69-079f-41da-84bd-2065f6522fb2 |
| 429d445b-0997-4900-9222-820f1b216610 | None        | IPv6      | ::/0      |            | 3d996b69-079f-41da-84bd-2065f6522fb2 |
| 51342679-35ff-4c51-97e5-c7cbe462e95c | None        | IPv6      | ::/0      |            | None                                 |
| e3bc9e29-588e-43a1-a51a-d50bb93f105a | None        | IPv4      | 0.0.0.0/0 |            | None                                 |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在安全组规则列表中,不能看出每条规则的具体策略,通过使用命令 openstack security group rule show 查看任意规则的详细信息

[root@controller ~]# openstack security group rule show 2d1decd6-977e-4177-9238-f52905a8c0f5
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field             | Value                                                                                                                                                |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at        | 2023-02-03T10:10:18Z                                                                                                                                 |
| description       | None                                                                                                                                                 |
| direction         | ingress                                                                                                                                              |
| ether_type        | IPv4                                                                                                                                                 |
| id                | 2d1decd6-977e-4177-9238-f52905a8c0f5                                                                                                                 |
| location          | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| name              | None                                                                                                                                                 |
| port_range_max    | None                                                                                                                                                 |
| port_range_min    | None                                                                                                                                                 |
| project_id        | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| protocol          | None                                                                                                                                                 |
| remote_group_id   | 3d996b69-079f-41da-84bd-2065f6522fb2                                                                                                                 |
| remote_ip_prefix  | 0.0.0.0/0                                                                                                                                            |
| revision_number   | 0                                                                                                                                                    |
| security_group_id | 3d996b69-079f-41da-84bd-2065f6522fb2                                                                                                                 |
| tags              | []                                                                                                                                                   |
| updated_at        | 2023-02-03T10:10:18Z                                                                                                                                 |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
(2)创建访问安全组

创建一个新的安全组

命令格式如下

[root@controller ~]# openstack help security group create
usage: openstack security group create [-h] [-f {json,shell,table,value,yaml}]
                                       [-c COLUMN] [--max-width <integer>]
                                       [--fit-width] [--print-empty]
                                       [--noindent] [--prefix PREFIX]
                                       [--description <description>]
                                       [--project <project>]
                                       [--project-domain <project-domain>]
                                       [--tag <tag> | --no-tag]
                                       <name>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

使用命令创建新的安全组规则,命令如下:

[root@controller ~]# openstack security group create anquan1
+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field           | Value                                                                                                                                                 |
+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at      | 2023-02-03T10:21:22Z                                                                                                                                  |
| description     | anquan1                                                                                                                                               |
| id              | 1604f6c8-9491-4fc0-a662-1fbb531cac53                                                                                                                  |
| location        | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone=  |
| name            | anquan1                                                                                                                                               |
| project_id      | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                      |
| revision_number | 1                                                                                                                                                     |
| rules           | created_at='2023-02-03T10:21:22Z', direction='egress', ethertype='IPv4', id='7cc3d35a-f7b3-400c-b469-7ab7caedd060', updated_at='2023-02-03T10:21:22Z' |
|                 | created_at='2023-02-03T10:21:22Z', direction='egress', ethertype='IPv6', id='adae6111-cb9b-4d75-b82d-b9eb5806707a', updated_at='2023-02-03T10:21:22Z' |
| tags            | []                                                                                                                                                    |
| updated_at      | 2023-02-03T10:21:22Z                                                                                                                                  |
+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
(3)删除访问安全组

可以使用命令删除不使用的访问安全组

[root@controller ~]# openstack security group delete anquan1
[root@controller ~]# openstack security group list
+--------------------------------------+---------+-------------+----------------------------------+------+
| ID                                   | Name    | Description | Project                          | Tags |
+--------------------------------------+---------+-------------+----------------------------------+------+
| 3d996b69-079f-41da-84bd-2065f6522fb2 | default | 缺省安全组  | ad1ecfaf84ae410c8e5db7c8ff37db39 | []   |
+--------------------------------------+---------+-------------+----------------------------------+------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
(4)添加安全组规则

在默认安全组中添加三条需要使用的访问规则,使用 openstack security group rule create 命令

命令格式如下:

[root@controller ~]# openstack help security group rule create
usage: openstack security group rule create [-h]
                                            [-f {json,shell,table,value,yaml}]
                                            [-c COLUMN]
                                            [--max-width <integer>]
                                            [--fit-width] [--print-empty]
                                            [--noindent] [--prefix PREFIX]
                                            [--remote-ip <ip-address> | --remote-group <group>]
                                            [--description <description>]
                                            [--dst-port <port-range>]
                                            [--icmp-type <icmp-type>]
                                            [--icmp-code <icmp-code>]
                                            [--protocol <protocol>]
                                            [--ingress | --egress]
                                            [--ethertype <ethertype>]
                                            [--project <project>]
                                            [--project-domain <project-domain>]
                                            <group>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在“defualt”安全组中添加一条策略,从入口方向放行所有ICMP规则

[root@controller ~]# openstack security group rule create --protocol icmp --ingress default
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field             | Value                                                                                                                                                |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at        | 2023-02-04T13:53:58Z                                                                                                                                 |
| description       |                                                                                                                                                      |
| direction         | ingress                                                                                                                                              |
| ether_type        | IPv4                                                                                                                                                 |
| id                | fbe38199-b607-4ad1-b3e6-4b02ffb9f010                                                                                                                 |
| location          | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| name              | None                                                                                                                                                 |
| port_range_max    | None                                                                                                                                                 |
| port_range_min    | None                                                                                                                                                 |
| project_id        | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| protocol          | icmp                                                                                                                                                 |
| remote_group_id   | None                                                                                                                                                 |
| remote_ip_prefix  | 0.0.0.0/0                                                                                                                                            |
| revision_number   | 0                                                                                                                                                    |
| security_group_id | 3d996b69-079f-41da-84bd-2065f6522fb2                                                                                                                 |
| tags              | []                                                                                                                                                   |
| updated_at        | 2023-02-04T13:53:58Z                                                                                                                                 |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在“defualt”安全组中添加一条策略,从入口方向放行所有TCP规则

[root@controller ~]# openstack security group rule create --protocol tcp --ingress default
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field             | Value                                                                                                                                                |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at        | 2023-02-04T13:55:16Z                                                                                                                                 |
| description       |                                                                                                                                                      |
| direction         | ingress                                                                                                                                              |
| ether_type        | IPv4                                                                                                                                                 |
| id                | 95e707b0-ab11-44f9-8d67-b1762c60519a                                                                                                                 |
| location          | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| name              | None                                                                                                                                                 |
| port_range_max    | None                                                                                                                                                 |
| port_range_min    | None                                                                                                                                                 |
| project_id        | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| protocol          | tcp                                                                                                                                                  |
| remote_group_id   | None                                                                                                                                                 |
| remote_ip_prefix  | 0.0.0.0/0                                                                                                                                            |
| revision_number   | 0                                                                                                                                                    |
| security_group_id | 3d996b69-079f-41da-84bd-2065f6522fb2                                       | tags              | []                                                                                                                                                   |
| updated_at        | 2023-02-04T13:55:16Z                                                                                                                                 |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+                                       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在“defualt”安全组中添加一条策略,从入口方向放行所有UDP规则

[root@controller ~]# openstack security group rule create --protocol udp --ingress default
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field             | Value                                                                                                                                                |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at        | 2023-02-04T13:57:24Z                                                                                                                                 |
| description       |                                                                                                                                                      |
| direction         | ingress                                                                                                                                              |
| ether_type        | IPv4                                                                                                                                                 |
| id                | 19a957f3-0b75-45a6-b48f-177b686b1ed1                                                                                                                 |
| location          | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| name              | None                                                                                                                                                 |
| port_range_max    | None                                                                                                                                                 |
| port_range_min    | None                                                                                                                                                 |
| project_id        | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| protocol          | udp                                                                                                                                                  |
| remote_group_id   | None                                                                                                                                                 |
| remote_ip_prefix  | 0.0.0.0/0                                                                                                                                            |
| revision_number   | 0                                                                                                                                                    |
| security_group_id | 3d996b69-079f-41da-84bd-2065f6522fb2                                                                                                                 |
| tags              | []                                                                                                                                                   |
| updated_at        | 2023-02-04T13:57:24Z                                                                                                                                 |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

查看“default”安全组中所有的规则列表信息

[root@controller ~]# openstack security group rule list default
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
| ID                                   | IP Protocol | Ethertype | IP Range  | Port Range | Remote Security Group                |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
| 19a957f3-0b75-45a6-b48f-177b686b1ed1 | udp         | IPv4      | 0.0.0.0/0 |            | None                                 |
| 2d1decd6-977e-4177-9238-f52905a8c0f5 | None        | IPv4      | 0.0.0.0/0 |            | 3d996b69-079f-41da-84bd-2065f6522fb2 |
| 429d445b-0997-4900-9222-820f1b216610 | None        | IPv6      | ::/0      |            | 3d996b69-079f-41da-84bd-2065f6522fb2 |
| 51342679-35ff-4c51-97e5-c7cbe462e95c | None        | IPv6      | ::/0      |            | None                                 |
| 95e707b0-ab11-44f9-8d67-b1762c60519a | tcp         | IPv4      | 0.0.0.0/0 |            | None                                 |
| e3bc9e29-588e-43a1-a51a-d50bb93f105a | None        | IPv4      | 0.0.0.0/0 |            | None                                 |
| fbe38199-b607-4ad1-b3e6-4b02ffb9f010 | icmp        | IPv4      | 0.0.0.0/0 |            | None                                 |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
3.启动虚拟机
(1)查询可用镜像

上传镜像,使用 openstack image list 命令来查询当前可用镜像列表

[root@controller ~]# glance image-create --name cirrosB --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img 

....

[root@controller ~]# openstack image list
+--------------------------------------+---------+--------+
| ID                                   | Name    | Status |
+--------------------------------------+---------+--------+
| 141700fc-dffc-412e-9a17-8f9cb1472069 | cirrosB | active |
+--------------------------------------+---------+--------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

使用 openstack flavor list 命令查看可用的类型

[root@controller ~]# openstack flavor list
+----+-----------+------+------+-----------+-------+-----------+
| ID | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+------+------+-----------+-------+-----------+
| 1  | m1.tiny   |  512 |   10 |         0 |     1 | True      |
| 10 | flavor1   |  512 |   10 |         0 |     1 | True      |
| 2  | m1.small  | 1024 |   20 |         0 |     1 | True      |
| 3  | m1.medium | 2048 |   40 |         0 |     2 | True      |
+----+-----------+------+------+-----------+-------+-----------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
(2)创建网络和子网

使用 openstack network create 命令创建网络信息

  • –provider-physical-network:将提供者网络“provider”绑定在物理网卡上

  • –provider-network-type:提供者网络“provider”的网络类型

[root@controller ~]# openstack network create --provider-network-type vlan --provider-physical-network provider --provider-segment 200 network-vlan
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                     | Value                                                                                                                                                |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up            | UP                                                                                                                                                   |
| availability_zone_hints   |                                                                                                                                                      |
| availability_zones        |                                                                                                                                                      |
| created_at                | 2023-02-04T14:17:49Z                                                                                                                                 |
| description               |                                                                                                                                                      |
| dns_domain                | None                                                                                                                                                 |
| id                        | 60177e17-0769-4c3f-8342-2cb8ee0d942c                                                                                                                 |
| ipv4_address_scope        | None                                                                                                                                                 |
| ipv6_address_scope        | None                                                                                                                                                 |
| is_default                | False                                                                                                                                                |
| is_vlan_transparent       | None                                                                                                                                                 |
| location                  | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| mtu                       | 1500                                                                                                                                                 |
| name                      | network-vlan                                                                                                                                         |
| port_security_enabled     | True                                                                                                                                                 |
| project_id                | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| provider:network_type     | vlan                                                                                                                                                 |
| provider:physical_network | provider                                                                                                                                             |
| provider:segmentation_id  | 200                                                                                                                                                  |
| qos_policy_id             | None                                                                                                                                                 |
| revision_number           | 1                                                                                                                                                    |
| router:external           | Internal                                                                                                                                             |
| segments                  | None                                                                                                                                                 |
| shared                    | False                                                                                                                                                |
| status                    | ACTIVE                                                                                                                                               |
| subnets                   |                                                                                                                                                      |
| tags                      |                                                                                                                                                      |
| updated_at                | 2023-02-04T14:17:49Z                                                                                                                                 |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

使用 openstack subnet create 创建子网

[root@controller ~]# openstack subnet create --network network-vlan --allocation-pool start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 subnet-vlan
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field             | Value                                                                                                                                                |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| allocation_pools  | 192.168.200.100-192.168.200.200                                                                                                                      |
| cidr              | 192.168.200.0/24                                                                                                                                     |
| created_at        | 2023-02-04T14:38:45Z                                                                                                                                 |
| description       |                                                                                                                                                      |
| dns_nameservers   |                                                                                                                                                      |
| enable_dhcp       | True                                                                                                                                                 |
| gateway_ip        | 192.168.200.1                                                                                                                                        |
| host_routes       |                                                                                                                                                      |
| id                | 6415aa4c-97c4-418e-b090-0113ab983bad                                                                                                                 |
| ip_version        | 4                                                                                                                                                    |
| ipv6_address_mode | None                                                                                                                                                 |
| ipv6_ra_mode      | None                                                                                                                                                 |
| location          | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| name              | subnet-vlan                                                                                                                                          |
| network_id        | 34d8eb6d-b62b-43cb-8d9c-84cc0df39cab                                                                                                                 |
| prefix_length     | None                                                                                                                                                 |
| project_id        | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| revision_number   | 0                                                                                                                                                    |
| segment_id        | None                                                                                                                                                 |
| service_types     |                                                                                                                                                      |
| subnetpool_id     | None                                                                                                                                                 |
| tags              |                                                                                                                                                      |
| updated_at        | 2023-02-04T14:38:45Z                                                                                                                                 |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
(3)修改openstack平台

修改Nova服务配置文件,设置参数“ virt_type=qemu ”

[root@controller ~]# vi /etc/nova/nova.conf 
...
virt_type=qemu
...
[root@controller ~]# systemctl restart openstack-nova-compute
  • 1
  • 2
  • 3
  • 4
  • 5
(4)启动云主机

使用 openstack server create 命令创建云主机

命令格式如下

[root@controller ~]# openstack server create --help
usage: openstack server create [-h] [-f {json,shell,table,value,yaml}]
                               [-c COLUMN] [--max-width <integer>]
                               [--fit-width] [--print-empty] [--noindent]
                               [--prefix PREFIX]
                               (--image <image> | --image-property <key=value> | --volume <volume>)
                               --flavor <flavor>
                               [--security-group <security-group>]
                               [--key-name <key-name>]
                               [--property <key=value>]
                               [--file <dest-filename=source-filename>]
                               [--user-data <user-data>]
                               [--description <description>]
                               [--availability-zone <zone-name>]
                               [--host <host>]
                               [--hypervisor-hostname <hypervisor-hostname>]
                               [--boot-from-volume <volume-size>]
                               [--block-device-mapping <dev-name=mapping>]
                               [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid,auto,none>]
                               [--network <network>] [--port <port>]
                               [--hint <key=value>]
                               [--config-drive <config-drive-volume>|True]
                               [--min <count>] [--max <count>] [--wait]
                               <server-name>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

通过命令创建云主机,使用cirros镜像,flavor为1核vCPU,512M内存,10G硬盘,使用network-vlan网络,云主机名为“cirros-test”

[root@controller ~]# openstack server create --image cirrosB --flavor 10 --network network-vlan cirros-test
+-------------------------------------+------------------------------------------------+
| Field                               | Value                                          |
+-------------------------------------+------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                         |
| OS-EXT-AZ:availability_zone         |                                                |
| OS-EXT-SRV-ATTR:host                | None                                           |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                           |
| OS-EXT-SRV-ATTR:instance_name       |                                                |
| OS-EXT-STS:power_state              | NOSTATE                                        |
| OS-EXT-STS:task_state               | scheduling                                     |
| OS-EXT-STS:vm_state                 | building                                       |
| OS-SRV-USG:launched_at              | None                                           |
| OS-SRV-USG:terminated_at            | None                                           |
| accessIPv4                          |                                                |
| accessIPv6                          |                                                |
| addresses                           |                                                |
| adminPass                           | aX2f5QifKuQg                                   |
| config_drive                        |                                                |
| created                             | 2023-02-04T15:23:51Z                           |
| flavor                              | flavor1 (10)                                   |
| hostId                              |                                                |
| id                                  | 5cfcde24-b785-45ac-9f07-9390d827a6cc           |
| image                               | cirrosB (141700fc-dffc-412e-9a17-8f9cb1472069) |
| key_name                            | None                                           |
| name                                | cirros-test                                    |
| progress                            | 0                                              |
| project_id                          | ad1ecfaf84ae410c8e5db7c8ff37db39               |
| properties                          |                                                |
| security_groups                     | name='default'                                 |
| status                              | BUILD                                          |
| updated                             | 2023-02-04T15:23:51Z                           |
| user_id                             | 17f22f6d5c4e40f1a0f50f3bc965babf               |
| volumes_attached                    |                                                |
+-------------------------------------+------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
4.管理虚拟机
(1)查看虚拟机

使用 openstack server list 命令查看虚拟机列表信息

[root@controller ~]# openstack server list
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| ID                                   | Name        | Status | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | ACTIVE | network-vlan=192.168.200.164 | cirrosB | flavor1 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用命令可以查看虚拟机的具体信息,包括使用的安全组、flavor以及网络信息,通过命令“openstack server show”进行查看

[root@controller ~]# openstack server show cirros-test
+-------------------------------------+----------------------------------------------------------+
| Field                               | Value                                                    |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                                   |
| OS-EXT-AZ:availability_zone         | nova                                                     |
| OS-EXT-SRV-ATTR:host                | compute                                                  |
| OS-EXT-SRV-ATTR:hypervisor_hostname | compute                                                  |
| OS-EXT-SRV-ATTR:instance_name       | instance-00000001                                        |
| OS-EXT-STS:power_state              | Running                                                  |
| OS-EXT-STS:task_state               | None                                                     |
| OS-EXT-STS:vm_state                 | active                                                   |
| OS-SRV-USG:launched_at              | 2023-02-04T15:24:04.000000                               |
| OS-SRV-USG:terminated_at            | None                                                     |
| accessIPv4                          |                                                          |
| accessIPv6                          |                                                          |
| addresses                           | network-vlan=192.168.200.164                             |
| config_drive                        |                                                          |
| created                             | 2023-02-04T15:23:51Z                                     |
| flavor                              | flavor1 (10)                                             |
| hostId                              | 2622f01ff3fe6dc7b6358c1d3740cb6bb8309dd866724a4bcbbe736a |
| id                                  | 5cfcde24-b785-45ac-9f07-9390d827a6cc                     |
| image                               | cirrosB (141700fc-dffc-412e-9a17-8f9cb1472069)           |
| key_name                            | None                                                     |
| name                                | cirros-test                                              |
| progress                            | 0                                                        |
| project_id                          | ad1ecfaf84ae410c8e5db7c8ff37db39                         |
| properties                          |                                                          |
| security_groups                     | name='default'                                           |
| status                              | ACTIVE                                                   |
| updated                             | 2023-02-04T15:24:04Z                                     |
| user_id                             | 17f22f6d5c4e40f1a0f50f3bc965babf                         |
| volumes_attached                    |                                                          |
+-------------------------------------+----------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
(2)操作虚拟机

可以通过命令操作虚拟机,对虚拟机进行关机、开机、重启等操作。关闭虚拟机操作

[root@controller ~]# openstack server stop cirros-test
[root@controller ~]# openstack server list
+--------------------------------------+-------------+---------+------------------------------+---------+---------+
| ID                                   | Name        | Status  | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+---------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | SHUTOFF | network-vlan=192.168.200.164 | cirrosB | flavor1 |
+--------------------------------------+-------------+---------+------------------------------+---------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

通过命令操作虚拟机,对虚拟机进行开机操作

[root@controller ~]# openstack server start cirros-test
[root@controller ~]# openstack server list
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| ID                                   | Name        | Status | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | ACTIVE | network-vlan=192.168.200.164 | cirrosB | flavor1 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

通过命令操作虚拟机,对虚拟机进行重启操作

[root@controller ~]# openstack server reboot cirros-test
[root@controller ~]# openstack server list
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| ID                                   | Name        | Status | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | ACTIVE | network-vlan=192.168.200.164 | cirrosB | flavor1 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
5.云主机调整类型大小
(1)修改配置文件
[root@controller ~]# vi /etc/nova/nova.conf 
...
allow_resize_to_same_host=true
...
[root@controller ~]# vi /etc/nova/nova.conf 
...
scheduler_default_filters = RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
..
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

修改完配置文件后重启相关服务

[root@controller ~]#systemctl restart openstack-nova*
  • 1
(2)创建云主机类型

现有云主机硬盘和内存不满足使用,需要对现有云主机进行资源扩容,将内存扩容至1G,硬盘扩容至15G大小,类型名称为“centos1”首先创建一个新的云主机类型满足扩容资源的需求。通过命令创建新云主机类型

[root@controller ~]# openstack flavor create  --disk 15 --ram 1024 --vcpus 2 centos1
+----------------------------+--------------------------------------+
| Field                      | Value                                |
+----------------------------+--------------------------------------+
| OS-FLV-DISABLED:disabled   | False                                |
| OS-FLV-EXT-DATA:ephemeral  | 0                                    |
| disk                       | 15                                   |
| id                         | 7c95bc36-c6f8-4934-8a5a-4668667716ed |
| name                       | centos1                              |
| os-flavor-access:is_public | True                                 |
| properties                 |                                      |
| ram                        | 1024                                 |
| rxtx_factor                | 1.0                                  |
| swap                       |                                      |
| vcpus                      | 2                                    |
+----------------------------+--------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

查看当前云主机类型列表

[root@controller ~]# openstack flavor list
+--------------------------------------+-----------+------+------+-----------+-------+-----------+
| ID                                   | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+-----------+------+------+-----------+-------+-----------+
| 1                                    | m1.tiny   |  512 |   10 |         0 |     1 | True      |
| 10                                   | flavor1   |  512 |   10 |         0 |     1 | True      |
| 2                                    | m1.small  | 1024 |   20 |         0 |     1 | True      |
| 3                                    | m1.medium | 2048 |   40 |         0 |     2 | True      |
| 7c95bc36-c6f8-4934-8a5a-4668667716ed | centos1   | 1024 |   15 |         0 |     2 | True      |
+--------------------------------------+-----------+------+------+-----------+-------+-----------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
(3)调整云主机类型

查看云主机列表,通过命令查看云主机列表

[root@controller ~]# openstack server list
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| ID                                   | Name        | Status | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | ACTIVE | network-vlan=192.168.200.164 | cirrosB | flavor1 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用命令“openstack server resize”调整云主机类型

命令格式如下

[root@controller ~]# openstack help server resize  
usage: openstack server resize [-h] [--flavor <flavor> | --confirm | --revert]
                               [--wait]
                               <server>

  <server>           Server (name or ID)
  
optional arguments:  

  -h, --help         show this help message and exit
  --flavor <flavor>  Resize server to specified flavor
  --confirm          Confirm server resize is complete
  --revert           Restore server state before resize
  --wait             Wait for resize to complete=
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

修改dashboard配置文件

[root@controller ~]# vi /etc/openstack-dashboard/local_settings 
...
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
...
[root@controller ~]# systemctl restart httpd memcached
  • 1
  • 2
  • 3
  • 4
  • 5

使用命令调整云主机“cirros-test”类型为centos1,使用–wait参数,在命令执行后,调整云主机需要一定时间,添加–wait参数后会在确认时回馈“complete”

[root@controller ~]# openstack server resize --flavor centos1 --wait cirros-test
Complete
[root@controller ~]# openstack server list
+--------------------------------------+-------------+---------------+------------------------------+---------+---------+
| ID                                   | Name        | Status        | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+---------------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | VERIFY_RESIZE | network-vlan=192.168.200.164 | cirrosB | centos1 |
+--------------------------------------+-------------+---------------+------------------------------+---------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

登录OpenStack,在左侧导航栏选择 项目→计算→实例,在实例最后的动作下拉菜单中选择“确认 调整大小/迁移”

image-20230205163048879

确认调整大小/迁移

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ktckKJlr-1675760245063)(https://13753699334-1315635985.cos.ap-beijing.myqcloud.com/image/202302051632062.png)]

调整成功

[root@controller ~]# openstack server list
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| ID                                   | Name        | Status | Networks                     | Image   | Flavor  |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
| 5cfcde24-b785-45ac-9f07-9390d827a6cc | cirros-test | ACTIVE | network-vlan=192.168.200.164 | cirrosB | centos1 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Cinder服务基本使用

1.块存储服务
(1)创建镜像和网络
[root@controller ~]# source /etc/keystone/admin-openrc.sh 
[root@controller ~]# glance image-create --name cirros11 --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img 
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                                 |
| container_format | bare                                                                             |
| created_at       | 2023-02-05T14:11:40Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | 3095227e-e7ed-49f1-858f-e192a4c873a2                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirros11                                                                         |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f7 |
|                  | 39d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2                                 |
| os_hidden        | False                                                                            |
| owner            | ad1ecfaf84ae410c8e5db7c8ff37db39                                                 |
| protected        | False                                                                            |
| size             | 13287936                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2023-02-05T14:11:40Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | shared                                                                           |
+------------------+----------------------------------------------------------------------------------+
[root@controller ~]# openstack network create --provider-network-type vlan --provider-physical-network provider --provider-segment 230 net-vlan1
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                     | Value                                                                                                                                                |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up            | UP                                                                                                                                                   |
| availability_zone_hints   |                                                                                                                                                      |
| availability_zones        |                                                                                                                                                      |
| created_at                | 2023-02-05T14:13:44Z                                                                                                                                 |
| description               |                                                                                                                                                      |
| dns_domain                | None                                                                                                                                                 |
| id                        | 94bb4d71-b3e9-443e-906f-4fe68ef834df                                                                                                                 |
| ipv4_address_scope        | None                                                                                                                                                 |
| ipv6_address_scope        | None                                                                                                                                                 |
| is_default                | False                                                                                                                                                |
| is_vlan_transparent       | None                                                                                                                                                 |
| location                  | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| mtu                       | 1500                                                                                                                                                 |
| name                      | net-vlan1                                                                                                                                            |
| port_security_enabled     | True                                                                                                                                                 |
| project_id                | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| provider:network_type     | vlan                                                                                                                                                 |
| provider:physical_network | provider                                                                                                                                             |
| provider:segmentation_id  | 230                                                                                                                                                  |
| qos_policy_id             | None                                                                                                                                                 |
| revision_number           | 1                                                                                                                                                    |
| router:external           | Internal                                                                                                                                             |
| segments                  | None                                                                                                                                                 |
| shared                    | False                                                                                                                                                |
| status                    | ACTIVE                                                                                                                                               |
| subnets                   |                                                                                                                                                      |
| tags                      |                                                                                                                                                      |
| updated_at                | 2023-02-05T14:13:44Z                                                                                                                                 |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+

[root@controller ~]# openstack subnet create --network net-vlan1 --allocation-pool start=192.168.200.20,end=192.168.200.30  --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 subnet-vlan1
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field             | Value                                                                                                                                                |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| allocation_pools  | 192.168.200.20-192.168.200.30                                                                                                                        |
| cidr              | 192.168.200.0/24                                                                                                                                     |
| created_at        | 2023-02-05T14:16:13Z                                                                                                                                 |
| description       |                                                                                                                                                      |
| dns_nameservers   |                                                                                                                                                      |
| enable_dhcp       | True                                                                                                                                                 |
| gateway_ip        | 192.168.200.1                                                                                                                                        |
| host_routes       |                                                                                                                                                      |
| id                | 8986d67b-01fb-4d49-9d4e-f8de3bcc4e93                                                                                                                 |
| ip_version        | 4                                                                                                                                                    |
| ipv6_address_mode | None                                                                                                                                                 |
| ipv6_ra_mode      | None                                                                                                                                                 |
| location          | cloud='', project.domain_id=, project.domain_name='demo', project.id='ad1ecfaf84ae410c8e5db7c8ff37db39', project.name='admin', region_name='', zone= |
| name              | subnet-vlan1                                                                                                                                         |
| network_id        | 94bb4d71-b3e9-443e-906f-4fe68ef834df                                                                                                                 |
| prefix_length     | None                                                                                                                                                 |
| project_id        | ad1ecfaf84ae410c8e5db7c8ff37db39                                                                                                                     |
| revision_number   | 0                                                                                                                                                    |
| segment_id        | None                                                                                                                                                 |
| service_types     |                                                                                                                                                      |
| subnetpool_id     | None                                                                                                                                                 |
| tags              |                                                                                                                                                      |
| updated_at        | 2023-02-05T14:16:13Z                                                                                                                                 |
+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
(2)修改OpenStack平台

修改Nova服务配置文件,设置参数 virt_type=qemu

[root@controller ~]# vi /etc/nova/nova.conf 
...
virt_type=qemu
...
[root@controller ~]# systemctl restart openstack-nova*
  • 1
  • 2
  • 3
  • 4
  • 5
(3)创建云主机
[root@controller ~]# openstack server create --image cirros11 --flavor 2 --network net-vlan1 cirros-test2
+-------------------------------------+-------------------------------------------------+
| Field                               | Value                                           |
+-------------------------------------+-------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                          |
| OS-EXT-AZ:availability_zone         |                                                 |
| OS-EXT-SRV-ATTR:host                | None                                            |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                            |
| OS-EXT-SRV-ATTR:instance_name       |                                                 |
| OS-EXT-STS:power_state              | NOSTATE                                         |
| OS-EXT-STS:task_state               | scheduling                                      |
| OS-EXT-STS:vm_state                 | building                                        |
| OS-SRV-USG:launched_at              | None                                            |
| OS-SRV-USG:terminated_at            | None                                            |
| accessIPv4                          |                                                 |
| accessIPv6                          |                                                 |
| addresses                           |                                                 |
| adminPass                           | 8avEgV7WpTdG                                    |
| config_drive                        |                                                 |
| created                             | 2023-02-05T14:21:57Z                            |
| flavor                              | m1.small (2)                                    |
| hostId                              |                                                 |
| id                                  | 39eb1560-2dbf-4347-9466-3855f4acf668            |
| image                               | cirros11 (3095227e-e7ed-49f1-858f-e192a4c873a2) |
| key_name                            | None                                            |
| name                                | cirros-test2                                    |
| progress                            | 0                                               |
| project_id                          | ad1ecfaf84ae410c8e5db7c8ff37db39                |
| properties                          |                                                 |
| security_groups                     | name='default'                                  |
| status                              | BUILD                                           |
| updated                             | 2023-02-05T14:21:57Z                            |
| user_id                             | 17f22f6d5c4e40f1a0f50f3bc965babf                |
| volumes_attached                    |                                                 |
+-------------------------------------+-------------------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
(4)查看Cinder服务状态

使用 openstack volume service list 查询块存储服务状态

[root@controller ~]# openstack volume service list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary           | Host        | Zone | Status  | State | Updated At                 |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-volume    | compute@lvm | nova | enabled | up    | 2023-02-05T14:23:09.000000 |
| cinder-scheduler | controller  | nova | enabled | up    | 2023-02-05T14:23:12.000000 |
+------------------+-------------+------+---------+-------+----------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
(5)创建块存储

使用 openstack volume create 创建块存储

命令格式如下

[root@controller ~]# openstack volume create --help
usage: openstack volume create [-h] [-f {json,shell,table,value,yaml}]
                               [-c COLUMN] [--max-width <integer>]
                               [--fit-width] [--print-empty] [--noindent]
                               [--prefix PREFIX] [--size <size>]
                               [--type <volume-type>]
                               [--image <image> | --snapshot <snapshot> | --source <volume>]
                               [--description <description>]
                               [--availability-zone <availability-zone>]
                               [--consistency-group consistency-group>]
                               [--property <key=value>] [--hint <key=value>]
                               [--bootable | --non-bootable]
                               [--read-only | --read-write]
                               <name>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

通过命令创建块存储,大小为2G,名称为 volume

[root@controller ~]# openstack volume create --size 2 volume
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2023-02-05T14:26:16.000000           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | d65804fb-688a-4187-a2d4-08a62f8a7c3f |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | volume                               |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 2                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| updated_at          | None                                 |
| user_id             | 17f22f6d5c4e40f1a0f50f3bc965babf     |
+---------------------+--------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
(6)查看块存储

使用 openstack volume list 命令查看块存储列表信息

[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| d65804fb-688a-4187-a2d4-08a62f8a7c3f | volume | available |    2 |             |
+--------------------------------------+--------+-----------+------+-------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

通过openstack volume show 命令查看某一块存储的详细信息

[root@controller ~]# openstack volume show volume
+--------------------------------+--------------------------------------+
| Field                          | Value                                |
+--------------------------------+--------------------------------------+
| attachments                    | []                                   |
| availability_zone              | nova                                 |
| bootable                       | false                                |
| consistencygroup_id            | None                                 |
| created_at                     | 2023-02-05T14:26:16.000000           |
| description                    | None                                 |
| encrypted                      | False                                |
| id                             | d65804fb-688a-4187-a2d4-08a62f8a7c3f |
| migration_status               | None                                 |
| multiattach                    | False                                |
| name                           | volume                               |
| os-vol-host-attr:host          | compute@lvm#LVM                      |
| os-vol-mig-status-attr:migstat | None                                 |
| os-vol-mig-status-attr:name_id | None                                 |
| os-vol-tenant-attr:tenant_id   | ad1ecfaf84ae410c8e5db7c8ff37db39     |
| properties                     |                                      |
| replication_status             | None                                 |
| size                           | 2                                    |
| snapshot_id                    | None                                 |
| source_volid                   | None                                 |
| status                         | available                            |
| type                           | None                                 |
| updated_at                     | 2023-02-05T14:26:18.000000           |
| user_id                        | 17f22f6d5c4e40f1a0f50f3bc965babf     |
+--------------------------------+--------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
(7)挂载云硬盘

块存储设备创建成功后,可以在openstack 上将该设备挂载至云主机上,可以作为一块云硬盘来使用。

给云主机添加一块磁盘

将块存储挂载至云主机的命令为 openstack server add volume

命令格斯如下

[root@controller ~]# openstack server add volume --help
usage: openstack server add volume [-h] [--device <device>] <server> <volume>

Add volume to server. Specify ``--os-compute-api-version 2.20`` or higher to
add a volume to a server with status ``SHELVED`` or ``SHELVED_OFFLOADED``.

positional arguments:
  <server>           Server (name or ID)
  <volume>           Volume to add (name or ID)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

使用命令将刚刚创建的 volume 块存储添加至云主机 cirros-test2 上

[root@controller ~]# openstack server add volume cirros-test2 volume
  • 1

使用命令查看块存储列表信息

[root@controller ~]# openstack volume list
+--------------------------------------+--------+--------+------+---------------------------------------+
| ID                                   | Name   | Status | Size | Attached to                           |
+--------------------------------------+--------+--------+------+---------------------------------------+
| d65804fb-688a-4187-a2d4-08a62f8a7c3f | volume | in-use |    2 | Attached to cirros-test2 on /dev/vdb  |
+--------------------------------------+--------+--------+------+---------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2.扩展卷
(1)扩展卷大小

创建完卷后可能因为需求变更,需要对已有的卷进行扩容操作,这时需要用到 openstack volume set 抿了修改卷的信息

命令格式如下

[root@controller ~]# openstack volume set --help
usage: openstack volume set [-h] [--name <name>] [--size <size>]
                            [--description <description>] [--no-property]
                            [--property <key=value>]
                            [--image-property <key=value>] [--state <state>]
                            [--attached | --detached] [--type <volume-type>]
                            [--retype-policy <retype-policy>]
                            [--bootable | --non-bootable]
                            [--read-only | --read-write]
                            <volume>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

分离卷,通过命令将 volume 卷大小从2G扩容至3G,使用–size 参数可修改已创建好的卷大小

[root@controller ~]# openstack server remove volume cirros-test2 volume
[root@controller ~]# openstack volume set --size 3 volume
[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| d65804fb-688a-4187-a2d4-08a62f8a7c3f | volume | available |    3 |             |
+--------------------------------------+--------+-----------+------+-------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
(2)验证卷大小

将扩容后的卷 volume 挂载至云主机 cirros-test2 上

[root@controller ~]# openstack server add volume cirros-test2 volume
[root@controller ~]# openstack volume list
+--------------------------------------+--------+--------+------+---------------------------------------+
| ID                                   | Name   | Status | Size | Attached to                           |
+--------------------------------------+--------+--------+------+---------------------------------------+
| d65804fb-688a-4187-a2d4-08a62f8a7c3f | volume | in-use |    3 | Attached to cirros-test2 on /dev/vdb  |
+--------------------------------------+--------+--------+------+---------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以看到卷 volume 挂载至云主机 cirros-test2 上盘符的名称为 /dev/vdb 使用 virsh 工具登录云主机 输入命令 lsblk

查看云硬盘大小是否 3G

[root@compute ~]# virsh list
 Id    名称                         状态
----------------------------------------------------
 1     instance-00000001              running
 3     instance-00000002              running

[root@compute ~]# virsh consolo instance-00000002
错误:未知的命令:'consolo'
[root@compute ~]# virsh console
错误:命令 'console' 需要 <domain> 选项
[root@compute ~]# virsh console instance-00000002
连接到域 instance-00000002
换码符为 ^]


login as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.
cirros login: cirros
Password: 
$ lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  20G  0 disk 
`-vda1 253:1    0  20G  0 part /
vdb    253:16   0   3G  0 disk 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

可以看到显示盘符 vdb 大小为 3G 此时云硬盘已经扩展完成

Swift服务的基本使用

1.对象存储服务
(1)查看服务状态

在openstack平台中使用 swift stat 查看对象存储服务的状态

[root@controller ~]# swift stat
               Account: AUTH_2dd8f147022949548b9bdf2f2eb17790
            Containers: 0
               Objects: 0
                 Bytes: 0
       X-Put-Timestamp: 1675591940.80565
           X-Timestamp: 1675591940.80565
            X-Trans-Id: tx3587d8646d084f19b8d26-0063df8104
          Content-Type: text/plain; charset=utf-8
X-Openstack-Request-Id: tx3587d8646d084f19b8d26-0063df8104
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
(2)创建容器

通过 openstack container create 命令创建容器

命令格式如下

[root@controller ~]# openstack container create --help
usage: openstack container create [-h] [-f {csv,json,table,value,yaml}]
                                  [-c COLUMN] [--max-width <integer>]
                                  [--fit-width] [--print-empty] [--noindent]
                                  [--quote {all,minimal,none,nonnumeric}]
                                  [--sort-column SORT_COLUMN]
                                  <container-name> [<container-name> ...]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

使用命令创建容器 名称为 swift-test

[root@controller ~]# openstack container create container1
+---------------------------------------+------------+------------------------------------+
| account                               | container  | x-trans-id                         |
+---------------------------------------+------------+------------------------------------+
| AUTH_2dd8f147022949548b9bdf2f2eb17790 | container1 | tx0b85327a7c22408383b82-0063df821a |
+---------------------------------------+------------+------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
(3)查看容器

使用命令查询容器列表信息

[root@controller ~]# openstack container list
+------------+
| Name       |
+------------+
| container1 |
+------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用命令查询容器详细信息

[root@controller ~]# openstack container show container1
+--------------+---------------------------------------+
| Field        | Value                                 |
+--------------+---------------------------------------+
| account      | AUTH_2dd8f147022949548b9bdf2f2eb17790 |
| bytes_used   | 0                                     |
| container    | container1                            |
| object_count | 0                                     |
+--------------+---------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
(4)创建对象

创建完容器后,可以创建对象,通过使用命令 openstack object create 在对象中创建对象

命令格式如下

[root@controller ~]# openstack object create --help
usage: openstack object create [-h] [-f {csv,json,table,value,yaml}]
                               [-c COLUMN] [--max-width <integer>]
                               [--fit-width] [--print-empty] [--noindent]
                               [--quote {all,minimal,none,nonnumeric}]
                               [--sort-column SORT_COLUMN] [--name <name>]
                               <container> <filename> [<filename> ...]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在使用命令创建对象前,需要将上传后的目录结构在本地创建,在本地创建名为 test 的目录/root/test,将/root/anaconda-ks.cfg 文件复制至 /root/test 目录中

[root@controller ~]# mkdir test
[root@controller ~]# cp -rvf anaconda-ks.cfg test/
"anaconda-ks.cfg" -> "test/anaconda-ks.cfg"
[root@controller ~]# ls test/
anaconda-ks.cfg
  • 1
  • 2
  • 3
  • 4
  • 5

创建对象的过程也是向容器中上传文件,使用命令创建 test/anaconda-ks.cfg 和 anaconda-ks.cfg 对象

[root@controller ~]# openstack object create container1 test/anaconda-ks.cfg 
+----------------------+------------+----------------------------------+
| object               | container  | etag                             |
+----------------------+------------+----------------------------------+
| test/anaconda-ks.cfg | container1 | d36057f078895b4ce261e5a2abddf671 |
+----------------------+------------+----------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
(5)查看对象

创建完对象后,通过命令查看容器中对象信息,使用命令“openstack object list” 查看对象信息

命令格式如下

[root@controller ~]# openstack object list --help
usage: openstack object list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
                             [--max-width <integer>] [--fit-width]
                             [--print-empty] [--noindent]
                             [--quote {all,minimal,none,nonnumeric}]
                             [--sort-column SORT_COLUMN] [--prefix <prefix>]
                             [--delimiter <delimiter>] [--marker <marker>]
                             [--end-marker <end-marker>]
                             [--limit <num-objects>] [--long] [--all]
                             <container>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

使用命令查看容器 container1 中所有对象信息

[root@controller ~]# openstack object list container1
+----------------------+
| Name                 |
+----------------------+
| test/anaconda-ks.cfg |
+----------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

通过查询命令可以看出,在通过命令上传对象时,本地路径即为容器内对象路径。使用 openstack object show 查询 container1 容器中 test/anaconda-ks.cfg 对象的详细信息

[root@controller ~]# openstack object show container1 test/anaconda-ks.cfg 
+----------------+---------------------------------------+
| Field          | Value                                 |
+----------------+---------------------------------------+
| account        | AUTH_8477005613924107b281ef0292377fff |
| container      | container1                            |
| content-length | 1537                                  |
| content-type   | application/octet-stream              |
| etag           | d36057f078895b4ce261e5a2abddf671      |
| last-modified  | Tue, 07 Feb 2023 08:18:53 GMT         |
| object         | test/anaconda-ks.cfg                  |
+----------------+---------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
(6)下载对象

存储在容器中的对象,可以在需要使用时,通过 openstack object save 命令进行下载至本地

命令格式如下

[root@controller ~]# openstack object save --help
usage: openstack object save [-h] [--file <filename>] <container> <object>

Save object locally
  • 1
  • 2
  • 3
  • 4

使用命令 将 container1 容器中的 test/anaconda-ks.cfg 对象下载至本地/opt/目录下

[root@controller opt]# openstack object save container1 test/anaconda-ks.cfg
[root@controller opt]# ls test/
anaconda-ks.cfg
  • 1
  • 2
  • 3
(7)删除对象

使用 openstack object delete 命令删除容器内的对象

命令格式如下

[root@controller opt]# openstack object delete --help
usage: openstack object delete [-h] <container> <object> [<object> ...]
  • 1
  • 2

使用删除容器命令删除 container1 中的对象 test/anaconda-ks.cfg

[root@controller opt]# openstack object delete container1 test/anaconda-ks.cfg 
[root@controller opt]# openstack object list container1

  • 1
  • 2
  • 3
(8)删除容器

使用 openstack container delete 命令删除容器

命令格式如下

[root@controller test]# openstack container delete --help
usage: openstack container delete [-h] [--recursive]
                                  <container> [<container> ...]

  • 1
  • 2
  • 3
  • 4

使用删除命令删除容器 container1

[root@controller opt]# openstack container delete container1
[root@controller opt]# openstack container list
  • 1
  • 2
2.分片存储案例
(1)创建容器

使用命令创建一个容器 test 并查看容器的状态信息

[root@controller opt]# openstack container create container2
+---------------------------------------+------------+------------------------------------+
| account                               | container  | x-trans-id                         |
+---------------------------------------+------------+------------------------------------+
| AUTH_8477005613924107b281ef0292377fff | container2 | tx42b3d14b9e3d453b9efb0-0063e20dc4 |
+---------------------------------------+------------+------------------------------------+
[root@controller opt]# swift stat container2
               Account: AUTH_8477005613924107b281ef0292377fff
             Container: container2
               Objects: 0
                 Bytes: 0
              Read ACL:
             Write ACL:
               Sync To:
              Sync Key:
         Accept-Ranges: bytes
      X-Storage-Policy: Policy-0
         Last-Modified: Tue, 07 Feb 2023 08:37:26 GMT
           X-Timestamp: 1675759045.17190
            X-Trans-Id: txec129673c23344ed998f2-0063e20dcd
          Content-Type: application/json; charset=utf-8
X-Openstack-Request-Id: txec129673c23344ed998f2-0063e20dcd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
(2)上传镜像并分片存储

上传镜像,并使用命令上传至test容器中,进行分片存储,每个片段大小为10M

[root@controller test]# swift upload container2 -S 10000000 cirros-0.3.4-x86_64-disk.img 
cirros-0.3.4-x86_64-disk.img segment 1
cirros-0.3.4-x86_64-disk.img segment 0
cirros-0.3.4-x86_64-disk.img
  • 1
  • 2
  • 3
  • 4

查看cirros镜像的存储路径

[root@controller test]# swift stat container2 cirros-0.3.4-x86_64-disk.img 
               Account: AUTH_8477005613924107b281ef0292377fff
             Container: container2
                Object: cirros-0.3.4-x86_64-disk.img
          Content Type: application/octet-stream
        Content Length: 13287936
         Last Modified: Tue, 07 Feb 2023 08:47:09 GMT
                  ETag: "cca17a689bfcd70118fabc833af0d033"
              Manifest: container2_segments/cirros-0.3.4-x86_64-disk.img/1675759156.181087/13287936/10000000/
            Meta Mtime: 1675759156.181087
         Accept-Ranges: bytes
           X-Timestamp: 1675759628.40876
            X-Trans-Id: tx5c5baf471ab3468cb2a57-0063e2109e
X-Openstack-Request-Id: tx5c5baf471ab3468cb2a57-0063e2109e
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

查看存储路径中的数据片

[root@controller test]# swift list container2_segments
cirros-0.3.4-x86_64-disk.img/1675759156.181087/13287936/10000000/00000000
cirros-0.3.4-x86_64-disk.img/1675759156.181087/13287936/10000000/00000001
  • 1
  • 2
  • 3

可以看到,cirros镜像在上传至Swift对象存储中被分片存储了,单个存储篇的大小为 10M,因为镜像大小为16M左右,所以分成了两个存储片

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/77803
推荐阅读
相关标签
  

闽ICP备14008679号