Ceph文件系统快速入门

  准备工作

  1,确认你使用了合适的内核版本,详情见操作系统推荐

1
2
lsb_release -a
uname -r

   2,在管理节点上,通过 ceph-deploy 把 Ceph 安装到 ceph-client 节点上。

1
ceph-deploy install ceph-client

   注意:ceph-client为可以连接的主机名或者IP地址,最好设置好ssh免密,否则需要输入密码才能进行安装

      最好在对应节点设置好yum源使用以下命令安装,否则安装很慢或者安装失败

1
yum -y update && yum -y install ceph-radosgw

   3,确保 Ceph 存储集群在运行,且处于 active clean 状态。同时,确保至少有一个 Ceph 元数据服务器在运行。

 

   创建文件系统

  虽然已创建了元数据服务器(存储集群快速入门),但如果你没有创建存储池和文件系统,它是不会变为活动状态的。

1
2
3
ceph osd pool create cephfs_data <pg_num>
ceph osd pool create cephfs_metadata <pg_num>
ceph fs new <fs_name> cephfs_metadata cephfs_data

   例如

1
2
3
4
5
6
7
#创建数据存储池 名为cephfs_data PG数为64
[root@admin-node my-cluster]# ceph osd pool create cephfs_data 64
pool 'cephfs_data' created
#创建元数据存储池 名为cephfs_metadate PG数为32
#元数据存储池PG数一遍情况下小于数据存储池PG数
[root@admin-node my-cluster]# ceph osd pool create cephfs_metadata 32
pool 'cephfs_metadata' created

   查看创建的存储池

1
2
3
4
5
6
7
8
[root@admin-node my-cluster]# ceph osd pool ls
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log
rbd_pool
cephfs_data #数据存储池
cephfs_metadata#元数据存储池

   查看数据存储池详细信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@admin-node my-cluster]# ceph osd pool get cephfs_data all
size: 2
min_size: 1
pg_num: 64
pgp_num: 64
crush_rule: replicated_rule
hashpspool: true
nodelete: false
nopgchange: false
nosizechange: false
write_fadvise_dontneed: false
noscrub: false
nodeep-scrub: false
use_gmt_hitset: 1
fast_read: 0
pg_autoscale_mode: warn

   使用刚刚创建的数据存储池和元数据存储池创建ceph文件系统

1
2
[root@admin-node my-cluster]# ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 7 and data pool 6

   查看

1
2
3
[root@admin-node my-cluster]# ceph fs ls
#名称是cephfs                        #元数据存储池           #数据存储池
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

   查看mds服务状态

1
2
[root@admin-node my-cluster]# ceph mds stat
cephfs:1 {0=node1=up:active}

   创建秘钥文件

  Ceph 存储集群默认启用认证,你应该有个包含密钥的配置文件(但不是密钥环本身)。用下述方法获取某一用户的密钥:

  1,在密钥环文件中找到与某用户对应的密钥,例如:

1
cat ceph.client.admin.keyring

   2,找到用于挂载 Ceph 文件系统的用户,复制其密钥。大概看起来如下所示:

1
2
[client.admin]
    key = AQC8kitfy2KmGxAAI7uYR/ra86ViO6omXftiYQ==

   3,打开文本编辑器。

  4,把密钥粘帖进去,大概像这样:

1
AQC8kitfy2KmGxAAI7uYR/ra86ViO6omXftiYQ==
  5,保存文件,命名为admin.secret

  6,确保文件对用户有合适的权限,但对其他用户不可见

  挂载

  把Ceph FS挂载在client

1
2
sudo mkdir /mnt/mycephfs
sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/mycephfs

   挂载失败

1
2
3
# mount -t ceph 192.168.1.101:6789:/ /mnt/mycephfs/
2020-08-07 09:19:28.852 7fed2b88fb80 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.guest.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,: (2) No such file or directory
mount error 22 = Invalid argument

   因为ceph默认开启认证,所以挂载时需要指定用户名 name 和创建密钥文件一节中创建的密钥文件 secretfile ,例如:

1
mount -t ceph 192.168.1.101:6789:/ /mnt/mycephfs/ -o name=admin,secretfile=admin.secret

   删除文件存储

  卸载挂载

1
umount /mnt/mycephfs

   所有节点停止mds服务

1
systemctl stop ceph-mds.target

   删除

1
2
3
4
5
[root@admin-node]# ceph fs rm cephfs --yes-i-really-mean-it
[root@admin-node]# ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it
pool 'cephfs_metadata' removed
[root@admin-node]# ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it
pool 'cephfs_data' removed

   注意:为了安全需要输入两次创建的pool名并且加参数--yes-i-really-really-mean-it才能删除

      注意:需要在配置文件添加以下配置,才能删除

1
mon_allow_pool_delete = true               

 

 

   添加配置以后同步设置

1
ceph-deploy  --overwrite-conf admin admin-node node1 node2 node3

 

  如果已经添加配置还提示

1
Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool

   则重启服务ceph-mon.target即可

  删除cephfs和两个存储池再次启动mds服务

1
systemctl start ceph-mds.target

   

posted @   minseo  阅读(865)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
历史上的今天:
2019-08-07 Nginx之开启压缩
2018-08-07 Red Hat6设置使用CentOS的yum源
点击右上角即可分享
微信分享提示