接上篇:使用ceph-deploy安装Ceph 12.x(三) 安装Ceph集群
之前的几篇文章,已经把一个Ceph集群部署好了。但是用户如何使用呢?
这篇文章主要就是初步解决这个问题:有两种方式,客户机(ceph client)通过mount块设备或使用对象存储API来进行数据的存取。
块设备(Block Device)
可以使用一台虚拟机作为ceph client节点。但如果你的Ceph node是物理机的话,不要那些物理机上创建这台虚机。
1. 安装Ceph
首先要确保是Linux kernel以及合适的版本。
在admin node上运行以下命令,将Ceph安装到ceph-client node上:
ceph-deploy install ceph-client
注意:
1. 这里的ceph-client就是ceph client的主机名,可配置在admin node的/etc/hosts中。
2. 若遇到找不到RPM-GPG-KEY-EPEL-7的错误,可参见拙作:解决RPM-GPG-KEY-EPEL-7错误
然后,运行以下命令将Ceph配置文件和ceph.client.admin.keyring拷贝到ceph-client上。
ceph-deploy admin ceph-client
注意:
ceph.client.admin.keyring被拷贝到了ceph-client的/etc/ceph目录下,要保证它有可读权限:
chmod +r /etc/ceph/ceph.client.admin.keyring
2. 创建一个块设备的pool
在之前的文章中,已经创建了一个叫做mypool的pool,现在需要运行以下命令以使得该pool可以作为RBD使用:
rbd pool init mypool
3. 配置一个block device(块设备)
Step 1. 在ceph-client上,创建一个block device image
其实就是创建一个rbd(卷)
rbd create foo --pool mypool --size 4096 --image-feature layering -m 192.168.30.3 -k /etc/ceph/ceph.client.admin.keyring
如要查看所创建的rbd,可以这样:
rbd info foo -p mypool
Step 2. 将该image(即rbd)映射到一个block device上
rbd map mypool/foo --name client.admin -m 192.168.30.3 -k /etc/ceph/ceph.client.admin.keyring
/dev/rbd0 # 执行结果
Step 3. 在该block device上创建文件系统
mkfs.ext4 -m0 /dev/rbd0
Step 4. Mount文件系统到ceph-client
mkdir /mnt/cephbd
mount /dev/rbd0 /mnt/cephbd
cd /mnt/cephbd
注意:
这里的rbd map和mount命令只是当时起作用。若系统重启了,则需要重新手动做。 若要开机自动做,可参考官方文档:rbdmap manage
对象存储之 Ceph Object Gateway
Gateway daemon 内嵌了 Civetweb,因此不用再安装web server了。
Civetweb默认使用7480端口。所以,或者使防火墙开放该端口,或者在ceph.conf文件中将该端口改为其他端口(如80)。
安装Ceph Object Gateway
ceph-deploy install --rgw ceph-client
在ceph-client上创建 Ceph Object Gateway 实例
在working directory下运行(即前文所述的my-cluster目录)
ceph-deploy rgw create ceph-client
一旦gateway开始running,就可以通过 http://{IP}:7480 来访问。
看到的是如下的内容:
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>anonymous</ID>
<DisplayName/>
</Owner>
<Buckets/>
</ListAllMyBucketsResult>
(完)