测试环境介绍
1. boto 版本2.46.1
2. s3cmd version 1.6.1
3. ceph version: 12.0.1/12.0.0/10.2.6
4. OS:Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux
新功能对比
| 功能 | hammer | jewel(10.2.6) | Luminous(12.0.0&12.0.1) |
|---|---|---|---|
| AWS4认证 | No | Yes | Yes |
| versioning | Yes (有坑) | Yes | Yes |
| static website | No | Yes | Yes |
| lifecycle | No | No | Yes |
| CORS | Yes | Yes | Yes |
| compression | No | No | Yes |
| torrent | No | No | Yes |
jewel 10.2.6版本兼容性测试列表
| 功能 | AWS2 | AWS4 | 备注 |
|---|---|---|---|
| List Buckets | Yes | Yes | |
| Create Bucket | Yes | Yes | |
| Delete Bucket | Yes | Yes | |
| Bucket Lifecycle | No | No | K以上版本才有,只有expired设置,且暂时只支持AWS2 |
| Bucket ACLs | Yes | Yes | |
| Bucket Website | Yes | Yes | |
| Bucket Object versioning | Yes | Yes | 功能可用,稳定性还需压测 |
| Bucket Location | Yes | Yes | |
| Bucket Notification | No | No | |
| Bucket Request Payment | No | No | 只能GET |
| Bucket Tagging | No | No | 只能GET,目前和List Object返回同样结果 |
| Bucket CORS | Yes | Yes | |
| Get Bucket Info | Yes | Yes | |
| GET Object | Yes | Yes | |
| GET Object torrent | No | No | K以上版本才有,有坑 |
| Get Object Info(HEAD) | Yes | Yes | |
| Object ACLs (Get, Put) | Yes | Yes | |
| PUT Object | Yes | Yes | |
| POST Object | Yes | No | AWS4支持还在开发中 |
| Copy Object | Yes | YES | |
| DELETE Object | Yes | YES | |
| List Object | Yes | Yes | |
| Multipart Uploads | Yes | YES | part-copy 在K版本以上才能用 |
测试总结
从生产系统选型来看,jewel的S3接口相对于hammer有了比较大的提升,从测试结果来看AWS4能够覆盖大部分功能,功能上基本上能够兼容大部分语言的SDK(POST object还缺少AWS4支持),推荐如果新上的业务系统可以优先采用jewel。作为下个LTS版本的Luminous,目前功能和稳定性还不是很健全,可以作为测试选型对比,短期内不可用于生产。
其他问题
-
lifecycle bug
测试发现lifecycle bug,预计下个版本的12.0.2会fix
tracker.ceph.com/issues/1928…
github.com/ceph/ceph/p… -
POST object with AWS4 进展
tracker.ceph.com/issues/1880…