在 Linux 上挂载 OpenStack Swift——NetDrive 实验性构建
通过 NetDrive 的 Linux 实验性构建,将 OpenStack Swift 容器挂载为 Ubuntu 挂载点。涵盖 Keystone 凭据、挂载点设置与验证步骤。
某数据工程团队运行着自己的 OpenStack 集群,其 Ubuntu 主机上的分析脚本都默认存在一个普通的文件系统路径——open()、pandas.read_csv()、对某个导出目录执行 grep。而实际数据集存放在一个 Swift 容器中,只能通过 Keystone 认证的 HTTPS 调用访问。当替代方案是将该容器挂载到一个常规路径、让现有工具原样读取时,把每个脚本都重写成调用 Swift API 并不划算。

在 Ubuntu 上挂载 OpenStack Swift
NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。
- Swift 容器会显示为一个普通的 Ubuntu 挂载点
- 支持 Keystone v2 和 v3 认证
- 可与 S3、Wasabi 等 20 多种提供商在同一安装中同时运行
免费试用。提供终身与订阅方案。
为何挂载 Swift 而不是调用 API 编写脚本
OpenStack Swift 自带的工具——python-swiftclient 或直接调用 REST 接口——在你能掌控读取代码的情况下没有问题。但对于你无法掌控的场景则不太适用:一条遗留分析管道、一个 tar 任务,或者一位同事那份永远不会被改写成基于对象存储 SDK 的笔记本。NetDrive 会通过挂载点针对该容器解析文件操作,因此任何打开路径的进程都无需修改即可正常工作。
NetDrive 自 3.1 版起就支持 OpenStack Swift,HTTPS 支持则是在 3.1.234 中加入的——Swift 的认证令牌绝不应以明文 HTTP 传输,因此在任何当前安装中都应采用 HTTPS。目前各平台(包括 Linux)推荐使用的版本是 3.19.7。

在 Ubuntu 上安装 NetDrive
NetDrive 的 Linux 版本通过 GitHub 分发,而非 Ubuntu 的软件仓库:
- 前往 github.com/NetDrive/installer,下载适合你 Ubuntu 版本的发行版。
- 按照该仓库的发行说明安装驱动组件——NetDrive 挂载任何内容之前都需要它。
- 安装 NetDrive 软件包本身。
- 启动 NetDrive——首次运行会加载驱动组件,可能提示输入
sudo。
最低支持版本为 Ubuntu 16.04,且该构建仍带有 NetDrive 自家对比页面统一标注的 实验性 标签。Windows 与 macOS 得到了 NetDrive 的大部分测试;在 Linux 上挂载 Swift 很适合开发机或分析节点,但对于尚未自行验证过的无人值守生产任务则不太合适。
连接前需要准备的信息
从你的 OpenStack 管理员或集群的 Horizon 控制台获取以下信息:
- Auth URL — Keystone 身份认证端点,包含版本路径,例如
https://keystone.example.org:5000/v3。 - Username and Password — 你的 OpenStack 凭据(如果你的部署为应用签发了独立于 Horizon 登录的应用凭据,则使用该凭据)。
- Project / Tenant name — 拥有该容器的项目(Keystone v3)或租户(v2)。
- Region — 仅当集群跨越多个区域时才需要。
- Container name — 留空则挂载账户根目录,并将每个容器列为顶级文件夹;填写容器名则直接挂载该容器。

分步操作:在 Ubuntu 上连接 OpenStack Swift
- 打开 NetDrive 的 Drive Manager,点击 + Add Drive。
- 从提供商列表中 选择 OpenStack Swift。
- 输入 Auth URL、Username、Password 和 Project/Tenant Name,如适用还需填写 Region 和 Container Name。
- 设置挂载点 — 例如
/mnt/swift-data这样的路径,或任意你拥有写权限的空目录。 - 若需要读写访问,选择 Network Drive;若该主机不应向集群回写任何内容,则选择 Read-only Drive。
- 点击 Connect。 NetDrive 会完成认证,并将容器挂载到该路径。
在实验性构建上,与其只信任图形界面,不如通过终端确认挂载结果——这是值得做的验证:
mount | grep swift-data
ls /mnt/swift-data

如果目录列表返回为空,先给一个较大的容器一点时间来填充其根目录,不要立即断定出了问题;如果之后仍为空,先检查 Auth URL 和 Project/Tenant name——项目不匹配是 Swift 连接在首次尝试时悄然失败的最常见原因。对于将处理结果写回容器的高写入量任务,NetDrive 会在后台排队执行传输,而不会阻塞触发该操作的进程。

Linux 版本的差异之处
- 发行节奏独立 — Linux 驱动组件按自己的计划发布,与 Windows 和 macOS 版本相互独立。
- 不集成
apt— 更新以 GitHub 发行版的形式提供,而非通过apt upgrade。 - Windows 和 macOS 仍是经过强化的目标平台 — NetDrive 自身的指导将它们视为生产就绪;在你针对自己的硬件和工作负载完成验证之前,Linux 版本会一直标注为实验性。
小结
在 Ubuntu 上挂载 OpenStack Swift,让 Linux 分析主机获得与 NetDrive 在 Windows 和 macOS 上相同的基于路径的访问方式,安装包通过 GitHub 分发,而不是通过 apt。若想了解同一提供商在测试更充分的平台上的用法,请参阅 在 Windows 上通过 NetDrive 挂载 OpenStack Swift 或 在 macOS 上通过 NetDrive 挂载 OpenStack Swift。若想了解在 Ubuntu 上运行 NetDrive 的整体情况,请参阅 在 Ubuntu Linux 上使用 NetDrive。
— Alex, NetDrive