商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 统信UOS怎么安装和配置Ceph存储

统信UOS怎么安装和配置Ceph存储

  发布于2026-07-08 阅读(0)

扫一扫,手机访问

先说三个必须踩实的硬前提:时间同步、主机名解析、SSH免密通路。这三件事但凡有一个没到位,ceph-deploy在初始化monitor的时候就一定会卡住或者直接报错botstrap-osd runtimeerror,这不是吓唬人。

每台节点(包括管理节点)上来第一步:hostnamectl set-hostname,管理节点就叫ceph-admin,存储节点依次叫ceph-node1、ceph-node2。然后统一改/etc/hosts,把全部节点的IP和主机名一条不落地写进去——比如192.168.26.110 ceph-admin、192.168.26.111 ceph-node1。注意,这里漏写任意一行,后面的ceph-deploy new就会因为反向解析失败直接挂掉,究其原因还是主机名查不到IP。

防火墙也得关掉:systemctl stop ufw && systemctl disable ufw。UOS默认开着ufw,这玩意儿不关,mon和osd的端口(6789和6800-6805)就被挡在外面了,集群状态永远给你一个HEALTH_WARN躺在那儿,看着都着急。

最后一件事:装chrony做时间同步。apt install -y chrony,接着systemctl enable --now chronyd,然后用chronyc sources -v看一眼同步状态。这一步跳过了,后续ceph-s的输出也会变得非常魔幻。

安装ceph-deploy并初始化集群

对于UOS Server 20/1040这类长期支持版来说,ceph-deploy其实是目前最靠谱的部署方式。它的做法是直接调用系统包管理器去装二进制包,完全绕开容器运行时可能带来的兼容性麻烦,稳得很。

在管理节点上跑: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.conf和ceph.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。这一步必须显式指定“--release pacific”,否则装的是Nautilus包,跟UOS内核模块不兼容,后面modprobe rbd铁定失败。这个坑踩过的人不少,提前说出来。

部署Monitor与OSD服务

首先部署monitor节点:ceph-deploy mon create-initial。跑完后立刻ceph -s检查,输出里得出现monmap e1和osdmap e1才算正常。如果卡在“waiting for mon to start...”出不来,那大概率是/etc/hosts里写了错误的IP,或者chrony根本没把时间同步好,自己去排查这两项就好。

接着是OSD磁盘的准备步骤。在每个存储节点上先lsblk看一下,找到未挂载的裸盘——比如/dev/sdb。然后跑命令:ceph-deploy osd create --data /dev/sdb ceph-node1。这个命令会自动完成分区、格式化,并把OSD挂到/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或加密占用。一旦有残留的LVM元数据或者加密签名,ceph-deploy osd create就会静默失败,最后ceph -s给你显示0 osds,谁也查不出原因,除非一个一个盘去清空。

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

在管理节点上执行ceph -s。理想的输出是health那一行为HEALTH_OK,osds那一行显示“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错误,format 2就稳妥多了。

最后是映射和挂载:先rbd map rbd-pool/test-image,再mkfs.xfs /dev/rbd0,然后mount /dev/rbd0 /mnt。跑完df -Th,看到/dev/rbd0已经挂载成xfs文件系统,大功告成。

本文转载于:https://www.php.cn/faq/2790070.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注