首先什么是Riak-cs,我来说明一下使用Riak CS (Cloud Storage),它的底层是Riak开源软件.Riak的CS的API是Amazon S3兼容,所以来说部署这套系统可以像使用S3这种方便
1.安装Riak-cs(centos5)
Riak-cs是erlang写的,所以要进行erlang安装或是编译,riak-cs-2.1.1所使用erlang是要R16B02之后版本号,我现在测试中使用这个,相关安装和编译这里不进行详细说明可以到erlang官网找到相关版本号进行安装这个运行环境
安装步骤:https://packagecloud.io/basho/riak-cs/packages/el/5/riak-cs-2.1.1-1.x86_64.rpm 进行安装。
也可以自行手动yum进行安装,在/etc/yum.rep.d下面新建一个文件basho.repo,这个内容如下:
[basho_riak-cs]
name=basho_riak-cs
baseurl=https://packagecloud.io/basho/riak-cs/el/5/$basesearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
采用yum -y install riak riak-cs riak-cs-control stanchion 进行执行安装
我自己方式由于太慢了。我把它通过vpn相关文件下载到自己服务器上面相关在安装文件如下:
riak-1.4.12-1.el5.x86_64.rpm
riak-cs-2.1.1-1.x86_64.rpm
riak-cs-control-1.0.2-1.el5.x86_64.rpm
stanchion-1.5.0-1.el5.x86_64.rpm
然后大家就是按我这个文件顺序进行rpm -ivh raik-xxxx.rpm进行安装
由于如果你操作系统不同的庆可能要使用不同方式。可以参考上面这个链接来完成安装
2.配置Riak-cs
安装完成相关配置 在/etc/riak,/etc/riak-cs,/etc/riak-cs-control,/etc/stanchion,如果是一个测试方面本机可以暂时不用修改什么配置文件,主要在自己/etc/riak/app.config中加入几个内容:
riak Core Config
中加入下面这个内容:
{default_bucket_props, [{allow_mult, true}]},
Riak KV config 中加入下面内容:
{add_paths, ["/usr/lib64/riak-cs/lib/riak_cs-2.1.1/ebin"]},
{storage_backend, riak_cs_kv_multi_backend},
{multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
{multi_backend_default, be_default},
{multi_backend, [
{be_default, riak_kv_eleveldb_backend, [
{max_open_files, 50},
{data_root, "/var/lib/riak/leveldb"}
]},
{be_blocks, riak_kv_bitcask_backend, [
{data_root, "/var/lib/riak/bitcask"}
]}
]},
加完后进行把相关服务进行启动:
/sbin/service riak start
/sbin/service stanchion start
/sbin/service riak-cs start
/sbin/service riak-cs-control start
相关这几个服务我就不多说是什么,可以百度或是谷歌一下。
3.客户端进行使用和测试(s3cmd)
curl -X POST -H 'Content-Type: application/json' --data '{"email":"songfu@xxx.com", "name":"songfu zhang"}' http://localhost:8080/riak-cs/user 创建riak-cs用户和用户相关使用两个键,如果你对于s3使用熟悉的话就是不用多说这个是用来做什么使用。主要创建成功会返回:
{"email":"songfu@xxx.com","display_name":"songfu","name":"zhangsongfu","key_id":"TCFPSOTBRJ8K7H1VWRDP","key_secret":"7RWCfc-Mf3Hrd_eiz9xx-mQ_z03_6dJNdGr4fA==","id":"9b0ca595369f9b1743ef771691a8e0753868739fb245717e3dcb4a923fa8dd47","status":"enabled"}
如果出现上面这个提示就代表你的riak-cs是安装成功也是没有什么问题。
我这里使用s3cmd,因为我的本机上面python2.5的。所以使用easy_install s3cmd==1.0.0来安装这个内容,等待安装完毕后就像使用s3这种使用
在自己用户根目录下面建一个文件.s3cfg,文件内容如下:
[default]
access_key = TCFPSOTBRJ8K7H1VWRDP
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
enable_multipart = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/local/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase = password
guess_mime_type = True
host_base = s3.amazonaws.com
host_bucket = %(bucket)s.s3.amazonaws.com
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host = localhost
proxy_port = 8080
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key = 7RWCfc-Mf3Hrd_eiz9xx-mQ_z03_6dJNdGr4fA==
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = False
verbosity = WARNING
signature_v2=True
好是现在可以像s3这样来使用这个分布式存储了。
s3cmd mb s3://zhangsongfu 创建BUCKET(我就是所说存储桶)
s3cmd ls 显示当前所有存储桶
s3cmd put file.txt s3://zhangsongfu/ 上传文件到存储桶中,当然这个上传文件权限默认只针对这个用户来下载,浏览,修改更新,如果让大家都有下载,浏览下可以使用:
s3cmd put --acl-public file.txt s3://zhangsongfu
s3cmd get s3://zhangsongfu/file.txt 本地目录 下载文件到自己本地或是服务器上面
当然我现在说的客户端只是命令行方式,因为兼容s3所以你可以把S3相关Php,Java,Python所写的客户端程序进行一些小型修改就可以把客户端这边写好给自己开发人员进行使用。先说到这里有问题可以在留言进行咨询
文章评论
你好,这个我应该如何部署。