ceph中mds与cephx有什么用

76次阅读
没有评论

共计 6308 个字符,预计需要花费 16 分钟才能阅读完成。

这篇文章主要介绍 ceph 中 mds 与 cephx 有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    在 CEPH 中,块和对象是不用 MDS 的,在其文件系统中,元数据服务器 MDS 才是必不可少的。Ceph MDS 为基于 POSIX 文件系统的用户提供了一些基础命令,例如 ls、find 等命令。Ceph FS(Ceph File System)中引入了 MDS(Metadata Server),主要是为兼容 POSIX 文件系统提供元数据,一般都是当做文件系统来挂载。

    对于完全分布式的系统,数据迁移和扩容是值得关注的痛点,那么 Metadata Server 是很需要避免单点故障和数据瓶颈的问题。

Ceph cephx 认证配置

认证

注:当更新的时候,建议把认证的注解掉,然后在升级,一旦升级接收就激活认证。 
默认情况下 cephx 协议是打开的,同时认证服务是要一定的计算资源的,如果你的网络环境很安全,你不想使用认证,你也可以把它关掉,但是不建议关掉。如果关闭认证,你就很有可能受到中间人 *** 篡改 client/server 消息,这会导致严重的安全问题。

部署情景:

有两种主要的部署方式,一个是使用 ceph-deploy 工具,第一次部署最普遍使用的方式,也是最简单的,另一个是使用第三方的部署工具(chef,juju,puppet,etc。。。)在这个中情况下你就需要手动的执行或者配置你的部署工具来引导 monitors。

Ceph-deploy

使用 ceph-deploy 部署集群,你不需要手动引导 monitors 或者创建 client.admin 用户或者钥匙环。这些在你执行 ceph-deploy 的时候都会帮你创建好的。 
当你执行 ceph-deploy new {initial-monitors},ceph 会帮你创建 monitor 钥匙环和生成一个 ceph 配置文件,里面有认证设置,默认是启用的。: 
auth_cluster_required = cephx 
auth_service_required = cephx 
auth_client_required = cephx 
当执行 ceph-deploy mon create-initial,ceph 会引导初始化 monitors,为 client.admin 用户检索包含 key 的 ceph.client.admin.keyring 文件。另外它也会检索给 ceph-deploy 和 ceph-disk 使用程序预备和激活 osds 和 metadata 服务的钥匙环。 
当执行 ceph-deploy admin {node-name}(ceph 必须在此之前安装)它会把配置文件和 ceph.client.admin.keyring 文件推送到每个节点的 /etc/ceph 目录下。这样你就可以在节点的命令行上以 root 用户执行 ceph 管理员的功能。

Manual deploy

当你手动部署集群的时候,你需要手动的引导 monitors 和创建用户和钥匙环。这里不做详细。 
启用 / 禁用 cephx 
使用 cephx 认证就需要你为 monitors,osd 和 metadata server 提供一个 key。如果你只是做启用或者禁用 cephx 的操作,则就没有必要重复引导过程。 
启用 cephx,ceph 就会在默认的路径下寻找 keyring,/etc/ceph/cluster.name.keyring. 可以在配置文件 ceph.conf 的 [global] 部分的使用 keyring 选项来更改这个地址。但是不建议这么做。 
执行下面的程序可以把 cephx 从禁用状态转到启用状态。如果你已经有 key 了,可以跳过创建 key 的步骤。 
1. 创建用户 client.admin 的 key,并为客户端保存 key 的副本  
Ceph auth get-or-create client.admin mon‘allow ’mds‘allow ’osd‘allow *’–o /etc/ceph/ceph.client.admin.keyring 
注:如果 /etc/ceph/ceph.client.admin.keyring 已经存在,就不要再执行这一步。 
2. 为 monitors 集群产生一个 keyring,并生成一个 monitors 秘钥。 
ceph-authtool –create-keyring /tmp/ceph.mon.keyring –gen-key –n mon. –cap mon‘allow *’ 
3. 把 keyring 拷贝到每一个 mon data 路径下,如:拷贝到 mon.a 路径下: 
cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring 
4. 为每个 osd 生成一个 key,{id}时 osd 的编号。 
ceph auth get-or-create osd.{id} mon‘allow rwx’osd‘allow *’–o /var/lib/ceph/osd/ceph-{id}/keyring 
5. 为每个 mds 生成一个 key,{id}是 mds 的号  
ceph auth get-or-create mds.{id} mon ‘allow rwx’ osd ‘allow *’ mds ‘allow *’ –o /var/lib/ceph/mds/ceph-{id}/keyring 
6. 通过设置 [global] 下的这几个选项来启用 cephx. 
Auth cluster required =cephx 
auth service require = cephx 
Auth client required = cephx 
7. 启动或者重启 ceph 集群。

