如何在cephadm部署的Ceph集群中为OSD启用dm-crypt?
如何在cephadm部署的Ceph集群中为OSD启用dm-crypt?
嘿,刚好我之前处理过类似的场景,用cephadm给OSD加dm-crypt其实挺简单的,分两种方式,看你是想全局默认加密还是只给特定OSD加密:
方式一:全局配置,所有新OSD自动启用dm-crypt
如果希望之后添加的所有OSD都默认加密,先给集群设置全局参数:
ceph config set osd osd_dmcrypt_enable true
设置完之后,你原来用的添加OSD的命令不需要改,直接执行:
ceph orch daemon add osd ceph-osd-01:/dev/sdb ceph orch daemon add osd ceph-osd-02:/dev/sdb ceph orch daemon add osd ceph-osd-03:/dev/sdb
cephadm会自动为每个磁盘创建dm-crypt加密设备,然后在加密层上部署OSD,密钥会自动存在Ceph的密钥环里,不用你手动管理。
方式二:仅给单个/部分OSD启用加密
如果不想全局开启,只想给特定的OSD加密,在添加的时候加上--dmcrypt参数就行:
ceph orch daemon add osd --dmcrypt ceph-osd-01:/dev/sdb ceph orch daemon add osd --dmcrypt ceph-osd-02:/dev/sdb ceph orch daemon add osd --dmcrypt ceph-osd-03:/dev/sdb
验证加密是否生效
添加完之后,你可以登录到OSD节点,用以下方法确认:
- 执行
lsblk,能看到对应磁盘(比如/dev/sdb)下面挂载了/dev/mapper/ceph-xxxx的加密设备,OSD的数据就存在这个加密设备上 - 或者用
ceph osd metadata <你的OSD ID>,输出内容里会包含dmcrypt_enabled: true的字段
另外要注意几点:
- 用来做OSD的磁盘必须是空的,不能有已有的分区或文件系统,cephadm会自动清理并创建加密分区
- 如果是用Ansible配合cephadm批量部署,也可以在Ansible的配置变量里加上
osd_dmcrypt_enable: true,这样批量添加OSD时会自动启用加密
备注:内容来源于stack exchange,提问作者Swampcritter
相关产品推荐
相关产品推荐

