一、速览:Swift 是什么,解决什么问题

入门

OpenStack Swift 是一个分布式对象存储系统。你可以把它理解成一个几乎可以无限扩容的网盘仓库:不用关心文件应该放在哪台服务器的哪个文件夹,只需要把数据交给它,它会自动复制多份、分散存储,并在某台机器故障时继续提供服务。

传统文件存储像“书架”:文件按固定路径摆放,容量受限于单个硬盘或单台机器;对象存储像“智能快递驿站”:每个文件就是一个包裹(对象),驿站根据包裹编号自动安排货架,货架不够就新增货柜。Swift 天生适合存放备份、网站图片、视频、日志等不会频繁修改的数据。

它通过 REST API(一种用普通 HTTP 地址就能上传、下载、删除数据的接口)工作,所以各种语言都能调用。最早由 Rackspace 开发,后来成为 OpenStack 核心项目之一。

OpenStack Swift 仓库主页展示的分布式对象存储架构

Swift 适合“写一次、读多次”的数据;如果你需要经常修改文件中间某几行,传统文件系统或数据库更合适。

二、安装:先搭一个能跑起来的 Swift

进阶 · 推荐细读

在动手前,需要满足三个前置条件:

  • 一台能联网的 Linux 服务器或虚拟机(建议 Ubuntu 20.04/22.04),因为 Swift 依赖 Linux 的进程管理和文件权限体系。
  • 至少 2 CPU、2GB 内存、20GB 空余磁盘,用于运行代理、账户、容器、对象等多个后台服务并存放测试数据。
  • 拥有 root 权限,安装软件、写 /etc 配置、创建数据目录都需要管理员权限。

生产环境有两条常见路线:单机开发环境 SAIO 和 发行版包安装。下面分别说明。

路线 A:SAIO 单机开发环境

SAIO 是 Swift All In One 的缩写,官方提供的开发部署方式,把 Swift 全部组件装在一台机器里,适合先了解运行机制、做小规模测试。它主要面向 Ubuntu,通过脚本自动完成大量初始化工作。

你不需要背命令,打开官方 SAIO 文档,按顺序执行即可。核心流程是拉取代码后运行运维脚本,脚本会创建用户、安装依赖、生成最小化 ring 文件并启动服务。

如果你只是想快速体验 Swift 的 API 和对象读写,SAIO 比手动配置更容易跑通。

路线 B:用包管理器安装

如果你的 Ubuntu 软件源包含 Swift 包,可以用 apt 安装基本组件和客户端工具:

sudo apt update
sudo apt install swift swift-proxy swift-account swift-container swift-object python3-swiftclient

注意:不同发行版包名可能不同,如果找不到某个包,先用 apt search swift 查一下。安装完成后,Swift 的样例配置文件会出现在 /etc/swift/ 下,但此时还不能直接上传对象,因为分布式系统需要 ring 文件 来决定数据该存放在哪。

从 GitHub 仓库查看 OpenStack Swift 的代码与文档入口

三、核心用法:上传你的第一个对象

入门</

项目信息

项目 值
仓库 openstack/swift
语言 Python
Star 2,804
Fork 1,072
主页 https://opendev.org/openstack/swift

参考链接

延伸阅读

想继续探索?这些同领域的教程可能也适合你: