统信UOS如何安装和配置Ceph存储

作者:袖梨 2026-08-03

处理统信UOS如何安装和配置Ceph存储这类问题时,先确认目标场景,再按步骤核对配置或玩法细节。

必须确保时间同步、主机名解析和SSH免密,否则ceph-deploy初始化monitor会卡住或报错;需配置/etc/hosts、关闭ufw、安装chrony、用python2-pip装ceph-deploy、指定--release pacific安装、手动追加ceph.conf关键参数、OSD磁盘须为空盘且未被LVM占用,最后启用RBD池并使用image-format 2创建镜像。

准备Ceph部署环境

在统信UOS上安装Ceph前,必须确保所有节点时间一致、主机名可解析、SSH免密通路畅通,否则ceph-deploy会在初始化monitor时卡住或报错bootstrap-osd runtimeerror。

在每台节点(包括管理节点)执行:hostnamectl set-hostname ceph-admin(管理节点)或ceph-node1(存储节点),然后统一编辑/etc/hosts,填入全部节点IP与主机名映射,例如192.168.26.110 ceph-admin和192.168.26.111 ceph-node1——这一步漏写任意一行,后续ceph-deploy new会因无法反向解析主机名而失败。

关闭防火墙:systemctl stop ufw && systemctl disable ufw。UOS默认启用ufw,不关会导致mon与osd端口(6789/6800-6805)被拦截,集群状态始终显示HEALTH_WARN

配置NTP时间同步:apt install -y chrony && systemctl enable --now chronyd && chronyc sources -v。

安装ceph-deploy并初始化集群

ceph-deploy是UOS Server 20/1040等长期支持版最稳妥的部署路径,它直接调用系统包管理器安装二进制,避免容器运行时兼容问题。

在管理节点运行:apt install -y python2-pip && pip2 install ceph-deploy——UOS 1040默认无python2-pip,跳过此步会导致No module named pkg_resources错误,中断整个流程。

创建部署目录并生成初始配置:mkdir ~/ceph-cluster && cd ~/ceph-cluster && ceph-deploy new ceph-node1 ceph-node2 ceph-node3。该命令自动生成ceph.confceph.client.admin.keyring,但需手动追加两行:osd pool default size = 2(双副本容灾)和public network = 192.168.26.0/24(替换为实际网段)。

执行ceph-deploy install --release pacific ceph-node1 ceph-node2 ceph-node3。注意:UOS 1040必须显式指定--release pacific或更高版本,否则安装的Nautilus包与内核模块不兼容,modprobe rbd会失败。

部署Monitor与OSD服务

第一步:部署monitor节点。运行ceph-deploy mon create-initial,成功后检查ceph -s输出是否含monmap e1osdmap e1。若卡在waiting for mon to start...,大概率是/etc/hosts中某节点IP写错或chrony未同步。

第二步:准备OSD磁盘。在每个存储节点上执行lsblk确认未挂载的裸盘(如sdb),然后运行ceph-deploy osd create --data /dev/sdb ceph-node1。这一步会自动分区、格式化、挂载到/var/lib/ceph/osd/ceph-0并启动osd守护进程。

第三步:推送配置与密钥。执行ceph-deploy admin ceph-admin ceph-node1 ceph-node2 ceph-node3,将ceph.client.admin.keyring复制到各节点/etc/ceph/目录并设置权限:chmod 644 /etc/ceph/ceph.client.admin.keyring。权限不对会导致rbd ls报错error connecting to the cluster

【关键前提】所有OSD磁盘必须是空盘且未被LVM或加密占用,否则ceph-deploy osd create会静默失败,ceph -s中显示0 osds

验证集群状态与启用RBD块存储

在管理节点执行ceph -s,确认输出中healthHEALTH_OKosds:行显示X up, X in(X为OSD总数),且pools:下有device_health_metrics池。

创建RBD专用存储池:rados mkpool rbd-pool,然后启用RBD功能:rbd pool init rbd-pool。这一步不可省略,否则后续rbd create会提示pool not enabled for RBD

在client节点(可复用ceph-admin)创建镜像:rbd create rbd-pool/test-image --size 2G --image-format 2。务必使用--image-format 2,UOS内核对format 1支持不稳定,挂载时可能触发I/O错误。

映射并挂载:rbd map rbd-pool/test-imagemkfs.xfs /dev/rbd0mount /dev/rbd0 /mnt。此时df -Th应显示/dev/rbd0已挂载为xfs文件系统。

相关文章

精彩推荐