openstack storlets 文档(一)

来源:互联网 发布:sql数据库管理下载 编辑:程序博客网 时间:2024/06/01 10:44

翻译自https://docs.openstack.org/storlets/latest/

Storlets扩展了Swift,能够以安全和隔离的方式在数据附近运行用户定义的计算(称为storlets)。一个storlets是一个编译和打包的代码(例如.jar文件),可以作为任何其他对象上传到Swift。一旦上传,Swift中的数据对象就可以调用storlet。

目录:

    • Getting Started
      • 系统要求
      • 安装向导
      • 写-部署-运行一个storlet
    • s2aio
    • 安装s2aio的过程和相应问题解决办法


Getting Started

系统要求

Ubuntu Server 14.04,总磁盘为10Gb。 用虚拟机不失为一个好主意。

安装向导

保证有一个用户可以无密码sudo。用户做如下工作(ps:这就是s2aio的部署):

sudo apt-get updatesudo apt-get install python-tox python-nose gitgit clone https://github.com/openstack/storlets.gitcd storlets./s2aio.sh install dev host

写-部署-运行一个storlet

浏览StorletSamples目录查看storlet代码示例,并查看tests/functional目录文件来查看部署和调用storlet的示例。


s2aio

s2aio是一个将Swift(与Keystone)和Storlet一起安装的脚本。该脚本允许在被调用的主机上或在Docker容器中进行安装。
安装在主机上:
确保有一个用户可以sudo没有密码。 该用户只需做:

sudo apt-get updatesudo apt-get install python-tox python-nose gitgit clone https://github.com/openstack/storlets.gitcd 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
    • s2aio安装验证:在storlets/下执行./.unittests 以及./.functests dev