禁用 cephx

禁用 cephx 认证时非常简单的。 
1. 禁用 cephx,在配置文件 ceph.conf 中的 [global] 部分设置下面几个参数。 
auth cluster required = none 
auth service required =none 
auth client required =none 
2. 启动或者重启 ceph 集群  
Keys 
Key 是用于集群中用户认证的。如果启用了 cephx 认证系统,就需要 key;否则,不需要。一般 key 的默认保存路径在 /etc/ceph 目录下。给管理员或者 client 提供 key 的普遍方式是把可包含在 /etc/ceph/ 目录下的 keyring 文件中(对于使用 ceph-deploy 部署工具)。文件格式通常是 $cluster.client.admin.keyring; 如果放在 /etc/ceph 目录下,则就不需要再在 ceph 的配置文件中指定 keyring 参数,如果没有则需要在 ceph 配置文件中指定 keyring 参数。 
注:确保 keyring 文件的权限合适。 
你可以在 ceph 配置文件中指定 key,或者使用 keyring 指定 key 的路径。 
参数: 
Keyring:keyring 文件的路径  
Key:key 的值  
Keyfile:key 文件路径  
进程 keyring 
管理员用户或者部署工具(ceph-deploy)也会跟普通用户生成 keyring 方式一样,生成一个守护进程 keyring。一般情况下,守护进程的 keyring 是在他们数据目录里面。默认 Keyring 位置和 capabilities 对于守护进程的功能来说是必须的。

ceph-mon 
Location: mondata/keyringCapabilities:mon‘allow′cephosdLocation:osd_data/keyring 
Capabilities: mon‘allow profile osd’osd‘allow *’ 
ceph-mds 
Location: mdsdata/keyringCapabilities:mds‘allow′mon‘allowprofilemds′osd‘allowrwx′radosgwLocation:rgw_data/keyring 
Capabilities: mon‘allow rwx’osd‘allow rwx’ 
守护进程的默认数据路径格式是: 
/var/lib/ceph/type/cluster-$id 
签名  
在 ceph Bobtail 和以后的版本中我们都倾向于对所有的消息使用签名,使用 session key 来建立初始话认证,然而 Ceph Argonaut 和更早的版本确没有对消息做认证,为了保持兼容性,消息签名默认是关闭的。如果你是 Bobtail 或者更新的版本可以打开。 
在认证上,Ceph 提供了细粒度的控制,所以你可以在 client 和 ceph 的消息上启用或者禁用签名,也可以在对 ceph 进程之间的消息做启用或者禁用消息签名,这些可以使用下面的参数来配置: 
cephx requite signatures : 决定是否对 client 和 ceph storage cluster,及 ceph 的守护进程之间的消息做数字签名, 默认是 false。 
cephx cluster require signatures: 决定是否对 ceph 的进程之间的消息签名,默认是 false。 
cephx service require signature : 决定是否对 client 和 ceph storage cluster 之间的消息做认证,默认是 false。 
cephx sign messegs: 如果 ceph 的版本支持消息签名,ceph 将对所有的消息签名,默认是 true。

