RADOS的存储原理
物理磁盘上多个disk(osd)组成一个大硬盘,数据分成很多个小的单位,成为对象,多个对象组成一个pg,多个pg组成一个pool,pool在大硬盘上创建的,客户端不直接操作RADOS、是对pool进行操作。
如果客户端对一个pool写了一个文件, 那么这个文件是如何分布到多个节点的磁盘上呢?
答案是通过CRUSH算法。
创建对象存储
1、创建存储网关rgw
ceph-deploy rgw create ceph1
ceph osd pool ls
会帮我们创建这四个pool
2、创建连接用户
radosgw-admin user create --uid="testuser" --display-name="First User"
将这两个key保存下来
4、客户端安装s3
AmazonS3是一种面向Internet的对象存储服务.客户端需要安装s3cmd工具。
yum install s3cmd
vim /root/.s3cfg
[default]
access_key = 36ROCI84S5NSP4BPYL01
secret_key = jBOKH0v6J79bn8jaAF2oaWU7JvqTxqb4gjerWOFW
host_base = 192.168.100.101:7480
host_bucket = 192.168.100.101:7480/%(bucket)
cloudfront_host = 192.168.100.101:7480
use_https = False
查看
s3cmd ls
创建一个bucket
s3cmd mb s3://test_bucket
上传文件到bucket
s3cmd put /etc/fstab s3://test_bucket
再到ceph1上用ceph -s可以看到,pg增多了,容量减少了。
至此,对象存储也创建成功了。