前两天的云计算大会上看到很多公司的产品、服务。和去年大会上的产品相比,有很大的进步。在我们公司展位旁边的一个做云计算的公司,竟然也做了openstack相关的工作,听起来他们和新浪交流的挺多。
他提到Openstack的开发,最好现在是修改bug,而不是基于openstack做开发,说由于Openstack的开发速度很快,各个模块,api变化也快。
这几天由于工作中需要又看了下Openstack。我们公司有一个分布式的SAN存储,想到可以给openstack
开发一个驱动,来在openstack
中把我们的san存储做为卷服务(nova/volume/driver.py)。就试了试,现在只是简单实现了创建,删除,attach,
detach这四个操作。
基于的Openstack版本比较老(新版本有不同的调用方式):2011.3.2-b2987.noarch,
开发环境使用的是:
http://openstack.griddynamics.com/setup_single.html
,centos6.2系统。
想过弄一个界面给swift,可以上传下载什么的。最近想到可以弄个ftpserver,这样会不会更好呢,
下面就是一个粗糙的实现,
下面是代码的链接,希望有同学可以感兴趣。
https://github.com/zz2/zftp
1,
注意 default_swift_cluster =
local#https://192.168.56.10:8080/v1
这个配置,没有加上这句的话,没能成功。
root@swift-proxy:~# python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type 'help', 'copyright', 'credits' or 'license' for more
information.
>>> import swift
>>> swift.__version__
'1.4.4'
>>> import swauth
>>> swauth.__version__
'1.0.3.dev'
>>>
root@swift-proxy:~# cat /etc/swift/proxy-server.conf
[DEFAULT]
cert_file = /etc/swift/cert.crt
key_file = /etc/swift/cert.key
bind_port = 8080
workers = 8
user = swift
[pipeline:main]
#pipeline = healthcheck cache tempauth proxy-server
pipeline = healthcheck cache swift3 swauth proxy-server
[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
log_facility = LOG_LOCAL1
原文链接:
1,
http://simple-is-better.com/news/553
2,
http://blog.qiusuo.dotcloud.com/2011/07/10/transfer-encoding的作用/#comment-187
今天使用swift里面的wsgi server,写一个上传下载文件的应用。使用httplib客户端,
遇到一个问题,就是Transfer-Encoding的问题,最终在上面的链接中找到了答案,
By admin on July 10, 2011
通过HTTP传送数据时,有些时候并不能事先确定body的长度,因此无法得到
openstack
swift存放大量的小文件如何呢?一个account下存放多少个container,或者一个container下存放多少个文件最优呢?下面这篇文章中有提到,
推荐看原链接
http://adrianotto.com/2010/09/openstack-os-is-great-for/
如果原链接访问不了,就看下面的

。文章的下面有读者和原作者的问答,值得一读。
OpenStack Object Storage is Great For…
Soon, the
在最近的测试中,需要多次格式化整个集群,磁盘数量较多,并且还要添加label,就写了下面一个协助的脚本
卸载,格式化,添加label,修改/etc/fstab,再挂载,
#!/usr/bin/bash
new_type='ext3'
old_type='ext4'
time=`date +%s`
df -h >df_h_${time}.bak
cp /etc/fstab fstab_${time}.bak
echo 'time:'${time}
for disk in `df -h |grep '/my/mount/prefix/'|awk '{print
$1}'`
do
label=`e2label ${disk}`
umount $disk
mkfs -t $new_type $disk
e2label $disk $label
n=`grep -n 'LABEL='$label /etc/fstab|awk
-F':LABEL' '{print $1}'`
echo $n
sed -i ${n}s/${old_type}/${new_type}/g
/etc/fstab
echo $disk, $label
echo '==============================='
mount $disk
done
在工作中有一个sqlite数据库,里面存放的是临时的数据,所以就考虑放入到数据库中,
在Linux 下,直接把数据库的位置配到/dev/shm即可,
1,
修改settings.py
DATABASE_NAME =
'/dev/shm/zz2.db'
# Or path to database file if using sqlite3.
2,
修改models.py,为了在程序每次启动是,自动添加用户名,密码
signals.post_syncdb.disconnect(
create_superuser,
sender=auth_models,
dispatch_uid =
'django.contrib.auth.management.create_superuser')
def create_whsuser(app, created_models, verbosity, **kwargs):
try:
auth_models.User.objects.get(username='root')
except auth_models.User.DoesNotExist:
print '*' * 80
&nb
Swift State of the Project Fall 2011
Swift has been running
in production at Rackspace for over a year with near 100% uptime.
Rackspace’s swift clusters store billions of objects and petabytes
of data. Several companies, including Internap, KT, SDSC, HP, and
others, have also deployed and are running swift clusters in
production. These clusters range in size from fairly small to
several petabytes. Other organizations, including CERN, are
evaluating swift for production use. Overall, swift is a
success.
Swift’s active developers are all currently Rackspace employees.
Other companies have talked about features and promised to
contribute code, but so far, no major patches have been
forthcoming. Unfortunately this
原文链接:
http://chayegg.com/index.php/2011/08/webpy_middleware/
今天在找web.py 和sqlite3的一个问题是,遇到下面这个页面, 就转载收藏下。
web.py的中间件和钩子
web.py有添加中间件和钩子的功能
钩子在web.py的cookbook中有介绍,
中间件可以理解为app的钩子,起作用范围
可以大致通过web.ctx是否初始化看出来
中间件是一个callable的对象,初始化参数是app,
调用参数就是app的调用参数
下面的代码说明了两种创建中间件的方式(def定义和class定义),
以及中间件和钩子的执行顺序