Keystone源码中的创建脚本中并不会创建swift的endpoint,因此还需要手动创建一个:
keystone service-list keystone endpoint-create --region RegionOne --service_id 00217d2721e94cee9f4c27c8c2f89f52 --publicurl 'http://10.61.2.12:8888/v2/AUTH_$(tenant_id)s'--adminurl 'http://10.61.2.12:8888/' --internalurl'http://10.61.2.12:8888/v2/AUTH_$(tenant_id)s'
命令中的service_id的值是通过keystone service-list查询到的swift的id,如果原来在安装keystone的时候没有创建swift的service的话还需要手动创建,命令可参考sample_data.sh文件或者运行keystone help service-create
需要在原来的.openstackrc中添加一个ST_USER变量,这里ST_USER中的service表示用户所在的tenant,nova表示用户名,现在的内容如下
export OS_USERNAME=nova export ST_USER=service:nova export OS_PASSWORD=service123 export OS_TENANT_NAME=service export OS_AUTH_URL=http://127.0.0.1:5000/v2.0
1. 列出当前状态
2. 创建一个名为mycontainer的container并上传小文件install.tar.gz
3. 分片并行上传大于5G的大文件x6402.GHO到mycontainer,swift默认单个文件最大5G,对于大于5G的文件必须分片上传,如下命令是将将7G的大文件分成1G大小的片断上传,上传时间大约十分钟
4. 列出mycontainer中的文件
5. 下载小文件
6. 下载大文件,时间约为4分钟
7. 删除文件
Glance原来采用的是文件系统存储,现在swift已经搭好当然得让glance用上。首先删除OpenStack中所有的测试实例,删除glance中所有的测试镜像。
修改/etc/glance/glance-api.conf以下选项
defualt_store = swift swift_store_auth_address = http://127.0.0.1:5000/v2.0/ swift_store_user = service:glance swift_store_key = service123 swift_store_create_container_on_put = True
glance-control all restart
glance addname="tty-linux-kernel" disk_format=aki container_format=aki <ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz glance add name="tty-linux-ramdisk" disk_format=aricontainer_format=ari < ttylinux-uec-amd64-12.1_2.6.35-22_1-loader glance add name="tty-linux" disk_format=ami container_format=amikernel_id=b4c7e967-2830-45ed-a353-47712242b9c4ramdisk_id=ee36a367-0a5e-421e-9b04-89c5a3920e71 < ttylinux-uec-amd64-12.1_2.6.35-22_1.img
修改创建实例时找不到镜像的问题,方法如下:
https://github.com/openstack/glance/commit/fa82103f1cdb9bb26473df3a4ee9ddc077c0541e
vim /usr/lib/python2.6/site-packages/glance-2012.1-py2.6.egg/glance/store/swift.py按下图修改
北方工业大学 | 云计算研究中心 | 姜永