当前位置: 首页 > news >正文

Opentack基础架构平台运维

1.OpenStack基础服务组件运维

OpenStack 是一个开源的云计算管理平台,由多个主要的组件组合起来完成具体工作。

OpenStack 的基础服务组件包括了 Keystone 认证服务组件、Glance 镜像服务组件、Neutron

网络服务组件和 Nova 计算服务组件。

1.1 Keystone 认证服务

Keystone 是 OpenStack 平台框架中的一个重要组成部分,负责身份认证(通过 Identity

84API 实现)、服务管理、服务规则设定和服务令牌分发的功能。Keystone 类似一个服务总

线,或者可将其看成是整个 OpenStack 平台框架的注册表,其他服务通过 Keystone 进行注

册,任何服务之间的相互调用的都需要经过 Keystone 的身份验证来获得。

Keystone 涉及用户(User)、证书(Credentials)、认证( Authentication )、令牌

(Token)、角色(Role)、租户(Tenant)和端点(Endpoint)等主要概念。

Keystone 认证服务运维管理

以 Kolla-ansible 部 署的 单 节点 OpenStack 云 平台 为 实验 工作 平 台, 配 置并 启用Keystone 认证服务。假设 OpenStack 云平台上有两个租户,租户 A 和租户 B,他们分别属于两个部门,该公司对镜像管理比较严格,只有管理员有权限对镜像进行上传和管理。但公司有一个镜像需要共享给租户 A,而对租户 B 为不可见。要实现这样的资源隔离最简单的方法就是由租户 A 中的用户自行上传镜像,这样租户 A 中的用户就能看到这个镜像,而租户 B 中的用户是看不到的。但由于租户 A 中的用户是普通用户,无权管理镜像,只能由管理员通过命令开放给租户 A 才能得以实现。接下来通过如下步骤实现上述目标。

1. 创建租户

创建租户 A,命令如下所示。

[root@controller ~]# openstack project create --domain default A

在 OpenStack 界面上查看租户 A。

创建租户 B,命令如下所示。

[root@controller ~]# openstack project create --domain default B

2. 创建用户

创建普通用户 userA,密码为123456,命令如下所示。

[root@controller ~]# openstack user create --domain default  --password 123456 userA

OpenStack 界面上查看用户 userA

创建普通用户 userB,密码为123456,命令如下所示。

[root@controller ~]# openstack user create --domain default  --password 123456 userB

3. 赋予角色

将用户 userA 分配到租户 A 中,赋予用户 userA 以 member 的角色。

[root@controller ~]# openstack role add --project A --user userA member

将用户 userB 分配到租户 B 中,赋予用户 userB 以 member 的角色。

[root@controller ~]# openstack role add --project B --user userB member

使用命令查询租户列表信息和用户列表信息,命令及结果如下所示。

[root@controller ~]# openstack project list

[root@controller ~]# openstack user list

通过上面的操作可以看到两个租户和两个用户都已存在。

4. 上传镜像

将 cirros-0.6.1-x86_64-disk.img 下载至控制节点的/root 目录下,命令如下所示。

[root@controller ~]#  wget https://github.com/cirros-dev/cirros/releases/download/0.6.1/cirros-0.6.1-x86_64-disk.img

创建一个 cirros-0.6.1 镜像,命令如下所示。

[root@controller ~]# openstack image create --disk-format qcow2  --container-format bare  --progress --file cirros-0.6.1-x86_64-disk.img "cirros-0.6.1"

[root@controller ~]# openstack image list

在 OpenStack 界面上查看 userA、userB 镜像内容。

上传镜像后,userA 和 userB 都不能看到该镜像。接下来做相关配置,使得 A 租户中的

用户可以看到该镜像。

5. 权限配置

首先将镜像共享给 A 租户,命令格式为 openstack image add project < image name or

ID > < project name or ID >,命令如下所示。

[root@controller ~]# openstack image add project cirros-0.6.1 A

在共享之后,镜像的状态是 Pending 状态,此时还需要激活镜像,命令如下所示。

[root@controller ~]# openstack image set cirros-0.6.1 --project A --accept

[root@controller ~]# openstack image member list cirros-0.6.1

此时镜像的状态变为 Accepted,切换至用户 userA 和用户 userB 中,分别查看镜像列

