翻译自https://docs.openstack.org/storlets/latest/
Storlets扩展了Swift,能够以安全和隔离的方式在数据附近运行用户定义的计算(称为storlets)。一个storlets是一个编译和打包的代码(例如.jar文件),可以作为任何其他对象上传到Swift。一旦上传,Swift中的数据对象就可以调用storlet。
目录:
Getting Started
系统要求
Ubuntu Server 14.04,总磁盘为10Gb。 用虚拟机不失为一个好主意。
安装向导
保证有一个用户可以无密码sudo。用户做如下工作(ps:这就是s2aio的部署):
sudo apt-get update
sudo apt-get install python-tox python-nose git
git clone https://github.com/openstack/storlets.git
cd storlets
./s2aio.sh install dev host
写-部署-运行一个storlet
浏览StorletSamples目录查看storlet代码示例,并查看tests/functional目录文件来查看部署和调用storlet的示例。
s2aio
s2aio是一个将Swift(与Keystone)和Storlet一起安装的脚本。该脚本允许在被调用的主机上或在Docker容器中进行安装。
要安装在主机上:
确保有一个用户可以sudo没有密码。 该用户只需做:
sudo apt-get update
sudo apt-get install python-tox python-nose git
git clone https://github.com/openstack/storlets.git
cd storlets
./s2aio.sh install dev host
要在Docker容器中安装,请按照相同的步骤替换最后一个命令:
./s2aio.sh install dev docker
如果您的主机上没有安装Docker,则上述脚本将安装docker并使用“vfs”作为docker存储驱动(而不是默认的“aufs”存储驱动)。如果您已经安装了Docker,则可能需要您将其存储驱动更改为“vfs”。创建的Docker容器会运行另一个容器(PS:在host上安装也是会运行一个docker容器的,所以这里是在容器中运行容器),Docker中运行Docker可能需要使用“vfs”存储设备。
当安装在主机上时,该脚本可用于启动和停止所有相关服务,方法如下:
./s2aio.sh stop
以及
./s2aio.sh start
对于Swift data, the s2aio installation利用.img文件上的回环设备。当关闭主机时,.img文件可能会损坏。因此,在长时间可以重新启动的长寿命主机中使用s2aio.sh时,上述停止和启动命令很有用。
安装s2aio的过程和相应问题解决办法
1.检查网络是否通畅
2.设置用户无密码sudo
参考网上资料
vim /etc/sudoers
swift ALL=(ALL) NOPASSWD:ALL
%admin中也加入了NOPASSWD:
不知道有没有用,但是个人感觉,只要第一次sudo输入密码之后,后面几分钟不需要再次输入,运行安装程序也是可以的
3.安装s2aio
修改链接
(1)src/java/build.xml中的http://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/json-simple/json_simple-1.1.jar 替换为国内链接http://www.docjar.com/jar/json_simple-1.1.jar 或
http://maven.ibiblio.org/maven2/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.jar
(2)将install/storlets/role/docker_base_jre_image/tasks/ubuntu_16.04_jre8.yml中的json-simple的链接也替换为http://www.docjar.com/jar/json_simple-1.1.jar 或 http://maven.ibiblio.org/maven2/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.jar
(3)同上,在ubuntu_16.04_jre8.yml中将http://www.slf4j.org/dist/slf4j-1.7.7.tar.gz 的链接替换为http://mirrors.ibiblio.org/ovirt/pub/ovirt-3.5/src/slf4j/slf4j-1.7.7.tar.gz执行
./s2aio.sh install dev host
安装liberasurecode及相关库
sudo pip install jupyter
liberasurecode安装:
https://caden16.github.io/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/ubuntu16.04%E6%90%AD%E5%BB%BAopenstack-swift%E5%8D%95%E6%9C%BA%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/重新执行
./s2aio.sh install dev host
验证
- 启动:
./s2aio.sh start
swift安装验证:在/opt/stack/swift/下运行
./.functests
- 获取权限(在devstack目录下)
- 获取admin权限:
source openrc admin admin
好像直接source openrc
也可以 - 获取demo权限:
source openrc demo demo
- 获取admin权限:
- 获取权限(在devstack目录下)
s2aio安装验证:在storlets/下执行
./.unittests
以及./.functests dev
- 启动: