中文
注册

安装Swift

Swift提供了弹性可伸缩、高可用的分布式对象存储服务,适合存储大规模非结构化数据。请在控制节点和存储节点安装Swift。

在控制节点安装和配置Swift

  1. 创建Swift服务凭证。
    1. 创建swift用户。
      openstack user create --domain default --password-prompt swift
    1. 将用户swift添加到项目service中,并授予swift用户以admin角色。
      openstack role add --project service --user swift admin
    2. 创建swift服务实体。
      openstack service create --name swift --description "OpenStack Object Storage" object-store

    密码请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”

  2. 创建swift API端点。
    openstack endpoint create --region RegionOne object-store public http://controller:8080/v1/AUTH_%\(project_id\)s 
    openstack endpoint create --region RegionOne object-store internal http://controller:8080/v1/AUTH_%\(project_id\)s 
    openstack endpoint create --region RegionOne object-store admin http://controller:8080/v1
  3. 安装软件包。
    yum install openstack-swift-proxy python3-swiftclient python3-keystoneclient python3-keystonemiddleware memcached
  4. 配置proxy-server相关配置。Swift RPM包里已经包含了一个基本可用的proxy-server.conf,只需要手动修改其中的swift password即可。
    1. 打开文件。
      vi /etc/swift/proxy-server.conf
    2. 按“i”进入编辑模式,修改变量。
      [filter:authtoken]
      password = SWIFT_PASSWORD

      SWIFT_PASSWORD为swift用户的密码。

    3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。

在存储节点安装Swift

  1. 安装和配置存储支持的程序包。
    yum install xfsprogs rsync

    如果用户不需要容灾功能,2~6中只需要一个存储设备即可,同时可以跳过下面的rsync配置,即7~8

  2. 选择两个闲置的存储设备并格式化为XFS格式,以下命令示例中使用的是vdb、vdc,请根据实际情况修改。
    mkfs.xfs -f /dev/vdb 
    mkfs.xfs -f /dev/vdc
  3. 创建挂载点目录结构。
    mkdir -p /srv/node/vdb 
    mkdir -p /srv/node/vdc
  4. 找到新分区的UUID。
    blkid
  5. 编辑“/etc/fstab”文件并将以下内容添加到其中。
    UUID="<UUID-from-output-above>" /srv/node/vdb xfs noatime 0 2 
    UUID="<UUID-from-output-above>" /srv/node/vdc xfs noatime 0 2
  6. 挂载设备。
    mount /srv/node/vdb
    mount /srv/node/vdc
  7. 可选:创建或编辑“/etc/rsyncd.conf”文件以包含以下内容。

    如果用户不需要容灾功能,请跳过此步骤。

    1. 打开文件。
      vi /etc/rsyncd.conf
    2. 修改文件,使文件包含以下内容。
      [DEFAULT] 
      uid = swift 
      gid = swift 
      log file = /var/log/rsyncd.log 
      pid file = /var/run/rsyncd.pid 
      address = MANAGEMENT_INTERFACE_IP_ADDRESS 
       
      [account] 
      max connections = 2 
      path = /srv/node/ 
      read only = False 
      lock file = /var/lock/account.lock 
       
      [container] 
      max connections = 2 
      path = /srv/node/ 
      read only = False 
      lock file = /var/lock/container.lock 
       
      [object] 
      max connections = 2 
      path = /srv/node/ 
      read only = False 
      lock file = /var/lock/object.lock

      将MANAGEMENT_INTERFACE_IP_ADDRESS替换为当前节点上管理网络的IP地址。

  8. 启动rsyncd服务并配置它在系统启动时启动。
    systemctl enable rsyncd.service 
    systemctl start rsyncd.service
  9. 安装软件包。
    yum install openstack-swift-account openstack-swift-container openstack-swift-object
  10. 修改“/etc/swift”目录中的account-server.conf、container-server.conf和object-server.conf文件,将bind_ip替换为当前节点上管理网络的IP地址。
  11. 确保挂载点目录结构的正确所有权。
    chown -R swift:swift /srv/node
  12. 创建recon目录并确保其拥有正确的所有权。
    mkdir -p /var/cache/swift
    chown -R root:swift /var/cache/swift
    chmod -R 775 /var/cache/swift

在控制节点配置环

  1. 创建账号环。
    1. 切换到“/etc/swift”目录。
      cd /etc/swift
    2. 创建基础account.builder文件。
      swift-ring-builder account.builder create 10 1 1
    3. 将每个存储节点添加到环中。
      swift-ring-builder account.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6202  --device DEVICE_NAME --weight DEVICE_WEIGHT
      • 将STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS替换为存储节点上管理网络的IP地址。
      • 将DEVICE_NAME替换为存储设备名称,如sda。
      • DEVICE_WEIGHT表示设备搜索权重,表示该设备所在节点在哈希环中对应的虚拟节点数,一般取100。
    4. 验证环内容。
      swift-ring-builder account.builder
    5. 重新平衡环。
      swift-ring-builder account.builder rebalance
  2. 创建容器环。
    1. 切换到“/etc/swift”目录。
      cd /etc/swift
    2. 创建基础container.builder文件。
      swift-ring-builder container.builder create 10 1 1
    3. 将每个存储节点添加到环中。
      swift-ring-builder container.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6201 --device DEVICE_NAME --weight DEVICE_WEIGHT
      • 将STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS替换为存储节点上管理网络的IP地址。
      • 将DEVICE_NAME替换为存储设备名称,如sda。
      • DEVICE_WEIGHT表示设备搜索权重,表示该设备所在节点在哈希环中对应的虚拟节点数,一般取100。
    4. 验证环内容。
      swift-ring-builder container.builder
    5. 重新平衡环。
      swift-ring-builder container.builder rebalance
  3. 创建对象环。
    1. 切换到“/etc/swift”目录。
      cd /etc/swift
    2. 创建基础object.builder文件。
      swift-ring-builder object.builder create 10 1 1
    3. 将每个存储节点添加到环中。
      swift-ring-builder object.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6200 --device DEVICE_NAME --weight DEVICE_WEIGHT
      • 将STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS替换为存储节点上管理网络的IP地址。
      • 将DEVICE_NAME替换为存储设备名称,如sda。
      • DEVICE_WEIGHT表示设备搜索权重,表示该设备所在节点在哈希环中对应的虚拟节点数,一般取100。
    1. 验证环内容。
      swift-ring-builder object.builder
    2. 重新平衡环。
      swift-ring-builder object.builder rebalance
  4. 安装Swift。
    1. 打开“/etc/swift/swift.conf”文件。
      vi /etc/swift/swift.conf
    2. 按“i”进入编辑模式,添加如下内容,用唯一值替换test-hash。
      [swift-hash] 
      swift_hash_path_suffix = test-hash 
      swift_hash_path_prefix = test-hash 
       
      [storage-policy:0] 
      name = Policy-0 
      default = yes
    3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
    4. 将swift.conf文件复制到每个存储节点和运行代理服务的任何其他节点上的“/etc/swift”目录。
    5. 在所有节点上,确保配置目录的正确所有权。
      chown -R root:swift /etc/swift
    6. 在控制节点和运行代理服务的任何其他节点上,启动对象存储代理服务及其依赖项,并将它们配置为在系统启动时启动。
      systemctl enable openstack-swift-proxy.service memcached.service
      systemctl start openstack-swift-proxy.service memcached.service

启动服务

在存储节点上,启动对象存储服务并将它们配置为在操作系统启动时启动。
systemctl enable openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service 
systemctl start openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service 
systemctl enable openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service 
systemctl start openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service 
systemctl enable openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service 
systemctl start openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词