表信息,命令如下所示。

[root@controller ~]# export OS_PROJECT_NAME=A

[root@controller ~]# export OS_USERNAME=userA

[root@controller ~]# export OS_PASSWORD=123456

[root@controller ~]# openstack image list

+--------------------------------------+--------------+--------+

| ID                                   | Name         | Status |

+--------------------------------------+--------------+--------+

| d99890a6-1ed7-4498-9581-0a5234329448 | cirros-0.6.1 | active |

+--------------------------------------+--------------+--------+

[root@controller ~]# export OS_PROJECT_NAME=B

[root@controller ~]# export OS_USERNAME=userB

[root@controller ~]# export OS_PASSWORD=123456

[root@controller ~]# openstack image list

[root@controller ~]#

可以发现,用户 userA 可查询到该镜像,用户 userB 不可以。通过这种方式,可以使

管理员设置不同租户对不同镜像或文件资源的访问权限,实现资源隔离。

1.2Glance 镜像服务

Glance 依赖于存储服务和数据库服务,存储服务用于存储镜像(Image)本身,数据库

服务主要用于存储跟镜像相关的各种元数据。此外,Glance 主要为 Nova 组件提供服务,

通过 Nova 创建虚拟机时,必须使用 Glance 获取相应的镜像,根据镜像创建虚拟机实例。

Glance 支持的镜像格式较多,例如 raw、qcow2、VHD、VMDK 和 OVF(Open

Virtualization Format,开放虚拟化格式)等。由于镜像文件都比较大,镜像从创建到成功

上传到 Glance 文件系统中需要通过异步任务的方式一步步完成,其状态包括 Queued(排

队)、Pending(待处理)、Saving(保存中)、Accepted(已接受)、Acive(有效)、

Deactivated(无效)、Killed(错误)、Deleted(被删除)和 Pending_delete(等待删除)。

镜像服务运维管理

1. 上传镜像

下载镜像文件 openEuler-22.09-x86_64.qcow2 并创建名为 openEuler-22.09、格式为

qcow2 的镜像,命令和结果如下所示。

[root@controller ~]# wget https://archives.openeuler.openatom.cn/openEuler-22.09/virtual_machine_img/x86_64/openEuler-22.09-x86_64.qcow2.xz

[root@controller ~]# xz -d openEuler-22.09-x86_64.qcow2.xz

2. 查看镜像列表

使用相关命令查询镜像列表,并查询 image-test 镜像的详细信息,命令如下所示

[root@controller ~]# openstack image create --disk-format qcow2  --container-format bare  --progress --file openEuler-22.09-x86_64.qcow2  "openEuler-22.09"

3. 查看镜像列表

使用相关命令查询镜像列表,并查询 image-test 镜像的详细信息

[root@controller ~]# openstack image list

4. 使用 Skyline 界面创建镜像

通过 Skyline 界面,使用镜像 URL 链接创建镜像

5. 删除镜像

使用相关命令删除刚刚创建的镜像,命令如下所示。

[root@controller ~]# openstack image delete a5fab360-4fde-4033-9632-32da26c99c11

注意:删除的 ID 为刚才查询的实际镜像 ID。

1.3 Neutron 网络服务

Neutron 是 OpenStack 核心项目之一,它提供云计算环境下的虚拟网络功能。它将网络

(Network)、子网(Subnet)、端口(Port)和路由器(Router)抽象化为虚拟网络,并

将启动的虚拟主机实例连接到这个虚拟网络上。

Neutron 网络服务由网络和子网组成,其中网络是一个隔离的二层广播域。Neutron 支

持多种类型的网络,包括本地网络(Local Network)、扁平网络(Flat Network)、虚拟局

域网(Virtual Xocal Area Network ,VLAN)、虚拟拓展局域网(Virtual eXtensible Local

Area Network,VxLAN)和通用路由封装(Generic Routing Encapsulation ,GRE)。子网

是一个 IPv4 或者 IPv6 地址段,虚拟机实例的 IP 地址从子网中分配。每个子网需要定义 IP

地址的范围和掩码。网络与子网是一对多关系,一个子网只能属于某个网络,而一个网络

可以有多个子网。这些子网可以是不同的 IP 地址段,但不能重叠。

Neutron 网络服务运维管理

1. 创建网络

