你好,游客 登录 注册 搜索
背景:
阅读新闻

在Ubuntu上安装OpenStack的Swift组件-installing openstack object storage

[日期:2013-08-01] 来源:Linux社区  作者:zoushidexing [字体: ]

创建或检查vim /etc/swift/object-server.conf

  1. [DEFAULT]
  2. devices = /sdb1
  3. mount_check = false
  4. bind_ip = 0.0.0.0
  5. bind_port = 6000
  6. workers = 2
  7. [pipeline:main]
  8. pipeline = object-server
  9. [app:object-server]
  10. use = egg:swift#object
  11. [object-replicator]
  12. [object-updater]
  13. [object-auditor]

注意去掉:object-expirer 

启动storage service:

  1. swift-init object-server restart
  2. swift-init object-replicator restart
  3. swift-init object-updater restart
  4. swift-init object-auditor restart
  5. swift-init container-server restart
  6. swift-init container-replicator restart
  7. swift-init container-updater restart
  8. swift-init container-auditor restart
  9. swift-init account-server restart
  10. swift-init account-replicator restart
  11. swift-init account-auditor restart
 
  1. 也可以用命令
 
  1. swift-init all restart

4.安装和配置Proxy Node

  1. apt-get install swift-proxy swift-doc memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

为ssl建立签名证书

  1. cd /etc/swift
  2. openssl req -new -x509 -nodes -out cert.crt -keyout cert.key


修改/etc/memcched.conf

  1. -l 127.0.0.1
  2. #改为proxy节点的ip
  3. -l 10.214.0.181

重新启动memcached服务

  1. service memcached restart

新建 vim /etc/swift/proxy-server.conf

  1. [DEFAULT]
  2. bind_port = 8080
 
  1. bind_ip = 10.214.0.181
  2. user = swift
 
  1. [pipeline:main]
  2. pipeline = catch_errors healthcheck cache authtoken keystone proxy-server
  3. [app:proxy-server]
  4. use = egg:swift#proxy
  5. account_autocreate = true
  6. [filter:keystone]
  7. paste.filter_factory = keystone.middleware.swift_auth:filter_factory
  8. operator_roles = admin, swiftoperator
  9. [filter:authtoken]
  10. paste.filter_factory = keystone.middleware.auth_token:filter_factory
  11. # Delaying the auth decision is required to support token-less
  12. # usage for anonymous referrers ('.r:*').
  13. delay_auth_decision = true
  14. service_port = 5000
  15. service_host = 10.214.0.179
  16. auth_port = 35357
  17. auth_host = 10.214.0.179
  18. auth_token =123456
  19. admin_token =123456
  20. auth_protocol = http
  21. auth_uri = http://10.214.0.179:5000/
  22. admin_tenant_name = admin
  23. admin_user = admin
  24. admin_password = 123456
  25. [filter:cache]
  26. use = egg:swift#memcache
 
  1. memcache_servers = 10.214.0.181:11211
  2. set log_name = cache
  3. [filter:catch_errors]
  4. use = egg:swift#catch_errors
  5. [filter:healthcheck]
  6. use = egg:swift#healthcheck


注意:如果你运行多个memcache ,把多个ip:端口添加到在[filter:cache]中,例如:

  1. memcache_servers =10.1.2.3:11211,10.1.2.4:11211

 如果不想用keystone可以用下面的配置内容代替:

  1. [DEFAULT]
  2. bind_port =8080
  3. bind_ip = 10.214.0.181
  4. user = swift
  5. [pipeline:main]
  6. pipeline = healthcheck cache tempauth proxy-server
  7. [app:proxy-server]
  8. use = egg:swift#proxy
  9. allow_account_management = true
  10. account_autocreate = true
  11. [filter:tempauth]
  12. use = egg:swift#tempauth
  13. user_admin_admin = admin .admin .reseller_admin
  14. user_test_tester = testing .admin
  15. user_test2_tester2 = testing2 .admin
  16. user_test_tester3 = testing3
  17. [filter:healthcheck]
  18. use = egg:swift#healthcheck
  19. [filter:cache]
  20. use = egg:swift#memcache
  21. memcache_servers = 10.214.0.181:11211


创建环,建立account,container,object的ring,参数18代表“环”是2^18,参数3 代表每一个存储对象有3份拷贝,当然这是有至少3个storage的情况下,所有的所有服务都在一个节点上,那就写1吧。参数1代表1小时可以移动分区一次(即延迟时间)。

  1. cd /etc/swift
  2. swift-ring-builder account.builder create 18 3 1
  3. swift-ring-builder container.builder create 18 3 1
  4. swift-ring-builder object.builder create 18 3 1

添加ring节点,例如,我们在Zone 1中建立的一个存储节点,ip地址为10.214.0.182,分区为/sdb1, 路径在rsyncd.conf(存储节点)文件path中。100 代表设备的权重。可以根据磁盘的容量设定对应值,比如2T的100,则1T的可以是50。端口要与配置文件中的对应。

  1. swift-ring-builder account.builder add z1-10.214.0.179:6002/sdb1 93
  2. swift-ring-builder container.builder add z1-10.214.0.179:6001/sdb1 93
  3. swift-ring-builder object.builder add z1-10.214.0.179:6000/sdb1 93

注意:假定有若干个zones,每一个zones有一个node。zone应该起始于1,以1递增。例如:swift-ring-builder account.builder add z2-10.214.0.180:6002/sdb1 28

 (为了以后重新建立环境方便,可以把它们写在vim set_devices.sh中: (一条条复制也挺烦的。)

  1. swift-ring-builder account.builder add z1-10.214.0.179:6002/sdb1 93
  2. swift-ring-builder container.builder add z1-10.214.0.179:6001/sdb1 93
  3. swift-ring-builder object.builder add z1-10.214.0.179:6010/sdb1 93
  4. swift-ring-builder account.builder add z2-10.214.0.180:6002/sdb1 28
  5. swift-ring-builder container.builder add z2-10.214.0.180:6001/sdb1 28
  6. swift-ring-builder object.builder add z2-10.214.0.180:6010/sdb1 28
  7. swift-ring-builder account.builder add z3-10.214.0.182:6002/sdb1 23
  8. swift-ring-builder container.builder add z3-10.214.0.182:6001/sdb1 23
  9. swift-ring-builder object.builder add z3-10.214.0.182:6000/sdb1 23
  10. swift-ring-builder account.builder
  11. swift-ring-builder container.builder
  12. swift-ring-builder object.builder
 
  1. 执行脚本。

sh set_devices.sh) 

如果添加错了而你有不止到怎么修改,那可以删除/etc/swift下的account.builder、container.builder、 object.builder后重新创建环即重新执行swift-ring-builder account.builder create 18 3 1等。 

核实ring的内容

  1. swift-ring-builder account.builder
 
  1. swift-ring-builder container.builder
  2. swift-ring-builder object.builder

平衡rings

  1. swift-ring-builder account.builder rebalance
  2. swift-ring-builder container.builder rebalance
  3. swift-ring-builder object.builder rebalance

成功之后会在当前目录生成 account.ring.gz 文件,把/etc/swift/下的account.ring.gz, container.ring.gz, and object.ring.gz拷贝到每一个proxy节点和storage节点。 

确定所有的配置文件的权限:

  1. chown -R swift:swift /etc/swift


启动proxy服务

  1. swift-init proxy restart

5.重启服务

  1. swift-init main restart
  2. swift-init rest restart
 
  1. swift-init all restart
Proxy节点:swift-init proxy start

各个Storage节点:swift-init all start

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款