cephadm部署ceph分布式存储集群笔记

  • 1、修改主机名、网卡名

    修改主机名:

    bash 复制代码
    sudo hostnamectl set-hostname 新主机名

    修改网卡名(选做):

    bash 复制代码
    sudo ip link set eth0 name newname
  • 2、关闭防火墙和selinux (选做)

  • 3、关闭交换分区 (选做)

  • 4、修改内核参数和资源限制参数 (选做)

  • 5、配置时间同步服务(NTP)

    bash 复制代码
    sudo apt install ntp

    部署集群环境时,所有主机的时间源都需和ceph-1同步。

  • 6、配置 ssh 免密登录

    在1号主机ceph-1上操作:

    bash 复制代码
    # 生成ssh-key
    ssh-keygen -t rsa
    
    # 将ssh-key复制到2号主机或更多主机
    ssh-copy-id ceph-2
  • 7、安装 docker

    参考以往的博客。

  • 8、安装cephadm

    bash 复制代码
    sudo apt install cephadm

    检查主机是否满足安装ceph集群:

    bash 复制代码
    cephadm check-host --expect-hostname `hostname`
  • 9、初始化mon

    bash 复制代码
    cephadm bootstrap --mon-ip 10.0.3.69 --cluster-network 10.0.3.0/24 --initial-dashboard-user admin --initial-dashboard-password 123456
  • 10、添加主机到集群

    在主机ceph-1上操作:

    • 配置ceph-2主机ssh免密登录:
    bash 复制代码
    ssh-copy-id -f -i /etc/ceph/ceph.pub ceph-2
    • 进入集群环境:
    bash 复制代码
    cephadm shell --fsid cab35cc6-31ff-11ef-8f81-07bce4384981 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
    • 将主机添加到集群中:
    bash 复制代码
    ceph orch host add ceph-2 10.0.3.69 --labels=mon,mgr
    ceph orch host add ceph-3 10.0.3.70 --labels=mon
    • 查看加入到集群的节点:
    bash 复制代码
    ceph orch host ls
    • 为节点ceph-2、ceph-3添加 _admin 标签:
    bash 复制代码
    shell ceph orch host label add ceph-2 _admin
    shell ceph orch host label add ceph-3 _admin
    • 给 ceph-1 --- ceph-4添加 mon 标签
    bash 复制代码
    ceph orch host label add ceph-1 mon
    ceph orch host label add ceph-2 mon
    ceph orch host label add ceph-3 mon
    ceph orch host label add ceph-4 mon
    • 给 ceph-1、ceph-2添加 mgr 标签
    bash 复制代码
    ceph orch host label add ceph-1 mgr
    ceph orch host label add ceph-2 mgr
    • 列出节点,查看节点上的标签
    bash 复制代码
    ceph orch host ls

    调整 mon 节点的个数

    bash 复制代码
    ceph orch apply mon --placement="4 label:mon"
  • 11、添加 OSD

    • 说明:添加OSD时,建议将磁盘先格式化为无分区的原始磁盘
    bash 复制代码
    DISK="/dev/sdb"
    sgdisk --zap-all $DISK
    dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync
    blkdiscard $DISK
    partprobe $DISK
    • 调整 osd_poll 默认的个数
    bash 复制代码
    ceph config set global osd_pool_default_size 1
    • 查看各节点可用的磁盘
    bash 复制代码
    ceph orch device ls
    • 添加OSD:
    bash 复制代码
    ceph orch daemon add osd ceph01:/dev/sda
  • 12、添加 pool

    bash 复制代码
    ceph osd pool create hddpool 128 128

    列出池

    bash 复制代码
    ceph osd lspools

    创建规则以使用该设备

    bash 复制代码
    ceph osd crush rule create-replicated hdd default host hdd

    查看规则

    bash 复制代码
    ceph osd crush rule ls

    规则应用到池上面

    bash 复制代码
    ceph osd pool set hddpool crush_rule hdd
  • 13、部署MDS元数据服务

    • 创建CephFS池:
    bash 复制代码
    ceph osd pool create cephfs_data 64 64
    ceph osd pool create cephfs_metadata 64 64
    • 设置副本数:
    bash 复制代码
    ceph osd pool set cephfs_data size 1
    ceph osd pool set cephfs_data size 1
    • 列出池:
    bash 复制代码
    ceph osd lspools
    • 为数据池和元数据池创建文件系统
    bash 复制代码
    ceph fs new cephfs cephfs_metadata cephfs_data
    • 使用 ceph orch apply 命令部署 MDS:
    bash 复制代码
    ceph orch apply mds cephfs --placement="1 ceph-1"
    • 查看状态:
    bash 复制代码
    ceph fs ls
    ceph fs status
    • 查看守护进程:
    bash 复制代码
    ceph orch ps --daemon_type=mds
  • 14、dashboard的使用

    查看 dashboard的访问地址:

    bash 复制代码
    ceph mgr services
  • 15.删除节点

    • 获取被删除主机上有哪些守护进程:
    bash 复制代码
    ceph orch ps ceph-4
    • 先排空被删除主机上的所有守护进程
    bash 复制代码
    ceph orch host drain ceph-4
    • 查看被移除的OSD状态:
    bash 复制代码
    ceph orch osd rm status
    • 检查被删除的主机上所有守护进程是否已经从集群中移除:
    bash 复制代码
    ceph orch ps ceph-4
    • 删除主机:
    bash 复制代码
    ceph orch host rm  ceph-4
    • 清理节点:
      在被删除的节点上执行:
    bash 复制代码
    cephadm rm-cluster --fsid 集群id --force
  • 16.ceph mon监视器管理

    bash 复制代码
    ceph orch apply mon --placement="ceph-1 ceph-2 ceph-3"
  • 17、ceph mgr 管理器管理

    • 重启mgr:
    bash 复制代码
    ceh orch restart mgr
    • 添加mgr:
    bash 复制代码
    ceph orch apply mgr --placement="3 ceph-1 ceph-2 ceph-3"
  • 18.使用MDS

    • 安装ceph客户端:
    bash 复制代码
    sudo apt install ceph ceph-common
    • 挂载cephfs:
    bash 复制代码
    mount -t ceph 10.2.3.200:6789:/ ./cephfs -o name=admin,secretfile=/etc/ceph/ceph.client.admin.keyring

    或:

    bash 复制代码
    mount -t ceph 10.2.3.200:6789:/ ./cephfs -o name=admin,secret=AQAQ23Nm81oMGBAACvc1JMckL4zCMSziL6GX9A==
  • 19、k8s中使用cephfs

    参考:https://blog.csdn.net/HYESC/article/details/128039771

    • k8s用到的信息:
    txt 复制代码
    clusterID: 
    "cab35cc6-31ff-11ef-8f81-07bce4384981"
    
    monitors:
    10.2.3.200:6789
    
    user:
    admin
    
    userKey:
    AQCbJ3lmhEw4MhAA6+v/bC9igPjYvV1Sj0b+jA==
    • 创建子卷组:
    bash 复制代码
    ceph fs subvolumegroup create cephfs csi
  • 20、问题解决

    • 关闭pool没有副本的警告:
    bash 复制代码
    ceph config set global mon_warn_on_pool_no_redundancy false
    • ceph状态机undersized+degrated:https://www.jianshu.com/p/0fd446d3e9ff

    • ceph-csi镜像拉取失败解决办法:https://blog.csdn.net/davidzzc/article/details/124868759