使用 OpenStack 相关命令创建名称为 neutron-test 的网络,命令如下所示。

[root@controller ~]# openstack network create neutron-test

2. 网络列表

使用相关命令查询所创建网络的列表信息,命令和结果如下所示

[root@controller ~]# openstack network list

3. 删除网络

使用相关命令删除上一步创建的网络,并进行验证,命令和结果如下所示。

[root@controller ~]# openstack network delete neutron-test

[root@controller ~]# openstack network list

此处并没有返回值,表示网络已经被删除。

4. 创建路由

使用相关命令创建一个名为 route-test 的路由,查看路由列表之后便删除,命令如下所

示。

[root@controller ~]# openstack router create route-test

[root@controller ~]# openstack router list

[root@controller ~]# openstack router delete 2ab23154-7adf-49f1-be43-ec32a28d3962

注意:此处删除的[routeID]为实际查询到的路由 ID。

再次查看路由列表,具体示例结果和命令如下所示。

[root@controller ~]# openstack router list

1.4 Nova 计算服务

Nova 是 OpenStack 计算的弹性控制器,是整个云平台最重要的组件,其功能包括运行

虚拟机实例、管理网络以及通过用户和项目控制其对云的访问。

创建 Nova 实例一般先由用户通过 Web 界面或 CLI 界面发送一个启动实例的请求,由

Keystone 对其进行身份验证。通过验证之后用户将获得一个令牌,用户将所获的令牌向

Nova API 发送请求,验证镜像和实例类型(Flavor)是否存在。通过上述验证后将启动实

例的请求发送给计算服务的调度节点(Schedule),调度节点随机将此请求发送给一个计

算节点让其启动实例,计算节点接收请求之后,开始下载镜像并启动实例。计算节点启动

虚拟机实例时会通过 Neutron 的动态主机配置协议(Dynamic Host Configuration Protocol,

DHCP)获取一个 IP 网络资源,在 OVS(OpenvSwitch)网桥获取相应的端口绑定虚拟机

实例的虚拟网卡接口,启动虚拟机实例。

Nova 计算服务运维管理

1. 创建实例

创建实例类型,命令如下所示。

[root@controller ~]# openstack flavor create 1V_1G_10G --vcpus 1 --ram 1024 --disk 10

查看可用实例类型列表,命令如下所示。

[root@controller ~]# openstack flavor list

查看可用镜像列表,命令和结果如下所示。

[root@controller ~]# openstack image list

创建外部网络

[root@controller ~]# openstack network create --share --external --provider-physical-network provider --provider-network-type flat ext-net

[root@controller ~]# openstack subnet create --network ext-net --no-dhcp --gateway 192.168.154.2 --subnet-range 192.168.154.3/24 external_subnet

#创建路由

[root@controller ~]# openstack router create router

[root@controller ~]# openstack router set router --external-gateway ext-net

创建内部网络

[root@controller ~]# openstack network create int-net

[root@controller ~]# openstack subnet create --network int-net --subnet-range 192.168.239.0/24 --dns-nameserver 114.114.114.114 int-subnet

#连接路由

[root@controller ~]# openstack router add subnet router int-subnet

创建实例使用的安全组,命令如下所示。

[root@controller ~]# openstack security group create secgroup01

[root@controller ~]# openstack security group list

创建用于连接实例的 SSH 密钥对并查看密钥对列表,命令和结果如下所示。

[root@controller ~]# ssh-keygen -t rsa -b 2048

[root@controller ~]# ls -l ~/.ssh/id_rsa.pub

-rw-r--r--. 1 root root 397 Mar 12 13:17 /root/.ssh/id_rsa.pub

[root@controller ~]# openstack keypair create --public-key .ssh/id_rsa.pub controller_key

[root@controller ~]# openstack keypair list

创建实例 my-instance,命令如下所示。

[root@controller ~]# openstack server create --flavor 1V_1G_10G --image cirros-0.6.1 --network int-net --security-group secgroup01 --key-name controller_key my-instance

查看外部网络列表,申请浮动 IP 地址并绑定至实例上。首先查看网络列表,命令和结

果如下所示。

[root@controller ~]# openstack network list --external

申请浮动 IP 地址 192.168.154.23,命令如下所示。

