在集群上搭建speedy
来源:互联网 发布:济南青少年编程 编辑:程序博客网 时间:2024/06/16 02:42
前一段时间看了glusterfs分布式文件系统,从14年开始一直关注docker,现在导师让结合分布式文件系统和docker的镜像存储做些工作,并且推荐了京东的speedy,这两天一直在实验室集群上安装speedy,因为网上关于这方面的资料特别少,所以将安装过程记下来与大家分析。
首先,介绍一下环境,我用了三台服务器,分别为node01、node02、node03,并且是在root用户下操作的,在上篇文章搭建好的go语言开发环境的基础上,以下操作均是在此条件下进行的,即用户已经设定好了GOPATH和GOROOT变量,此文GOPATH为/home/go/goprojects,GOROOT为/usr/local/go,请参考者换成自己相对应的目录。
第一步,下载安装需要的包并且放入正确目录。
用的ubuntu14.04,首先安装docker_registry的依赖包python-pip,python-dev,liblzma-dev
从https://github.com/jcloudpub/speedy下载speedy解压到/home/go/goprojects/src/github.com/jcloudpub
从https://github.com/gorilla/context下载context、从https://github.com/gorilla/mux下载mux解压到/home/go/goprojects/src/github.com/gorilla
从https://github.com/garyburd/redigo下载redigo解压到/home/go/goprojects/src/github.com/garyburd
从https://github.com/go-sql-driver/mysql下载mysql解压到/home/go/goprojects/src/github.com/go-sql-driver
第二步,进入speedy目录,执行make命令,编译程序
第三步,如果机器上没有安装mysql,安装上
第四步,假设mysql的用户名和密码都是root,建立speedy和metadb数据库,具体命令为 mysql -uroot -proot < docs/speedy.sql
第五步,我是用的node01当作chunkmaster宿主机,ip地址为10.107.18.31,node01、node02、node03上各安装一组chunkserver。在node01上启动chunkmaster,这一步要注意,因为speedy原程序假设mysql的root用户没有密码,所以我们要先改源代码将root用户的密码也改为root。具体方法如下所示:
打开cmd/chunkmaster/main.go,找到第23行,将flag.string()第二个参数的空字符串加上root,保存后退出。之后重新编译该文件,生成chunkmaster替换bin文件中原来的chunkmaster。到此,更改完毕,运行chunkmaster,命令为bin/chunkmaster
第六步,建立描述chunkserver信息的文件serverlist.json,文件的内容为
node01:
[
{"GroupId":1,"Ip":"127.0.0.1","Port":7654},
{"GroupId":1,"Ip":"127.0.0.1","Port":7655},
{"GroupId":1,"Ip":"127.0.0.1","Port":7656}
]
node02:
[
{"GroupId":2,"Ip":"10.107.18.31","Port":7664},
{"GroupId":2,"Ip":"10.107.18.31","Port":7665},
{"GroupId":2,"Ip":"10.107.18.31","Port":7666}
]
node03:
[
{"GroupId":3,"Ip":"10.107.18.31","Port":7674},
{"GroupId":3,"Ip":"10.107.18.31","Port":7675},
{"GroupId":3,"Ip":"10.107.18.31","Port":7676}
]
文件建好后,在三台机器上分别运行命令curl -i -X POST --data @serverlist.json "http://10.107.18.31:8099/v1/chunkserver/batchinitserver",将chunkserver信息传送给chunkmaster
第七步,基于以上的设置运行chunkserver,在三台机器上分别运行
node01:
./bin/spy_server --ip=10.107.18.31 --port=7654 --data_dir=~/spy_data --error_log=./err.log --group_id=1 --master_port=8099 --master_ip=10.107.18.31
./bin/spy_server --ip=10.107.18.31 --port=7655 --data_dir=~/spy_data --error_log=./err.log --group_id=1 --master_port=8099 --master_ip=10.107.18.31
./bin/spy_server --ip=10.107.18.31 --port=7656 --data_dir=~/spy_data --error_log=./err.log --group_id=1 --master_port=8099 --master_ip=10.107.18.31
node02:
./bin/spy_server --ip=10.107.18.32 --port=7664 --data_dir=~/spy_data --error_log=./err.log --group_id=2 --master_port=8099 --master_ip=10.107.18.31
./bin/spy_server --ip=10.107.18.32 --port=7665 --data_dir=~/spy_data --error_log=./err.log --group_id=2 --master_port=8099 --master_ip=10.107.18.31
./bin/spy_server --ip=10.107.18.32 --port=7666 --data_dir=~/spy_data --error_log=./err.log --group_id=2 --master_port=8099 --master_ip=10.107.18.31
node03:
./bin/spy_server --ip=10.107.18.33 --port=7674 --data_dir=~/spy_data --error_log=./err.log --group_id=3 --master_port=8099 --master_ip=10.107.18.31
./bin/spy_server --ip=10.107.18.33 --port=7675 --data_dir=~/spy_data --error_log=./err.log --group_id=3 --master_port=8099 --master_ip=10.107.18.31
./bin/spy_server --ip=10.107.18.33 --port=7676 --data_dir=~/spy_data --error_log=./err.log --group_id=3 --master_port=8099 --master_ip=10.107.18.31
第八步,同第五步原因,打开cmd/imageserver/main.go,找到第23行,将flag.string()第二个参数的空字符串加上root,保存后退出。之后重新编译该文件,生成imageserver替换bin文件中原来的imageserver。运行imageserver,bin/imagerserver至此,speedy已经搭建成功。
再向下就是在该speedy的基础上安装docker_registry
第一步,安装docker_registry相关包
首先,mkdir /home/docker/registry建立放文件的目录
然后,执行tar -xzvf ./docker_registry/docker-registry-core-2.0.3.tar.gz和tar -xzvf ./docker_registry/docker-registry-0.9.0.tar.gz分别解压docker-registry-core-2.0.3和docker-registry-0.9.0,将这两个解压好的包转移到/home/docker/registry,同时将docker_registry_speedy_driver转移到/home/docker/registry
第二步,安装docker-registry-core-2.0.3和docker-registry-0.9.0
cd /home/docker/registry/docker-registry-core-2.0.3
python setup.py install
cd /home/docker/registry/docker-registry-0.9.0
python setup.py install
第三步,安装speedy_docker_registry_driver
cd speedy_docker_registry_driver
python setup.py install
export SETTINGS_FLAVOR=speedy
export SPEEDY_TMPDIR=/home/docker/registry/temp
export DOCKER_REGISTRY_CONFIG=/home/docker/registry/docker_registry_speedy_driver/config.yml
- 在集群上搭建speedy
- nise_bosh 在openstack集群上搭建CloudFoundry
- zookeeper集群在linux上的搭建
- 在centos7上搭建hadoop集群
- 在centos上搭建redis集群并附测试(真集群非伪集群)
- 用LVS在Linux上搭建负载均衡集群服务
- 在Redhat AS6上搭建Hadoop集群总结
- 在Redhat AS6上搭建Hadoop集群总结
- Hadoop2.2 + spark1.0 在ubuntu 上搭建分布式集群
- 在虚拟机上搭建LVS+Keepalived服务器集群
- 在windows单机上搭建storm伪集群
- 在基于docker的Hadoop集群上搭建Spark
- redis在centOS系统上的集群搭建
- 在Centos上搭建Codis的Redis 集群解决方案
- mongodb 在单机上搭建分片集群 详细实战过程
- 在ubuntu上使用swarm搭建docker集群
- 在ubuntu14.04上使用ambari搭建hadoop集群
- 一步一步详细搭建Spark集群在docker上
- Generate Parentheses
- poj2993
- 柏林噪声实践 水与火,顶点纹理拾取
- static const
- iOS 传值问题总结
- 在集群上搭建speedy
- iOS开发之new 和 alloc init的区别
- 小米手机3,小米手机4 官方移动稳定版最新 ROM V6.7.1.0.KXDCNCH
- UIscrollView 属性总结
- Mapped Statements collection does not contain value for......
- bootStrap实现tab页切换
- 剑指offer习题2
- C++中的static关键字 (转载)
- Android RecyclerView 使用完全解析 体验艺术般的控件