编译部署
参考:https://github.com/ceph/ceph/
- 写在前面
一定要给足够的磁盘空间,建议100GB,我之前使用40GB的虚拟机进行部署,部署起来几十秒就GG了,df看磁盘发现只剩170MB空间了。。日志显示如下:
2017-11-22 06:04:37.745439 mon.a mon.0 192.168.116.129:40000/0 133 : cluster [ERR] Health check failed: mons a,b,c are very low on available space (MON_DISK_CRIT)
如果遇到vmware虚拟机root分区空间不够的情况,解决方法如下:首先在vmware中扩展分区,然后进入ubuntu, 使用sudo apt install gparted
安装gparted,然后可以参考http://blog.csdn.net/Fly_Lucas/article/details/53868722 操作。
- clone code from github
git clone https://github.com/ceph/ceph.git
- ceph contains many git submodules that need to be checked out with
git submodule update --init --recursive
- install dependences
cd ceph
./install-deps.sh
- build ceph
./do_cmake.sh
cd build
make
这里要注意,ceph的编译对内存要求很大,我使用ubuntu虚拟机,4GB内存在执行make命令时g++仍然报错停止,后来将内存上升到8GB才编译完成。
另外,因为我们只想运行一个测试集群,所以可以只编译vstart模块,所以上述的make命令可以替换成make vstart
。
- run test cluster
cd build
MON=3 OSD=3 MDS=1 MGR=1 RGW=1 ../src/vstart.sh -n -d
上述命令表示使用debug模式(-d)new一个新的集群(-n),前面的参数表示各组件的数量,如果不明确指定,默认应该是MON=3 OSD=1 MDS=1 MGR=1 RGW=1
。
运行上述命令后,会输出大量日志到终端,其中包含了用于s3cmd和swift的账户
- use it
现在我们就可以通过./bin下的命令还操作集群了,例如:
./bin/ceph -s
- shut down the test cluster
../src/stop.sh
使用s3cmd控制
- install s3cmd
for ubuntu:
sudo apt install s3cmd
- generate config file
s3cmd --configure
这时会出现很多选项让你选择,其实这些选项都可以在生成的配置文件中自行修改,所以不必担心选错。
- 修改~/.s3cfg
我们可以看到,在当前用户的根目录下生成了一个.s3cfg文件,其中包含了各项配置,可以通过修改这个文件直接修改配置。
其中有几项是必须要修改的:cloudfront_host
host_base
和host_bucket
。
但因为我是在本地部署测试集群,rgw的服务器地址是127.0.0.1,端口是8000(可以在ceph.conf中看到),修改成:
cloudfront_host = 127.0.0.1:8000
host_base = 127.0.0.1:8000
host_bucket = 127.0.0.1:8000/%(bucket)
- use it
现在我们可以使用s3cmd命令来操作rgw集群了,比如
创建一个名为first_bucket的桶
s3cmd mb s3://first_bucket
存储一个名为hello.txt的文件
s3cmd put hello.txt s3://first_bucket
获得刚刚上传的文件,并存储为test.txt(可省略)
s3cmd get s3://first_bucket/hello.txt test.txt
列出所有的桶
s3cmd ls
列出指定桶里所有的对象
s3cmd ls s3://first_bucket
删除指定文件
s3cmd rm s3://first_bucket/hello.txt
删除指定桶
s3cmd rb s3://first_bucket
网友评论