Ceph操作指导手册
1、ceph简介
Ceph是一个开源的、统一分布式存储系统(Unified Storage),提供对象存储(RADOSGW)、块存储(RBD)和文件存储(CephFS)三种接口,所有存储服务基于同一集群实现。
2、典型应用场景
| 场景 | 使用接口 | 案例 |
|---|---|---|
| 云平台虚拟磁盘 | RBD | OpenStack Cinder、 K8s PV |
| 企业文件共享 | CephFS | 替代 NFS,支持多客户端读写 |
| 海量非结构化数据存储 | RGW(S3/Swift) | 图片、视频、备份归档 |
| 容器持久化存储 | RBD/CephFS | KubernetesCSl驱动 |
3、ceph操作指南
1.集群操作
| 显示Ceph集群状态信息 | ceph -s |
|---|---|
| 列出PG状态信息 | ceph pg stat |
| 查看ceph存储空间 | ceph df |
| 列出所有客户端密钥和权限 | ceph auth list |
| 查看机器的监控状态 | ceph health |
| 查看ceph的实时运行状态 | ceph -w |
| 删除集群中的一个认证用户 | ceph auth del osd.0 |
| 查看集群健康状态细节 | ceph health detail |
| 显示各组件版本 | ceph versions |
| 查看所有OSD版本 | ceph tell osd.* version |
2.管理数据池
| 查看osd池 | ceph osd lspool |
|---|---|
| 创建一个新的数据池 | ceph osd pool create mypool 128 128 |
| 创建pool池 | ceph osd pool create vms(名称) 64 |
| 设置指定数据池中的属性值 | ceph osd pool set <pool-name> <property> <value> |
| 查看指定数据池的属性值 | ceph osd pool get <pool-name> <property> |
| 删除存储池 | ceph osd pool delete <pool-name> <pool-name> –yes-i-really-really-mean-it |
| 设置存储池配额 | ceph osd pool set-quota <pool-name> max_objects <num> # 对象数量限制 ceph osd pool set-quota <pool-name> max_bytes <bytes> # 容量限制(如 10G) |
| 开启ceph监控 | ceph osd pool application enable vms mon |
3.管理OSD
| 查看osd目录树 | ceph osd tree |
|---|---|
| 将指定OSD标记为down | ceph osd down 0 |
| 让编号为0的osd up | ceph osd up 0 |
| 将一个编号为0的osd加入集群 | ceph osd in 0 |
| 将指定OSD标记为in | ceph osd in <osd-number> |
| 将指定OSD标记为out | ceph osd out <osd-number> |
| 将一个编号为0的osd逐出集群 | ceph osd out 0 |
| 重新映射CRUSH Map | ceph osd crush reweight-all |
| 显示CRUSH Map | ceph osd crush map |
| 查看最大OSD的个数 | ceph osd getmaxosd |
| 设置最大OSD个数 | ceph osd setmaxosd 20 |
| 删除host节点 | ceph osd crush rm node1 |
| 在指定OSD上运行SMART检查 | ceph osd smart <osd-id> –test-deep |
| 在指定OSD上运行SMART检查并输出结果到指定目录 | ceph osd smart <osd-id> –test-deep –output /data/output |
| 暂停后整个集群不再接受数据 | ceph osd pause |
| 开启后再次接收数据 | ceph osd unpause |
| 在集群中删除一个OSD | ceph osd rm 0 |
| 检查OSD状态 | ceph osd stat # OSD状态摘要 ceph osd dump # 详细OSD信息 |
| 启停OSD | ceph osd down <osd-id> # 标记OSD为down ceph osd out <osd-id> # 将OSD移出集群 ceph osd in <osd-id> # 重新加入集群 |
| 移除OSD | ceph osd crush remove osd.<osd-id> # 从CRUSH映射移除 ceph auth del osd.<osd-id> # 删除认证密钥 ceph osd rm <osd-id> # 删除OSD |
| 列出OSD状态信息 | ceph osd status |
4.管理RADOS Gateway
| 列出所有RADOS Gateway网关 | radosgw-admin user list |
|---|---|
| 创建一个新的RADOS Gateway用户 | radosgw-admin user create –uid=<user-id> –display-name=<name> |
| 删除指定的RADOS Gateway用户 | radosgw-admin user rm –uid=<user-id> |
5.Ceph-deploy工具常用命令
| 使用ceph-deploy工具给c1 c2节点安装ceph | ceph-deploy install c1 c2 |
|---|---|
| 使用ceph-deploy工具创建一个集群 | ceph-deploy new ct c1 c2 |
| 使用ceph-deploy工具创建mon | ceph-deploy mon create ct c1 c2 |
| 使用ceph-deploy工具创建osd,并将osd加入集群中 | ceph-deploy osd create ct:sdb c1:sdb c2:sdb |
| 创建3个OSD | ceph-deploy create –date /dev/sdb ct ceph-deploy create –date /dev/sdb c1 ceph-deploy create –date /dev/sdb c2 |
| 在管理节点分发配置文件到各个节点上去 | ceph-deploy admin ct c1 c2 |
| 获取秘钥key | ceph-deploy mon create-initial |
| 收集秘钥(在ct节点) | ceph-deploy gatherkeys ct |
| 创建mgr管理服务 | ceph-deploy mgr create ct c1 c2 |
| 生成UUID | uuidgen |
6.管理mon
| 查看mon状态 | ceph mon stat |
|---|---|
| 查看mon的映射信息 | ceph mon dump |
| 添加新Mon | ceph mon add <mon-id> <mon-ip> |
| 删除Mon | ceph mon remove <mon-id> |
| 查看mon的选举状态 | ceph quorum_status |
| 删除一个mon节点 | ceph mon remove node1 |
7.元数据操作
| 查看MDS状态 | ceph mds stat |
|---|---|
| 查看MDS映射信息 | ceph mds dump |
| 删除MDS节点 | ceph mds rm 0 |
| 增加数据存储池 | ceph mds add_data_pool <pool_name> |
| 启动MDS集群 | ceph mds cluster_up |
| 关闭MDS集群 | ceph mds cluster_down |
| 查看兼容性选项 | ceph mds compat show |
| 删除兼容功能 | ceph mds compat rm_compat <int> |
| 删除不兼容功能 | ceph mds compat rm_incompat <int> |
4、总结
Ceph 是下一代分布式存储的核心解决方案,其 统一架构、无中心设计、自愈能力 使其成为云环境和大数据场景的理想存储底座。无论是构建私有云、混合云,还是处理海量非结构化数据,Ceph 都能提供高性能、高可靠的存储服务。