文章内容

2025/11/13 8:38:26,作 者: 黄兵

OpenStack Swift 单节点部署

OpenStack Swift 安装时最常见的“存储节点准备”问题。因为 Swift 需要有独立的磁盘或目录来存放对象数据(object/account/container 数据),而你现在的 VPS 只有一块系统盘 /dev/sda1。我们可以用两种方式解决这个问题:

✅ 一、【推荐方案】使用一个目录模拟磁盘(开发/测试环境)

如果只是测试或单节点部署(SAIO / All-in-One),可以直接在系统盘上创建几个目录,模拟挂载点,而不需要额外磁盘:

# 创建存储挂载点目录
mkdir -p /srv/node/sdb1
mkdir -p /srv/node/sdb2

# 修改 /etc/fstab 让它们作为挂载点(临时绑定)
# 注意,这里不是真实磁盘,只是绑定到本地目录
mount --bind /srv/node/sdb1 /srv/node/sdb1
mount --bind /srv/node/sdb2 /srv/node/sdb2

# 验证挂载
df -h /srv/node/

然后把这两行加进 /etc/fstab(防止重启后失效):

/srv/node/sdb1 /srv/node/sdb1 none bind 0 0
/srv/node/sdb2 /srv/node/sdb2 none bind 0 0

这样 Swift 的配置(/etc/swift/account-server.confcontainer-server.confobject-server.conf)里用到的 devices = /srv/node 就能找到“磁盘”了。

✅ 二、【更规范方案】创建虚拟磁盘文件并挂载(适合单节点模拟多盘)

如果你希望模拟真实磁盘,可以创建 loop 设备:

# 创建 2 个 10GB 的虚拟磁盘文件
mkdir -p /swift-disks
cd /swift-disks
dd if=/dev/zero of=disk1.img bs=1G count=10
dd if=/dev/zero of=disk2.img bs=1G count=10

# 格式化为 XFS(Swift 推荐 XFS)
mkfs.xfs disk1.img
mkfs.xfs disk2.img

# 挂载
mkdir -p /srv/node/sdb1 /srv/node/sdb2
mount -o loop,noatime,nodiratime,logbufs=8 /swift-disks/disk1.img /srv/node/sdb1
mount -o loop,noatime,nodiratime,logbufs=8 /swift-disks/disk2.img /srv/node/sdb2

# 验证
df -h | grep /srv

然后同样在 /etc/fstab 里添加持久挂载:

/swift-disks/disk1.img /srv/node/sdb1 xfs loop,noatime,nodiratime,logbufs=8 0 0
/swift-disks/disk2.img /srv/node/sdb2 xfs loop,noatime,nodiratime,logbufs=8 0 0

✅ 三、如果你的 VPS 支持挂载新磁盘

如果你的云服务商(比如 Hetzner、DigitalOcean、阿里云)允许添加数据盘,那么:

  • 在控制台添加一块新磁盘;
  • SSH 登录后执行:
lsblk

      • 找到新的磁盘,比如 /dev/sdb
      • 格式化并挂载:
      mkfs.xfs /dev/sdb
      mkdir -p /srv/node/sdb1
      mount /dev/sdb /srv/node/sdb1
      
      • 添加到 /etc/fstab
      /dev/sdb /srv/node/sdb1 xfs noatime,nodiratime,logbufs=8 0 0

      ✅ 四、Swift 配置中需要对应修改的地方

      确保在以下配置文件中指定挂载路径一致:

      • /etc/swift/account-server.conf

      • /etc/swift/container-server.conf

      • /etc/swift/object-server.conf

      [DEFAULT]
      devices = /srv/node
      mount_check = true


      其它相关推荐:

      1、Ubuntu 22.04 安装 OpenStack Swift

      2、Ubuntu 22.04 安装 OpenStack Swift 存储策略

      3、OpenStack Swift 配置 Memcached

      4、OpenStack Swift 自定义认证中间件

      5、如何卸载 OpenStack Swift

      分享到:

      发表评论

      评论列表