存活时间

auth service ticket ttl:当 ceph storage cluster 发送给 client 一个 ticket,这个选项用来定义这个 ticket 的存活时间(有效时间),默认是 60*60。

Ceph 集群中如何摘除一个包含 mon、osd 和 mds 的节点

步骤如下:

1、摘除 mon

[root@bgw-os-node153 ~]# ceph mon remove bgw-os-node153

removed mon.bgw-os-node153 at 10.240.216.153:6789/0, there are now 2 monitors

2、摘除此节点上所有的 osd

1)、查看此节点的 osd

[root@bgw-os-node153 ~]# ceph osd tree 

-4      1.08                    host bgw-os-node153

8       0.27                            osd.8   up      1

9       0.27                            osd.9   up      1

10      0.27                            osd.10  up      1

11      0.27                            osd.11  up      1

2)、把上面的节点的 osd 进程停掉

[root@bgw-os-node153 ~]# /etc/init.d/ceph stop osd

=== osd.10 === 

Stopping Ceph osd.10 on bgw-os-node153…kill 2251…done

=== osd.9 === 

Stopping Ceph osd.9 on bgw-os-node153…kill 2023…kill 2023…done

=== osd.8 === 

Stopping Ceph osd.8 on bgw-os-node153…kill 1724…kill 1724…done

=== osd.11 === 

Stopping Ceph osd.11 on bgw-os-node153…kill 1501…done

3)、再次查看 ceph osd 状态

[root@bgw-os-node153 ~]# ceph osd tree

-4      1.08                    host bgw-os-node153

8       0.27                            osd.8   down    1

9       0.27                            osd.9   down    1

10      0.27                            osd.10  down    1

11      0.27                            osd.11  down    1

4)、删除所有的 osd

[root@bgw-os-node153 ~]# ceph osd rm 8

removed osd.8

[root@bgw-os-node153 ~]# ceph osd rm 9

removed osd.9

[root@bgw-os-node153 ~]# ceph osd rm 10

^[[Aremoved osd.10

[root@bgw-os-node153 ~]# ceph osd rm 11

removed osd.11

5)、删除所有 osd 的 crush map 

[root@bgw-os-node153 ~]# ceph osd crush rm osd.8

removed item id 8 name osd.8 from crush map

[root@bgw-os-node153 ~]# ceph osd crush rm osd.9

removed item id 9 name osd.9 from crush map

[root@bgw-os-node153 ~]# ceph osd crush rm osd.10

^[[Aremoved item id 10 name osd.10 from crush map

[root@bgw-os-node153 ~]# ceph osd crush rm osd.11

removed item id 11 name osd.11 from crush map

6)、删除所有 osd 的认证

[root@bgw-os-node153 ~]# ceph auth del osd.8

updated

[root@bgw-os-node153 ~]# ceph auth del osd.9

updated

[root@bgw-os-node153 ~]# ceph auth del osd.10

updated

[root@bgw-os-node153 ~]# ceph auth del osd.11

updated

7)、在 ceph osd tree 中删除此机器 host 的 crush map

[root@bgw-os-node153 ~]# ceph osd crush rm  bgw-os-node153

removed item id -4 name bgw-os-node153 from crush map

8)、卸载所有挂载在 osd 的硬盘

[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-8

[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-9

[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-10

[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-11

3、摘掉 mds

1、直接关闭此节点的 mds 进程

[root@bgw-os-node153 ~]# /etc/init.d/ceph stop mds

=== mds.bgw-os-node153 === 

Stopping Ceph mds.bgw-os-node153 on bgw-os-node153…kill 4981…done

[root@bgw-os-node153 ~]# 

2、删除此 mds 的认证

[root@bgw-os-node153 ~]# ceph auth del mds.bgw-os-node153

updated

以上是“ceph 中 mds 与 cephx 有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计6308字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)