在 Linux 上挂载 OpenStack Swift——NetDrive 实验性构建

阅读时间 6 分钟 provider-guide openstack linux
Alex
AlexPrincipal Engineer
通过 NetDrive 的 Linux 实验性构建,将 OpenStack Swift 容器挂载为 Ubuntu 挂载点。涵盖 Keystone 凭据、挂载点设置与验证步骤。

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

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

在 Ubuntu 上挂载 OpenStack Swift

NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。

  • Swift 容器会显示为一个普通的 Ubuntu 挂载点
  • 支持 Keystone v2 和 v3 认证
  • 可与 S3、Wasabi 等 20 多种提供商在同一安装中同时运行
WindowsmacOS
下载 Linux 版 NetDrive →

免费试用。提供终身与订阅方案。

为何挂载 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

NetDrive 将云存储账户挂载为本地驱动器——这正是 Linux 版本在挂载点上提供的核心交互

在 Ubuntu 上安装 NetDrive

NetDrive 的 Linux 版本通过 GitHub 分发,而非 Ubuntu 的软件仓库:

  1. 前往 github.com/NetDrive/installer,下载适合你 Ubuntu 版本的发行版。
  2. 按照该仓库的发行说明安装驱动组件——NetDrive 挂载任何内容之前都需要它。
  3. 安装 NetDrive 软件包本身。
  4. 启动 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 — 留空则挂载账户根目录,并将每个容器列为顶级文件夹;填写容器名则直接挂载该容器。

OpenStack Swift 徽标——OpenStack 平台的对象存储组件

分步操作:在 Ubuntu 上连接 OpenStack Swift

  1. 打开 NetDrive 的 Drive Manager,点击 + Add Drive
  2. 从提供商列表中 选择 OpenStack Swift
  3. 输入 Auth URL、Username、Password 和 Project/Tenant Name,如适用还需填写 Region 和 Container Name。
  4. 设置挂载点 — 例如 /mnt/swift-data 这样的路径,或任意你拥有写权限的空目录。
  5. 若需要读写访问,选择 Network Drive;若该主机不应向集群回写任何内容,则选择 Read-only Drive
  6. 点击 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