[root@controller ~]# openstack floating ip create ext-net --floating-ip-address 192.168.154.23

绑定浮动 IP 地址到实例,命令和结果如下所示。

[root@controller ~]# openstack server list

[root@controller ~]# openstack port list --device-id 76927100-7faa-4edf-ae2c-2fc8a4027dc8

[root@controller ~]# openstack floating ip set --port 25bd8122-1b31-47a8-b9aa-556c47aab34e 192.168.154.23

[root@controller ~]# openstack server list

为安全组 secgroup01 添加因特网控制报文协议(Internet Control Message Protocol,

ICMP)协议入口访问规则,命令和结果如下所示

[root@controller ~]# openstack security group rule create --protocol icmp  --ingress secgroup01

为安全组 secgroup01 添加 TCP 协议入口访问规则,命令和结果如下所示。

[root@controller ~]# openstack security group rule create --protocol tcp --dst-port 22:22 secgroup01

[root@controller ~]# openstack security group rule list secgroup01

使用 SSH 登录实例进行测试,命令和结果如下所示。

[root@controller ~]# openstack server list

[

[root@controller ~]# ssh cirros@192.168.154.23

The authenticity of host '192.168.154.23 (192.168.154.23)' can't be established.

ED25519 key fingerprint is SHA256:r3GYqjS9RybxRyvuN9BHLdGgyjelL02EdLwPoC4LN4s.

This key is not known by any other names

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '192.168.154.23' (ED25519) to the list of known hosts.

$ ping mi.com -c 3

PING 118.26.253.224 (118.26.253.224) 56(84) bytes of data.

64 bytes from 118.26.253.224 (118.26.253.224): icmp_seq=1 ttl=127 time=56.6 ms

64 bytes from 118.26.253.224 (118.26.253.224): icmp_seq=2 ttl=127 time=40.4 ms

64 bytes from 118.26.253.224: icmp_seq=3 ttl=127 time=50.2 ms

--- 118.26.253.224 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 30124ms

rtt min/avg/max/mdev = 40.380/49.041/56.591/6.664 ms

$ cat /etc/os-release

PRETTY_NAME="CirrOS 0.6.1"

NAME="CirrOS"

VERSION_ID="0.6.1"

ID=cirros

HOME_URL="https://cirros-cloud.net"

BUG_REPORT_URL="https://github.com/cirros-dev/cirros/issues"

$ route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.239.1   0.0.0.0         UG    1002   0        0 eth0

169.254.169.254 192.168.239.2   255.255.255.255 UGH   1002   0        0 eth0

192.168.239.0   0.0.0.0         255.255.255.0   U     1002   0        0 eth0

$

2. 查看实例详细信息,命令如下所示。

[root@controller ~]# openstack console url my-instance

[root@controller ~]# openstack server show my-instance

3. 使用 OpenStack API 启动、关闭和重建实例

curl 命令是一种在命令行下使用的网络工具,用于向服务器发送请求并获取响应,它

可以模拟各种 HTTP 请求,常用于调试 Web 服务器和 API。curl 命令的基本参数如下。

l -s:在请求的过程中不显示进度条。

l -H:添加请求头部。

l -X:指定请求方法(例如 GET、POST、PUT、DELETE)。

使用 curl 调用后返回的 JSON(JavaScript Object Notation,JavaScript 对象表示法)数

据不易读,这时可以使用 python3 -m json.tool 命令将响应数据格式化输出,下面使用 curl

命令进行部分 OpenStack API 的调用示例。

查询实例列表,命令和结果如下。

[root@controller ~]# dnf -y install jq

[root@controller ~]# curl -s -H "X-Auth-Token:$(openstack token issue -f json | jq -r '.id')" http://controller:8774/v2.1/servers | python3 -m json.tool

查询实例 cirros-0.6.1 ID、状态等,命令和结果如下。

[root@controller ~]# curl -s -H "X-Auth-Token:$(openstack token issue -f json | jq -r '.id')" http://controller:8774/v2.1/servers/76927100-7faa-4edf-ae2c-2fc8a4027dc8 | python3 -m json.tool

停止和启动实例cirros-0.6.1,命令和结果如下。

[root@controller ~]# curl -s -H "X-Auth-Token:$(openstack token issue -f json | jq -r '.id')" \

> -H "Content-Type: application/json" \

> -d '{"os-stop": {}}' \

> -X POST http://controller:8774/v2.1/servers/76927100-7faa-4edf-ae2c-2fc8a4027dc8/action

再次查询实例状态,status会变为SHUTOFF

重启实例

[root@controller ~]# curl -s -H "X-Auth-Token:$(openstack token issue -f json | jq -r '.id')" -H "Content-Type: application/json" \ -d '{"os-start": {}}' -X POST http://controller:8774/v2.1/servers/76927100-7faa-4edf-ae2c-2fc8a4027dc8/action

2 存储服务组件

Openstack 的存储服务组件包括了 Cinder 块存储服务、Swift 对象存储服务和 Manila 共

享文件系统服务。 

2.1 Cinder 块存储服务

Cinder 是 OpenStack 块存储(OpenStack Block Storage)的项目名称,Cinder 的核心功

能是对卷(Volume)的管理,它允许对卷、卷的类型、快照进行处理。但是,Cinder 并没

有实现对块设备的管理和实际服务(提供逻辑卷),而是通过后端的统一存储接口来支持

85不同块设备厂商的块存储服务,实现其驱动(Driver)支持并与 OpenStack 进行整合。

Cinder 可为运行实例提供稳定的数据块存储服务,并提供对卷从创建到删除的整个生命周

期的管理。

Cinder 采用的是松散的架构理念,由 cinder-api 统一管理外部对 Cinder 的调用,cinder-

scheduler 负责调度合适的节点去构建卷存储。volume-provider 通过驱动负责具体的存储空

间,Cinder 内部依旧通过消息队列(Queue)沟通,解耦各子服务以支持异步调用。

Cinder 得到请求后会自动访问块存储服务,它有两个显著的特点,第一,必须用户提

出请求,服务才会进行响应;第二,用户可以使用自定义的方式实现半自动化服务。简而

言之,Cinder 虚拟化块存储设备池,提供给用户自助服务的 API,以请求和使用存储池中

的资源,而 Cinder 本身并不能获取具体的存储形式或物理设备信息。 

Cinder 块存储服务运维管理

1. 创建镜像和网络

下载镜像文件,命令如下所示。

[root@controller ~]# wget http://download.cirros-cloud.net/0.6.1/cirros-0.6.1-x86_64-disk.img

创建名为 cirros-0.6.1 的镜像,命令如下所示。

[root@controller ~]# openstack image create --disk-format qcow2 --container-format bare --progress --file cirros-0.6.1-x86_64-disk.img "cirros-0.6.1"

查看镜像列表,命令如下所示。

[root@controller ~]# openstack image list

创建网络 network-flat,网络类型为 flat,命令如下所示。

[root@controller ~]# openstack network create --provider-network-type flat --provider-physical-network provider --external network-flat

[root@controller ~]# openstack network create manila_service_network

创建子网 network-flat-subnet,网络地址分配为 192.168.200.100~192.168.200.200,网关

192.168.200.1 为,命令如下所示。

[root@controller ~]# openstack subnet create --network network-flat --subnet-range 192.168.200.0/24 --allocation-pool start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 network-flat-subnet

查看子网列表,命令如下所示。

[root@controller ~]# openstack subnet list

2. 启动云主机

创建云主机类型 1V_1G_10G,命令如下所示。

[root@controller ~]# openstack flavor create 1V_1G_10G --vcpus 1 --ram 1024 --disk 10

使用先前创建的镜像、云主机类型和网络,启动云主机 cirros-test,命令如下所示。

[root@controller ~]# openstack server create --image cirros-0.6.1 --flavor 1V_1G_10G --network network-flat cirros-test

查看云主机列表,命令如下所示。

[root@controller ~]# openstack server list

3. 查看 Cinder 服务状态

查看 Cinder 服务状态,命令如下所示。

[root@controller ~]# openstack volume service list

4. 创建卷

创建一个3 GB云硬盘(卷),命令如下所示。

[root@controller ~]# openstack volume create --size 3 SSD_3G

5. 查看卷

查看当前卷列表,命令如下所示

[root@controller ~]# openstack volume list

查看 volume 卷的详细信息,命令如下所示。

[root@controller ~]# openstack volume show SSD_3G

6. 挂载云硬盘

给云主机 cirros-test 挂载 SSD_3G 卷(云硬盘),命令如下所示。

[root@controller ~]# openstack server add volume cirros-test SSD_3G

查看当前卷列表,命令如下所示。

[root@controller ~]# openstack volume list

2.2 Swift 对象存储服务

Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务(Object Storage

Service,OSS),于 2010 年贡献给 OpenStack 开源社区,作为其最初的核心子项目之一。

Swift 为 OpenStack 的 Nova 子项目提供虚机镜像存储服务,它支持多租户模式、容器和对

象读写操作,适合解决互联网应用场景下非结构化数据存储问题。

Swift 包括 2 个组成部分,一个是代理(Proxy)服务,一个是存储(Storage)服务。

代理服务是 Swift 内部存储的拓扑逻辑,即一个具体文件位于哪个存储节点的哪个区

上。它同时是一个 Web 服务器,通过 HTTP 或 HTTPs 对外提供 RESTful API 服务。存储服

务是负责文件存储的服务,由 3 个组件组成,分别是 account-server、container-server 和

object-server,其中 object-server 负责具体的文件存储,container-server 包含了每个对象的

索引,而 account-server 包含了每个容器(Container)的索引。

Swift 对象存储服务运维管理

1. 服务运维基础命令

(1)创建容器

创建容器 swift-wxic,命令如下所示。

[root@controller ~]# sudo dnf -y install python-swiftclient

[root@controller ~]# openstack container create swift-wxic

(2)查看容器

查看当前容器列表,命令如下所示。

[root@controller ~]# openstack container list

查看容器 swift-wxic 的详细信息,命令如下所示。

[root@controller ~]# openstack container show swift-wxic

(3)上传对象

创建 wxic 目录,命令如下所示。

[root@controller ~]# mkdir wxic

查看当前位置下的所有文件,命令如下所示。

[root@controller ~]# ls

anaconda-ks.cfg  cirros-0.6.1-x86_64-disk.img  swift-ring.sh  wxic

将 cirros-0.6.1-x86_64-disk.img 复制到 wxic 目录中,命令如下所示。

[root@controller ~]# mv cirros-0.6.1-x86_64-disk.img wxic/

将 wxic/ cirros-0.6.1-x86_64-disk.img 文件上传到 swift-wxic 容器,命令如下。

[root@controller ~]# openstack object create swift-wxic wxic/cirros-0.6.1-x86_64-disk.img

(4)查看对象

查看 swift-wxic 容器内的上传对象,命令如下所示。

[root@controller ~]# openstack object list swift-wxic

查看上传 swift-wxic 容器中的 wxic/cirros-0.6.1-x86_64-disk.img 文件的详细信息,命令

如下所示。

[root@controller ~]# openstack object show swift-wxic wxic/cirros-0.6.1-x86_64-disk.img

(6)下载对象

进入/opt 目录,命令如下所示。

[root@controller ~]# cd /opt/

将 swift-wxic 容器中的 wxic/cirros-0.6.1-x86_64-disk.img 文件下载到/opt 目录中,命令

如下所示。

[root@controller opt]# openstack object save swift-wxic wxic/cirros-0.6.1-x86_64-disk.img

查看下载结果,命令如下所示。

[root@controller opt]# ls wxic/cirros-0.6.1-x86_64-disk.img

如果想要下载容器里面所有的文件,命令语法如下所示

[root@controller ~]# openstack container save <容器名>

(7)删除对象

查看 swift-wxic 容器内的上传对象,命令如下所示。

[root@controller opt]# openstack object list swift-wxic

删除 swift-wxic 容器内的上传对象 wxic/cirros-0.6.1-x86_64-disk.img,命令如下所示。

[root@controller opt]# openstack object delete swift-wxic wxic/cirros-0.6.1-x86_64-disk.img

再次查看 swift-wxic 容器内的上传对象,命令如下所示。

[root@controller opt]# openstack object list swift-wxic

(8)删除容器

查看容器列表,命令如下所示。

[root@controller opt]# openstack container list

删除 swift-wxic 容器,命令如下所示。

[root@controller opt]# openstack container delete swift-wxic

再次查看容器列表,检验上述操作结果,命令如下所示。

[root@controller opt]# openstack container list

如果需要递归删除对象和容器,则需要加—recursive 参数,命令语法如下所示。

[root@controller ~]# openstack container delete <容器名> --recursive

2. 分片存储案例

(1)创建容器

创建一个名为 wxic 的容器,命令如下所示。

[root@controller ~]# openstack container create wxic

2)上传镜像并分片存储118

