当前位置: 首页 > news >正文

部署CephFS文件存储

针对 3 台机器(每台 24 块 7.62TB NVMe SSD)部署 CephFS 的场景,以下是包含下载安装包在内的完整详细步骤,基于 Ceph Quincy(稳定版)和 Ubuntu 22.04 系统:

一、环境规划

  • 节点角色:3 个节点均作为adminmonitorosd节点(小型集群合并部署),同时选择 1 个节点作为mds(元数据服务器)
  • 节点信息
    • node1: 192.168.1.101
    • node2: 192.168.1.102
    • node3: 192.168.1.103
  • 存储配置:每台 24 块 NVMe SSD(设备路径/dev/nvme0n1/dev/nvme23n1

二、前期准备(所有节点执行)

1. 系统基础配置
# 更新系统
sudo apt update && sudo apt upgrade -y# 关闭防火墙(生产环境建议配置规则)
sudo ufw disable# 禁用SELinux(Ubuntu默认无SELinux,可跳过)
sudo setenforce 0 2>/dev/null# 配置主机名解析
sudo tee -a /etc/hosts <<EOF
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
EOF# 配置免密登录(在node1执行,分发密钥到其他节点)
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
for node in node2 node3; dossh-copy-id $node
done
2. 安装依赖与 Ceph 仓库
# 安装依赖工具
sudo apt install -y chrony python3-pip lvm2# 添加Ceph官方仓库
sudo curl --silent --remote-name --location https://github.com/ceph/ceph/releases/download/v17.2.6/ceph-deploy_17.2.6_all.deb
sudo dpkg -i ceph-deploy_17.2.6_all.deb
sudo apt install -f -y  # 修复依赖# 添加Ceph源
echo "deb https://download.ceph.com/debian-quincy/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph.list
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
sudo apt update

三、初始化 Ceph 集群(在 node1 执行)

1. 创建集群工作目录
mkdir -p ~/ceph-cluster && cd ~/ceph-cluster
2. 初始化集群并部署 Monitor
# 初始化集群
ceph-deploy new node1 node2 node3# 调整集群配置(启用NVMe优化)
sudo tee -a ceph.conf <<EOF
osd_pool_default_size = 3  # 3副本(与节点数一致)
osd_pool_default_min_size = 2
osd_max_object_size = 1073741824  # 1GB
bluestore_cache_size_hdd = 0  # 禁用HDD缓存(全NVMe环境)
bluestore_cache_size_ssd = 4294967296  # 4GB SSD缓存
EOF# 部署Monitor并收集密钥
ceph-deploy mon create-initial
3. 部署 Admin 节点
# 分发配置文件和密钥到所有节点
ceph-deploy admin node1 node2 node3# 设置权限
for node in node1 node2 node3; dossh $node "sudo chmod +r /etc/ceph/ceph.client.admin.keyring"
done

四、配置 NVMe SSD 存储(所有节点执行)

1. 准备 NVMe 设备(每块盘单独作为 OSD)
# 清除磁盘分区表(谨慎操作!会清空数据)
for i in {0..23}; dosudo wipefs -a /dev/nvme${i}n1
done# 创建LVM物理卷(可选,推荐使用LVM便于管理)
for i in {0..23}; dosudo pvcreate /dev/nvme${i}n1
done
2. 在 node1 部署 OSD
cd ~/ceph-cluster# 为每个节点创建OSD(每块盘对应1个OSD)
for i in {0..23}; doceph-deploy osd create --data /dev/nvme${i}n1 node1ceph-deploy osd create --data /dev/nvme${i}n1 node2ceph-deploy osd create --data /dev/nvme${i}n1 node3
done# 验证OSD状态(共3×24=72个OSD)
ceph osd tree

五、部署 CephFS(在 node1 执行)

1. 创建 CephFS 存储池
# 计算PG数量:(72 OSD × 100) / 3副本 = 2400 → 向上取整为2560
ceph osd pool create cephfs-metadata 256  # 元数据池(PG数较小)
ceph osd pool create cephfs-data 2560     # 数据池(PG数较大)# 启用池的应用标记
ceph osd pool application enable cephfs-metadata cephfs
ceph osd pool application enable cephfs-data cephfs
2. 创建 CephFS 文件系统
ceph fs new mycephfs cephfs-metadata cephfs-data# 验证文件系统
ceph fs ls
3. 部署 MDS(元数据服务器)
# 在node1部署主MDS,node2/node3部署备用MDS
ceph-deploy mds create node1 node2 node3# 激活MDS(设置最大活跃MDS数量)
ceph fs set mycephfs max_mds 1# 验证MDS状态
ceph mds stat

六、客户端挂载 CephFS

1. 创建客户端访问密钥(在 node1 执行)
# 创建客户端用户
ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rw pool=cephfs-data, allow rw pool=cephfs-metadata' -o /etc/ceph/ceph.client.cephfs.keyring# 提取密钥
ceph auth get-key client.cephfs > /etc/ceph/ceph.client.cephfs.key
2. 在客户端节点挂载(以 node1 为例)
# 安装客户端工具
sudo apt install -y ceph-fuse# 创建挂载点
sudo mkdir -p /mnt/cephfs# 临时挂载(使用ceph-fuse)
sudo ceph-fuse -n client.cephfs -k /etc/ceph/ceph.client.cephfs.key /mnt/cephfs# 或使用内核挂载(性能更好)
sudo mount.ceph node1:6789,node2:6789,node3:6789:/ /mnt/cephfs -o name=cephfs,secretfile=/etc/ceph/ceph.client.cephfs.key
3. 配置永久挂载
# 编辑fstab
sudo tee -a /etc/fstab <<EOF
node1:6789,node2:6789,node3:6789:/ /mnt/cephfs ceph name=cephfs,secretfile=/etc/ceph/ceph.client.cephfs.key,_netdev 0 0
EOF# 验证挂载
sudo mount -a
df -h | grep /mnt/cephfs

七、性能优化(所有节点执行)

1. NVMe SSD 优化
# 启用TRIM
for i in {0..23}; dosudo systemctl enable fstrim.timersudo fstrim /var/lib/ceph/osd/ceph-*  # 对OSD目录执行TRIM
done# 调整NVMe队列深度
echo "options nvme_core io_queue_size=1024" | sudo tee /etc/modprobe.d/nvme.conf
sudo update-initramfs -u
2. Ceph 参数优化
# 调整OSD性能参数
ceph config set osd osd_op_threads 16
ceph config set osd osd_disk_threads 4
ceph config set osd bluestore_throttle_bytes 10737418240  # 10GB# 调整MDS缓存(根据节点内存设置,建议16GB以上)
ceph config set mds mds_cache_size 16384  # 16GB

八、验证与监控

# 查看集群健康状态
ceph -s# 查看CephFS状态
ceph fs status# 性能测试(在挂载点执行)
dd if=/dev/zero of=/mnt/cephfs/test bs=1G count=10 oflag=direct  # 测试写性能

文章转载自:

http://2axZ6zTJ.ktyww.cn
http://Wwk2bVoF.ktyww.cn
http://TjZNM7oU.ktyww.cn
http://5yg67o8g.ktyww.cn
http://bONejyWY.ktyww.cn
http://ZnKCqFNp.ktyww.cn
http://iYYhv2wH.ktyww.cn
http://YXvNBRBV.ktyww.cn
http://vQC1avOg.ktyww.cn
http://lcGLsRpQ.ktyww.cn
http://RL6YWYhm.ktyww.cn
http://isF5uo4e.ktyww.cn
http://T9RFikzN.ktyww.cn
http://9CoPAy0n.ktyww.cn
http://qlpsK868.ktyww.cn
http://MjXMWSve.ktyww.cn
http://F4xTA0vB.ktyww.cn
http://21YUwLvY.ktyww.cn
http://jQKrnQ4V.ktyww.cn
http://mAO5z874.ktyww.cn
http://gsiiaULl.ktyww.cn
http://gB3HlPyl.ktyww.cn
http://e0JNEHHS.ktyww.cn
http://6PSOWuoR.ktyww.cn
http://985O6PIY.ktyww.cn
http://adRixzLt.ktyww.cn
http://zHwclkHr.ktyww.cn
http://xdtToPDJ.ktyww.cn
http://FZJJQsKz.ktyww.cn
http://1dTYOMOk.ktyww.cn
http://www.dtcms.com/a/387396.html

相关文章:

  • 元宇宙与物流产业:数字孪生重构物流全链路运营
  • 通信算法之328:Vivado中FIFO的IP核
  • Android MediaCodec 编解码
  • Resolve JSON Reference for ASP.NET backend
  • 十一、vue3后台项目系列——封装请求,存储token,api统一化管理,封装token的处理工具
  • 一个OC的十年老项目刚接手编译报错:No Accounts: Add a new account in Accounts settings.
  • 苹果个人开发者如何实现应用下载安装
  • 【CSS】文档流
  • App 自动化:从环境搭建到问题排查,全方位提升测试效率
  • 微信小程序转uni-app
  • 深入理解线性回归与 Softmax 回归:从理论到实践
  • SSM-----Spring
  • ubuntu 24.04.02安装android-studio
  • WebRTC 定时任务Process Module
  • 【服务器挂掉了】A40和A800:“性能不足”和“系统崩溃”
  • EJS(Embedded JavaScript)(一个基于JavaScript的模板引擎,用于在HTML中嵌入动态内容)
  • 前端路由模式:Vue Router的hash模式和history模式详解
  • 信创电脑采购指南:选型要点与避坑攻略
  • 前端高级开发工程师面试准备一
  • window下Qt设置生成exe应用程序的图标
  • Linux(三) | Vim 编辑器的模式化架构与核心操作机制研究
  • Kubernetes 安全与资源管理:Secrets、资源配额与访问控制实战
  • Java基础知识总结(超详细)持续更新中~
  • 原生js过滤出对象数组中重复id的元素,并将其放置于一个同一个数组中
  • 《Python 对象创建的秘密:从 __new__ 到单例模式的实战演绎》
  • k8s 与 docker 的相同点和区别是什么?
  • Linux《线程(下)》
  • 第二部分:VTK核心类详解(第20章 vtkCamera相机类)
  • 线性回归与 Softmax 回归:深度学习入门核心模型解析
  • K8s配置管理:ConfigMap与Secret核心区别