Swift介绍


Cinder 是 OpenStack 用于管理 块存储 的,而 Swift 是 对象存储

详情参考:Cinder组件的使用

容器管理


注意,swift中的容器(container)和docker中的容器不相似,Swift的容器可以看作s3中的桶。

创建容器

openstack container create swift-test
+---------------------------------------+------------+------------------------------------+
| account                               | container  | x-trans-id                         |
+---------------------------------------+------------+------------------------------------+
| AUTH_b47ea8448d9344b995deed86f68a8560 | swift-test | tx54ee91714d624ee799fba-00670e4436 |
+---------------------------------------+------------+------------------------------------+

查看容器

  • 查看容器列表
[root@controller ~]# openstack container list
+------------+
| Name       |
+------------+
| swift-test |
+------------+
  • 查看容器具体信息
[root@controller ~]# openstack container show swift-test
+--------------+---------------------------------------+
| Field        | Value                                 |
+--------------+---------------------------------------+
| account      | AUTH_b47ea8448d9344b995deed86f68a8560 |
| bytes_used   | 0                                     |
| container    | swift-test                            |
| object_count | 0                                     |
+--------------+---------------------------------------+

删除容器

[root@controller opt]# openstack container delete swift-test
[root@controller opt]# openstack container list
Internal Server Error (HTTP 500) (Request-ID: tx4ad422579ffb424c828bd-00670e527f)

对象管理


创建对象

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

mkdir /root/test
cp /root/anaconda-ks.cfg /root/test
openstack object create swift-test test/anaconda-ks.cfg
+----------------------+------------+----------------------------------+
| object               | container  | etag                             |
+----------------------+------------+----------------------------------+
| test/anaconda-ks.cfg | swift-test | 58ebcc96a4590ae02fd1db1a62e0b92c |
+----------------------+------------+----------------------------------+

查看对象

每个对象都是单独或同的一个container,因此,没有查看对象列表,但是可以查看容器下的所有对象

  • 查看容器下的所有对象
 openstack object list swift-test
+----------------------+
| Name                 |
+----------------------+
| test/anaconda-ks.cfg |
+----------------------+
  • 查看对象详情
openstack object show swift-test test/anaconda-ks.cfg
+----------------+---------------------------------------+
| Field          | Value                                 |
+----------------+---------------------------------------+
| account        | AUTH_b47ea8448d9344b995deed86f68a8560 |
| container      | swift-test                            |
| content-length | 2815                                  |
| content-type   | application/octet-stream              |
| etag           | 58ebcc96a4590ae02fd1db1a62e0b92c      |
| last-modified  | Tue, 15 Oct 2024 11:15:34 GMT         |
| object         | test/anaconda-ks.cfg                  |
+----------------+---------------------------------------+

下载对象

[root@controller ~]# cd /opt/
[root@controller opt]# openstack object save swift-test test/anaconda-ks.cfg
[root@controller opt]# ls test/
anaconda-ks.cfg

删除对象

[root@controller opt]# openstack object delete swift-test test/anaconda-ks.cfg
[root@controller opt]# openstack object list swift-test
Internal Server Error (HTTP 500) (Request-ID: tx3086dee54e054a5abbf5e-00670e5227)