Swift 大文件问题
2013-03-25 11:25
162 查看
大文件问题
官方在线文档:http://docs.openstack.org/developer/swift/overview_large_objects.html
传输超过5G的大文件时,需要使用-S参数,指定将大文件分块存储,-S 指明了分块的大小。例如:swift –V 2.0 –A http://localhost:5000/v2.0-U admin:admin -K adminpasswd upload test-container –S
1073741824 big_file
这个命令将文件big_file分块传输,块的大小为1073741824字节,也就是1G。假如big_file大小为10G,那么客户端(这里指python-swiftclient)会将文件切分为10块,而且可以并行上传这些分块。
问题一:从上面的命令中可以看出,提供认证的keystone服务和swift部署在了同样一台服务器上,在upload阶段,swift的account server会与keystone交互,大文件分块并行上传时,本地服务器带宽几乎被占满,很容易造成account server与keystone服务器交互发生超时,使得大文件上传失败。(proxy日志中可看出)
解决思路:部署时将keystone和swift分开,keystone和swift的proxyserver之上都加一层负载均衡。
问题二:swift的data目录下,有一个tmp目录,用来临时保存上传的文件。问题一中的认证超时会造成若干文件块上传失败,失败后swift并不会将tmp目录清空,与这次未成功的上传相关的临时文件没有被删除,这可能导致服务器存储空间的大量浪费。
解决思路:改进swift object server
官方在线文档:http://docs.openstack.org/developer/swift/overview_large_objects.html
传输超过5G的大文件时,需要使用-S参数,指定将大文件分块存储,-S 指明了分块的大小。例如:swift –V 2.0 –A http://localhost:5000/v2.0-U admin:admin -K adminpasswd upload test-container –S
1073741824 big_file
这个命令将文件big_file分块传输,块的大小为1073741824字节,也就是1G。假如big_file大小为10G,那么客户端(这里指python-swiftclient)会将文件切分为10块,而且可以并行上传这些分块。
问题一:从上面的命令中可以看出,提供认证的keystone服务和swift部署在了同样一台服务器上,在upload阶段,swift的account server会与keystone交互,大文件分块并行上传时,本地服务器带宽几乎被占满,很容易造成account server与keystone服务器交互发生超时,使得大文件上传失败。(proxy日志中可看出)
解决思路:部署时将keystone和swift分开,keystone和swift的proxyserver之上都加一层负载均衡。
问题二:swift的data目录下,有一个tmp目录,用来临时保存上传的文件。问题一中的认证超时会造成若干文件块上传失败,失败后swift并不会将tmp目录清空,与这次未成功的上传相关的临时文件没有被删除,这可能导致服务器存储空间的大量浪费。
解决思路:改进swift object server
相关文章推荐
- swift 操作.plist文件 ,解决覆盖的问题
- Swift学习中遇到的小坑 - pods中导入的Object-C文件在桥接文件中写入找不到的问题
- Swift - pods中导入的Object-C文件在桥接文件中写入找不到的问题
- 解决IIS6上传文件尺寸太小问题
- SQL Server 安装问题:以前的某个程序安装已在安装计算机上创建挂起的文件操作
- 海康威视采集卡 sdk 的包含文件问题
- hbase修复.META.表与HDFS文件不一致问题
- linux中关于文件描述符标志和文件状态标志的问题?
- 关于CSV文件 Excel打开乱码问题的解决方案
- android .R文件无法生成的问题
- 解决Struts2文件上传的大小限制问题
- Xcode配置文件不匹配问题
- java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题
- 在struts-config.xml配置文件顺序异常的问题
- 读写同一个文件出问题
- 解决Windows2003, XP搜索不到文件的问题!
- cocoStudioAnimationEditor中引用texturePacker的Plist文件的问题
- struts2 上传文件 找不到路径问题
- ajaxfileupload_v.js 解决js版本不兼容,多文件上传不解析json的问题