赞
踩
使用Centos7.9云主机搭建的Openstack平台作为实验节点
CirrOS是一个极小的云操作系统,可以使用这个小的操作系统来进行Glance服务组件的操作练习。将提供的cirros-0.3.4-x86_64-disk.img镜像上传到controller节点的root目录下面。
[root@controller ~]# ls
…
cirros-0.3.4-x86_64-disk.img
将镜像上传至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
查看创建镜像的命令格式
[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
参数说明:
–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 | +------------------+----------------------------------------------------------------------------------+
通过命令可以在OpenStack平台中查看当前Glance中所上传的镜像名称
[root@controller ~]# glance image-list
+--------------------------------------+---------+
| ID | Name |
+--------------------------------------+---------+
| d673cd4f-adc1-4bbc-9f03-2292f2339355 | cirrosA |
+--------------------------------------+---------+
查看镜像的详细信息
[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 | +------------------+----------------------------------------------------------------------------------+
可以使用 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>
参数说明:
如果需要改变镜像启动硬盘最低要求值(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 | +------------------+----------------------------------------------------------------------------------+
(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
只需要在命令后跟上镜像ID即可
[root@controller ~]# glance image-delete d673cd4f-adc1-4bbc-9f03-2292f2339355
[root@controller ~]# glance image-list
+--------------------------------------+--------+
| ID | Name |
+--------------------------------------+--------+
| | |
+--------------------------------------+--------+
flavor类型为Openstack在创建云主机时需要提供的云主机大小类型,云主机的资源大小可使用不同的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>
使用命令创建一个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 | +----------------------------+---------+
使用 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 |
+----+-----------+------+------+-----------+-------+-----------+
使用 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>
查看刚刚创建的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 | +----------------------------+---------+
访问安全组为是OpenStack提供给云主机的一个访问策略控制组,通过安全组中的策略可以控制云主机的出入访问规则
使用命令 openstack security group list 可以查看当前所创建的访问安全组列表。
[root@controller ~]# openstack security group list
+--------------------------------------+---------+-------------+----------------------------------+------+
| ID | Name | Description | Project | Tags |
+--------------------------------------+---------+-------------+----------------------------------+------+
| 3d996b69-079f-41da-84bd-2065f6522fb2 | default | 缺省安全组 | ad1ecfaf84ae410c8e5db7c8ff37db39 | [] |
+--------------------------------------+---------+-------------+----------------------------------+------+
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 |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
在安全组规则列表中,不能看出每条规则的具体策略,通过使用命令 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 | +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
创建一个新的安全组
命令格式如下
[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>
使用命令创建新的安全组规则,命令如下:
[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 | +-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
可以使用命令删除不使用的访问安全组
[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 | [] |
+--------------------------------------+---------+-------------+----------------------------------+------+
在默认安全组中添加三条需要使用的访问规则,使用 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>
在“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 | +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
在“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 | +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
在“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 | +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
查看“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 |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+
上传镜像,使用 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 |
+--------------------------------------+---------+--------+
使用 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 |
+----+-----------+------+------+-----------+-------+-----------+
使用 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 | +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
使用 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 | +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
修改Nova服务配置文件,设置参数“ virt_type=qemu ”
[root@controller ~]# vi /etc/nova/nova.conf
...
virt_type=qemu
...
[root@controller ~]# systemctl restart openstack-nova-compute
使用 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>
通过命令创建云主机,使用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 | | +-------------------------------------+------------------------------------------------+
使用 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 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
使用命令可以查看虚拟机的具体信息,包括使用的安全组、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 | | +-------------------------------------+----------------------------------------------------------+
可以通过命令操作虚拟机,对虚拟机进行关机、开机、重启等操作。关闭虚拟机操作
[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 |
+--------------------------------------+-------------+---------+------------------------------+---------+---------+
通过命令操作虚拟机,对虚拟机进行开机操作
[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 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
通过命令操作虚拟机,对虚拟机进行重启操作
[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 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
[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
..
修改完配置文件后重启相关服务
[root@controller ~]#systemctl restart openstack-nova*
现有云主机硬盘和内存不满足使用,需要对现有云主机进行资源扩容,将内存扩容至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 | +----------------------------+--------------------------------------+
查看当前云主机类型列表
[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 |
+--------------------------------------+-----------+------+------+-----------+-------+-----------+
查看云主机列表,通过命令查看云主机列表
[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 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
使用命令“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=
修改dashboard配置文件
[root@controller ~]# vi /etc/openstack-dashboard/local_settings
...
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
...
[root@controller ~]# systemctl restart httpd memcached
使用命令调整云主机“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 |
+--------------------------------------+-------------+---------------+------------------------------+---------+---------+
登录OpenStack,在左侧导航栏选择 项目→计算→实例,在实例最后的动作下拉菜单中选择“确认 调整大小/迁移”
确认调整大小/迁移
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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 |
+--------------------------------------+-------------+--------+------------------------------+---------+---------+
[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 | +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
修改Nova服务配置文件,设置参数 virt_type=qemu
[root@controller ~]# vi /etc/nova/nova.conf
...
virt_type=qemu
...
[root@controller ~]# systemctl restart openstack-nova*
[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 | | +-------------------------------------+-------------------------------------------------+
使用 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 |
+------------------+-------------+------+---------+-------+----------------------------+
使用 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>
通过命令创建块存储,大小为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 | +---------------------+--------------------------------------+
使用 openstack volume list 命令查看块存储列表信息
[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| d65804fb-688a-4187-a2d4-08a62f8a7c3f | volume | available | 2 | |
+--------------------------------------+--------+-----------+------+-------------+
通过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 | +--------------------------------+--------------------------------------+
块存储设备创建成功后,可以在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)
使用命令将刚刚创建的 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 | 2 | Attached to cirros-test2 on /dev/vdb |
+--------------------------------------+--------+--------+------+---------------------------------------+
创建完卷后可能因为需求变更,需要对已有的卷进行扩容操作,这时需要用到 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>
分离卷,通过命令将 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 | |
+--------------------------------------+--------+-----------+------+-------------+
将扩容后的卷 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 |
+--------------------------------------+--------+--------+------+---------------------------------------+
可以看到卷 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
可以看到显示盘符 vdb 大小为 3G 此时云硬盘已经扩展完成
在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
通过 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> ...]
使用命令创建容器 名称为 swift-test
[root@controller ~]# openstack container create container1
+---------------------------------------+------------+------------------------------------+
| account | container | x-trans-id |
+---------------------------------------+------------+------------------------------------+
| AUTH_2dd8f147022949548b9bdf2f2eb17790 | container1 | tx0b85327a7c22408383b82-0063df821a |
+---------------------------------------+------------+------------------------------------+
使用命令查询容器列表信息
[root@controller ~]# openstack container list
+------------+
| Name |
+------------+
| container1 |
+------------+
使用命令查询容器详细信息
[root@controller ~]# openstack container show container1
+--------------+---------------------------------------+
| Field | Value |
+--------------+---------------------------------------+
| account | AUTH_2dd8f147022949548b9bdf2f2eb17790 |
| bytes_used | 0 |
| container | container1 |
| object_count | 0 |
+--------------+---------------------------------------+
创建完容器后,可以创建对象,通过使用命令 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> ...]
在使用命令创建对象前,需要将上传后的目录结构在本地创建,在本地创建名为 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
创建对象的过程也是向容器中上传文件,使用命令创建 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 |
+----------------------+------------+----------------------------------+
创建完对象后,通过命令查看容器中对象信息,使用命令“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>
使用命令查看容器 container1 中所有对象信息
[root@controller ~]# openstack object list container1
+----------------------+
| Name |
+----------------------+
| test/anaconda-ks.cfg |
+----------------------+
通过查询命令可以看出,在通过命令上传对象时,本地路径即为容器内对象路径。使用 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 |
+----------------+---------------------------------------+
存储在容器中的对象,可以在需要使用时,通过 openstack object save 命令进行下载至本地
命令格式如下
[root@controller ~]# openstack object save --help
usage: openstack object save [-h] [--file <filename>] <container> <object>
Save object locally
使用命令 将 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
使用 openstack object delete 命令删除容器内的对象
命令格式如下
[root@controller opt]# openstack object delete --help
usage: openstack object delete [-h] <container> <object> [<object> ...]
使用删除容器命令删除 container1 中的对象 test/anaconda-ks.cfg
[root@controller opt]# openstack object delete container1 test/anaconda-ks.cfg
[root@controller opt]# openstack object list container1
使用 openstack container delete 命令删除容器
命令格式如下
[root@controller test]# openstack container delete --help
usage: openstack container delete [-h] [--recursive]
<container> [<container> ...]
使用删除命令删除容器 container1
[root@controller opt]# openstack container delete container1
[root@controller opt]# openstack container list
使用命令创建一个容器 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
上传镜像,并使用命令上传至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
查看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
查看存储路径中的数据片
[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
可以看到,cirros镜像在上传至Swift对象存储中被分片存储了,单个存储篇的大小为 10M,因为镜像大小为16M左右,所以分成了两个存储片
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。