下载 cirros-0.6.1-x86_64-disk.img 镜像文件到本地,命令如下所示。

[root@controller ~]# wget \ http://download.cirros-cloud.net/0.6.1/cirros-0.6.1-x86_64-disk.img

将 cirros-0.6.1-x86_64-disk.img 镜像文件按10M的大小分片存储在 wxic 容器中,命令如

下所示。

[root@controller ~]# swift upload wxic -S 10M cirros-0.6.1-x86_64-disk.img

查看 wxic 容器中上传对象 cirros-0.6.1-x86_64-disk.img 的详细信息,命令如下所示。

[root@controller ~]# swift stat wxic cirros-0.6.1-x86_64-disk.img

查看 wxic 容器中的分片情况,命令如下所示。

[root@controller ~]# swift list wxic_segments

数据分片分别存放在不同的存储设备中,以减小每个存储设备的数据访问压力,从而

提高整个数据系统的性能。

2.3 Manila 共享文件系统服务

Manila 提供对共享或分布式文件系统的协调访问服务,它提供的是带有完整文件系统

的存储服务,服务类型有 NFS(Network File System,网络文件系统)、CIFS(Common

Internet File System,通用互连网文件系统)、GlusterFS(Gluster File System,Gluster 文件

系统)和 HDFS 等。云主机可以直接在系统里挂载 Manila 启动的实例。

