• OpenStackSwift 下安装
    • 准备工作
    • 修改 seafile.conf 文件

    OpenStackSwift 下安装

    Note: Seafile 服务器 5.0.0 之后,所有配置文件都移动到了统一的 conf 目录下。 了解详情.

    从专业版服务器的 2.0.5 版本开始,Seafile 可以使用兼容 S3 的云存储(比如 OpenStack/Swift)作为后端。这篇文档将以使用 Swift 为例。

    准备工作

    首先您需要为 Swift 启用 S3 的模拟中间件。有关说明可以参考以下链接:

    • http://www.buildcloudstorage.com/2011/11/s3-apis-on-openstack-swift.html
    • http://docs.openstack.org/grizzly/openstack-compute/admin/content/configuring-swift-with-s3-emulation-to-use-keystone.html

    成功安装设置 S3 中间件后,您就可以用任何 S3 的客户端访问它了。在 Swift 中,访问的 key id 作为用户名 secret key 作为用户的密码。下一步您要做的就是为 Seafile 创建 buckets。使用 Python 的 boto 库您可以这样做:

    1. import boto
    2. import boto.s3.connection
    3. connection = boto.connect_s3(
    4. aws_access_key_id='swifttest:testuser',
    5. aws_secret_access_key='testing',
    6. port=8080,
    7. host='swift-proxy-server-address',
    8. is_secure=False,
    9. calling_format=boto.s3.connection.OrdinaryCallingFormat())
    10. connection.create_bucket('seafile-commits')
    11. connection.create_bucket('seafile-fs')
    12. connection.create_bucket('seafile-blocks')

    修改 seafile.conf 文件

    将下面几行追加到 seafile.conf 文件中

    1. [block_backend]
    2. name = s3
    3. bucket = seafile-blocks
    4. key_id = swifttest:testuser
    5. key = testing
    6. host = <swift-proxy-server-address>:8080
    7. path_style_request = true
    8. memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100
    9. [commit_object_backend]
    10. name = s3
    11. bucket = seafile-commits
    12. key_id = swifttest:testuser
    13. key = testing
    14. host = <swift-proxy-server-address>:8080
    15. path_style_request = true
    16. memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100
    17. [fs_object_backend]
    18. name = s3
    19. bucket = seafile-fs
    20. key_id = swifttest:testuser
    21. key = testing
    22. host = <swift-proxy-server-address>:8080
    23. path_style_request = true
    24. memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100

    为了提高性能,Seafile 会在 memcached 中缓存小的 objects。所以强烈建议您安装并且运行 memcached。最好是为 Seafile 提供一个专门的 memcached 实例并为其分配 128MB 的内存空间。