相关推荐
智者知已应修善业17 分钟前
【51单片机LED贪吃蛇】2023-3-27
c语言·c++·经验分享·笔记·嵌入式硬件·51单片机
charlie1145141913 小时前
从 0 开始:在 WSL + VSCode 上利用 Maven 构建 Java Spring Boot 工程
java·笔记·vscode·后端·学习·maven·springboot
思成不止于此10 小时前
【C++ 数据结构】二叉搜索树:原理、实现与核心操作全解析
开发语言·数据结构·c++·笔记·学习·搜索二叉树·c++40周年
碧海潮生_CC11 小时前
【CUDA笔记】03 CUDA GPU 架构与一般的程序优化思路(下)
笔记·架构·cuda
钟屿11 小时前
Back to Basics: Let Denoising Generative Models Denoise 论文阅读学习
论文阅读·人工智能·笔记·学习·计算机视觉
d111111111d11 小时前
SPI通信协议--在STM32中介绍(学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习
愚昧之山绝望之谷开悟之坡12 小时前
业务接待-公务接待-商务接待
笔记
WHFENGHE13 小时前
输电线路分布式故障定位在线监测装置:技术解析与实际应用价值
分布式
大数据追光猿14 小时前
LangChain / LangGraph / AutoGPT / CrewAI / AutoGen 五大框架对比
经验分享·笔记·python·langchain·agent
✎ ﹏梦醒͜ღ҉繁华落℘14 小时前
freeRTOS学习笔记(十四)--内存
笔记·学习