ceph搭建_【实战演练】基于各种存储模拟器与软件存储的存储实验07-Ceph分布式存储的3种存储类型使用方法...

#本文欢迎转载,转载请注明出处和作者。

上一篇将Ceph搭建好了,Ceph是分布式存储,可以作为分布式块存储、分布式文件存储、分布式对象存储使用。

1、采用fuse作为文件存储使用

客户端安装ceph-fuse(这里直接用ceph-admin测试)

sudo yum install -y ceph-fuse

创建挂载目录

sudo mkdir /cephfs

复制配置文件

将ceph配置文件ceph.conf从管理节点copy到client节点(10.1.30.43为管理节点)

rsync -e "ssh -p22" -avpgolr root@10.1.30.43:/etc/ceph/ceph.conf /etc/ceph/

或者

rsync -e "ssh -p22" -avpgolr root@10.1.30.43:/home/cephuser/cluster/ceph.conf /etc/ceph/ #两个路径下的文件内容一样

复制密钥

将ceph的ceph.client.admin.keyring从管理节点copy到client节点

rsync -e "ssh -p22" -avpgolr root@10.1.30.43:/etc/ceph/ceph.client.admin.keyring /etc/ceph/

或者

rsync -e "ssh -p22" -avpgolr root@10.1.30.43:/home/cephuser/cluster/ceph.client.admin.keyring /etc/ceph/

查看ceph授权

ceph auth list

c717bb0fbf895d15826dfc378664793a.png

将ceph集群存储挂载到客户机的/cephfs目录下,可以在root下执行

ceph-fuse -m 10.1.30.43:6789 /cephfs

查看目录文件系统与目录大小

df -h

4ab63d2a3d34faa9aa70f77be1b76b5d.png

由上面可知,已经成功挂载了ceph存储,三个osd节点,每个节点有15G(在节点上通过"lsblk"命令可以查看ceph data分区大小),一共45G!

取消ceph存储的挂载

umount /cephfs

2、采用rbd接口作为块存储使用

2.1创建块设备

rbd create rbd/myrbd1 --size 102400

其中rbd为pool的名字,后面为块设备的名字,如果没有pool名字,就会放在叫rbd的这个默认pool。

2.2查看块设备

rbd ls -p rbd

48f8e4a3faa3c0bbe3c1d49b51429787.png

2.3挂载块设备

rbd map rbd/myrbd1

如果报rbd: sysfs write failed

RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".的错,是因为当前OS的内核不支持某些feature。

解决方法:

rbd info rbd/myrbd1
rbd image 'myrbd':
 size 1024 MB in 256 objects
 order 22 (4096 kB objects)
 block_name_prefix: rbd_data.102c6b8b4567
 format: 2
 features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
 flags:

可以看到features那里有一大堆特性

解决方法1:disabled不需要的特性

rbd feature disable rbd/myrbd1 exclusive-lock object-map fast-diff deep-flatten

解决方法2:

rbd create rbd/myrbd1 --size 1024 --image-feature layering

解决方法3:在创建rbd的ceph主机修改配置文件

/etc/ceph/ceph.conf在global section下

rbd_default_features = 1

已创建镜像需要重新创建,重新执行rbd map myrbd,成功会有输出

fae967b8f8f4a67d7ec97721b22999ee.png

2.4将块设备格式化并且挂载到文件系统

mkfs.xfs /dev/rbd0
mkdir -p /mnt/ceph_rbd
mount /dev/rbd0 /mnt/ceph_rbd

3 、将Ceph当作对象存储使用

3.1服务端配置

Ceph 对象存储使用 Ceph 对象网关守护进程( radosgw ),它是个与 Ceph 存储集成的 FastCGI 模块。Ceph RGW的FastCGI支持多种Web服务器作为前端,而Ceph从v0.8开始,使用内嵌Civetweb作为WebServer,无需额外安装nginx或者apache作web服务。

修改yum文件,并且安装网关服务。

vi /etc/yum.repos.d/CentOS-Base.repo 
[centosplus] 
enabled=1

安装rgw

ceph-deploy install --rgw ceph-node1

创建网关实例

cd /home/cephuser/cluster
ceph-deploy admin ceph-node1
ceph-deploy rgw create ceph-node1

一旦网关开始运行,可以通过7480端口访问尝试

e63de46889e2829ff4be9d9821251d7f.png

创建账号

radosgw-admin user create --uid="testuser" --display-name="First User"

自动返回如下

e099bf32b419d027e365f759861fa11b.png

使用查看命令也能再次看到上述信息

radosgw-admin user info --uid=testuser

d8d05a8523f7c731121ba6f6575702a2.png

3.2客户端调用

客户端安装软件

yum install s3cmd

修改配置,需要在root下运行

s3cmd --configure

提示需要输入accesskey与sercetkey,粘贴上面截图内容。

Access Key:D4P2850KVJF7LETQ24E6
Secret Key:gbfa6cgvLANWVPDVkUKyLIF6FQNZ4Olt7EF9KF92
Default Region [US]:默认 
S3 Endpoint [s3.amazonaws.com]: 10.1.30.37:7480
[%(bucket)s.s3.amazonaws.com]: %(bucket)s.10.1.30.37:7480
Use HTTPS protocol [Yes]: N
Test access with supplied credentials? [Y/n] Y
Retry configuration[Y/n]:N 
Save settings? [y/N] Y

其他选项直接回车即可,不要修改。设置完成后,运行

s3cmd ls

如果报错如下,则证明配置文件里面有问题

Invoked as: /usr/bin/s3cmd ls Problem: error: [Errno 111] Connection refused

解决办法:

vi ~/.s3cfg

检查5个参数

access_key = ED4P2850KVJF7LETQ24E6 
cloudfront_host = 10.1.30.37:7480
host_base = 10.1.30.37:7480
host_bucket = %(*)s.10.1.30.37:7480
secret_key = gbfa6cgvLANWVPDVkUKyLIF6FQNZ4Olt7EF9KF92

然后重新s3cmd测试,如果没有报错则成功。

s3cmd ls

创建名叫my_bucket的数据目录(类似创建文件夹,但是注意,bucket是对象存储的概念,不是文件夹)

s3cmd mb s3://my_bucket

27a323da28b7846d4e6679ddb9820295.png

put上传对象到具体目录

sudo s3cmd put /var/log/messages s3://my_bucket/log/

f7eac79adf32592e0c9ee08d2cdfc258.png

查看对象

s3cmd ls s3://my_bucket/log/

57d199a47486274e05f6b735812cb614.png

get下载对象

s3cmd get s3://my_bucket/log/messages /tmp/

e77361c7a772ac7f33b4d66bf76d4d38.png

删除对象

s3cmd del s3://my_bucket/log/messages

c4d15d50c9bef2abbb1694498e9ef35e.png

删除bucket

s3cmd rb s3://my_bucket/

faa825966a08b103cbb65e12ff872f03.png

4、Ceph的故障冗余

当有一半以上的OSD节点挂掉后,远程客户端挂载的Ceph存储就会使用异常了,即暂停使用。比如本案例中有3个OSD节点,当其中一个OSD节点挂掉后(比如宕机),客户端挂载的Ceph存储使用正常;但当有2个OSD节点挂掉后,客户端挂载的Ceph存储就不能正常使用了(表现为Ceph存储目录下的数据读写操作一直卡着状态),当OSD节点恢复后,Ceph存储也会恢复正常使用。OSD节点宕机重新启动后,osd程序会自动起来(通过监控节点自动起来)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值