Manila 的核心组件包括了 manila-api、manila-data、manila-scheduler、manila-share 和

messaging queue 五个组件。manila-api 是一个 WSGI(Web Server Gateway Interface,Web

服务器网关接口)应用程序,用于对整个共享文件系统服务进行身份验证和路由请求,它

支持 OpenStack API。manila-data 是一个独立的服务,其目的是接收请求,处理具有潜在长

时间运行时间的数据操作,例如复制、共享迁移或备份。manila-scheduler 处理来自用户的

请求,并将这些请求路由(分发)到适当的共享服务。mania-share 负责管理提供共享文件

系统的后端设备。messaging queue 能够使共享文件系统进程之间能够异步传递路由信息。

http://www.xdnf.cn/news/303805.html

相关文章:

  • iPhone或iPad想要远程投屏到Linux系统电脑,要怎么办?
  • react-12父子组件间的数据传递(子传父)(父传子)- props实现
  • Axure :列表详情、列表总数
  • Spring Boot 3.x集成SaToken使用swagger3+knife4j 4.X生成接口文档
  • 开源与商业:图形化编程工具的博弈与共生
  • ExtraMAME:复古游戏的快乐“时光机”
  • 信息论01:从通信到理论的飞跃
  • 第七章,VLAN技术
  • Github 2025-05-06Python开源项目日报 Top10
  • Kotlin与Java在Android生态中的竞争与互补关系
  • RT-Thread自用记录(暂定)
  • 第四章-初始化Direct3D
  • 餐饮部绩效考核管理制度与综合评估方法
  • 【java】程序设计基础 八股文版
  • 开放的力量:新零售生态的共赢密码
  • 每日算法-250506
  • weapp-vite - 微信小程序工具链的另一种选择
  • OpenGL超大分辨率图像显示
  • Windows玩游戏的时候,一按字符键就显示桌面
  • imapal sql优化之hint
  • Codeforces Round 1023 (Div. 2) (A-D)
  • USB学习【2】通讯的基础-反向不归零编码
  • 优势演员-评论家A2C详解:python从零实现
  • 【KWDB 创作者计划】一文掌握KWDB的时序表管理
  • 计算机中的逻辑运算
  • DVWA靶场保姆级通关教程--03CSRF跨站请求伪造
  • 碰一碰发视频源码搭建的定制化开发实践
  • 代码随想录算法训练营第九天 |【字符串】151.翻转字符串里的单词、卡码网55.右旋转字符串、28.实现strStr、459.重复的子字符串
  • Ubuntu 22.04 安装配置远程桌面环境指南
  • K8s 常用命令、对象名称缩写汇总