说明
文档适用于cenots7.9操作系统下部署ceph octopus版本分布式存储使用。
离线部署的本质是先基于在线环境如vmware workstation虚拟机在线完整的部署一次,以获取部署所需的软件包。
文档可用于在线部署,亦可用于离线部署。
离线部署关键点(注意文章中部署描述):
- 准备好所需的rpm包
- 准备好所需的docker镜像
- 修改cephadm代码
一、环境说明
1.1 Ceph软件架构
关键组件释义:
1.2 服务器规划
3台虚拟机,每台主机两个网段。管理和业务网络分离部署,3个监控节点。20GB磁盘安装操作系统、40G规格磁盘裸盘配置osd。
1.3 软件清单
Vmware+centos7+docker+ceph
1.4 部署步骤
①、配置基础环境
- 关闭操作系统安全软件
- 设置ip地址
- 设置ntp
- 设置主机名和hosts解析
- 禁用swap
- 配置免密登录
- 配置yum源
- 安装依赖软件
②、ceph软件部署
- 配置cephadm
- 初始化ceph集群
- 添加集群节点
- 设置mon节点
- 部署osd
- 部署mds
- 部署rgw
二、基础环境部署
2.1 关闭安全软件
所有节点均需配置。
##关闭firewalld防火墙 # systemctl stop firewalld # systemctl disable firewalld # systemctl mask firewalld ##关闭selinux # setenforce 0 # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2.2 设置ip地址
所有节点均需配置。
##删除当前存在的配置 # nmcli conn delete ens33;nmcli conn delete ens36 ##创建新IP地址配置文件ens33 # nmcli conn add type ethernet ifname ens33 con-name ens33 connection.autoconnect yes ipv4.method manual ipv4.gateway "192.168.10.2" ipv4.dns "192.168.10.2" ipv4.addresses "192.168.10.100/24" ##创建新IP地址配置文件ens36 # nmcli conn add type ethernet ifname ens36 con-name ens36 connection.autoconnect yes ipv4.method manual ipv4.addresses "192.168.20.100/24" ##手动down,up网卡配置。 # nmcli conn down ens33;nmcli conn down ens33;nmcli conn up ens33;nmcli conn up ens33
2.3 构建ntp服务器(选配)
如果环境中有可用的ntp服务器该步骤可省略,在节点中任选一台机器配置ntp服务器(只在某一台上面操作)
##编辑/etc/chrony.conf配置文件,允许节点网段访问。 # vim /etc/chrony.confserver 192.168.20.100 iburstallow 192.168.20.0/24local stratum 10 # systemctl restart chronyd # systemctl enable chronyd ##查看时间是否同步 # chronyc sources
2.4 节点配置ntp
所有节点均需配置。可以使用已有的ntp服务器,也可以使用上一步创建的ntp服务器。
##每个节点均需要配置 # vim /etc/chrony.confserver 192.168.20.100 iburst # systemctl restart chronyd # systemctl enable chronyd ##查看时间是否同步 # chronyc sources
2.5 配置主机名和hosts解析
所有节点均需配置。
##配置主机名,每个节点均需要配置,红色字体部分按照实际环境替换。 # hostnamectl set-hostname ceph01##每个节点均需要配置,添加蓝色字体内容 # cat /etc/hosts192.168.10.100 ceph01192.168.10.101 ceph02192.168.10.102 ceph03192.168.20.100 ceph01192.168.20.101 ceph02192.168.20.102 ceph03
2.6 禁用swap
所有节点均需配置。
##每个节点均需要配置,sed修改后确保/etc/fstab文件中没有swap相关行。 # swapoff -a # sed -i '/swap/d' /etc/fstab
2.7 配置免密登录
主节点上操作即可。
##生成密钥,传到其他节点上。 # ssh-keygen -f /root/.ssh/id_rsa -P '' # ssh-copy-id -o StrictHostKeyChecking=no 192.168.10.100 # ssh-copy-id -o StrictHostKeyChecking=no 192.168.10.101 # ssh-copy-id -o StrictHostKeyChecking=no 192.168.10.102
2.8 配置yum源
所有节点均需配置。
阿里云线上centos7yum源,/etc/yum.repos.d/alibase.repo。
[base] name=CentOS-$releasever – Base – mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever – Updates – mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever – Extras – mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
清华大学octopus版本ceph yum源,/etc/yum.repos.d/qhceph.repo。
[ceph] name=ceph baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/x86_64/ enabled=1 gpgcheck=0[Ceph-noarch] name=Ceph noarch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/noarch/ enabled=1 gpgcheck=0[Ceph-source] name=Ceph SRPMS baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/SRPMS/ enabled=1 gpgcheck=0
阿里云线上docker-ce yum源,/etc/yum.repos.d/alidocker-ce.repo。
[docker-ce-stable] name=Docker CE Stable – $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpgbaseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/SRPMS/ enabled=1 gpgcheck=0
阿里云线上cetos7 扩展yum源,/etc/yum.repos.d/alicetos-epel.repo。
[epel] name=Extra Packages for Enterprise Linux 7 – $basearch baseurl=http://mirrors.aliyun.com/epel/7/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
阿里云线上cetos7 k8syum源,/etc/yum.repos.d/alik8s.repo。
[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
yum源配置完成过后,执行以下命令。
##刷新yum源仓库,载入yum源 # yum clean all # yum repolist
2.9 安装依赖软件
所有节点均需配置。
##安装必要的依赖软件。 # yum install -y python3 yum-utils docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin python3-ceph-common python3-ceph-argparse ceph-common ##配置docker-ce软件 # cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://sdmy9bft.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"] } EOF # systemctl daemon-reload;systemctl enable docker --now # systemctl status docker
(以下操作如离线安装必须操作:离线部署软件包获取开始)
如果需要离线安装需要同步保存下载的软件的包。在线安装软件时加上如下命令即可。
yum -y install --downloadonly --downloaddir /soft
##只下载软件包不安装。 # mkdir -p /soft # yum install --downloadonly --downloaddir /soft yum-utils docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin python3-ceph-common python3-ceph-argparse ceph-common createrepo ##查看包是否下载成功 # ls /soft##以/soft文件夹内文件创建yum仓库文件 # cd /soft # createrepo .
# cd /
# tar -zcvf ceph_rpm.tar.gz /soft
(离线部署软件包获取完成)
三、ceph部署
3.1 配置cephadm软件
其中用来安装配置的机器上执行即可,文章中在第一个节点中执行。(重点注意红色字体描述)
##下载cephadm软件 # curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm ##添加cephadm可执行权限 # chmod +x cephadm ##离线部署时需要手动修改cephadm工具中的内容,将里面的 command_pull 函数里面 cmd 数组中的 'pull' 改为了 'images'。 cmd = [container_path, 'pull', image] cmd = [container_path, ' images', image]
3.2 初始化ceph集群
其中用来安装配置的机器上执行即可,文章中在第一个节点中执行。
##为ceph创建一个配置文件夹 # mkdir -p /etc/ceph ##初始化ceph集群 # ./cephadm bootstrap --mon-ip 192.168.10.100
3.3 集群添加节点
其中用来安装配置的机器上执行即可,文章中在第一个节点中执行。
##添加公钥到新主机 # ssh-copy-id -f -i /etc/ceph/ceph.pub ceph02 # ssh-copy-id -f -i /etc/ceph/ceph.pub ceph03 ##添加节点到集群 # ceph orch host add ceph02 # ceph orch host add ceph03 ##查看集群节点 # ceph orch host ls
3.4 设置mon节点
其中用来安装配置的机器上执行即可,mon节点必须为单数。
##配置mon网段 # ceph config set mon public_network 192.168.20.0/24 ##调整mon数量为3个 # ceph orch apply mon 3 ##设置调度mon到三个制定的节点上 # ceph orch apply mon "ceph01,ceph02,ceph03" ##查看集群状态 # ceph -s ##查看确认主机标签 # ceph orch host ls
3.5 部署OSD
其中用来安装配置的机器上执行即可。
##查看osd磁盘信息 # ceph orch device ls##使用节点上所有未使用的磁盘部署OSD # ceph orch apply osd --all-available-devices ##在特定节点制定特定的磁盘部署OSD # ceph orch daemon add osd ceph01:/dev/sdb ##查看osd磁盘信息 # ceph orch device ls ##查看集群整体状态 # ceph -s
3.6 部署MDS
其中用来安装配置的机器上执行即可。MDS是ceph文件存储接口,如果确认不使用NAS文件系统,可不安装MDS。
##创建一个pool存储nas数据文件 # ceph osd pool create cephfs_data 64 64 ##创建一个pool存储nas元数据文件 # ceph osd pool create cephfs_metadata 64 64 ##创建一个 CephFS, 制定元数据和数据的存储pool # ceph fs new cephfs cephfs_metadata cephfs_data ##启用mds # ceph orch apply mds cephfs --placement="3 ceph01 ceph02 ceph03" Scheduled mds.cephfs update... ##查看cephfs状态 # ceph fs status cephfs
3.7 部署RGW
RGW是Ceph对象存储网关服务RADOS Gateway的简称,基于LIBRADOS接口封装而实现的FastCGI服务,对外提供RESTful风格的对象存储数据访问和管理接口。
# ceph orch apply rgw myorg cn-east-1 --placement="3 ceph01 ceph02 ceph03"
3.8 打包docker镜像
这一步很关键,由于网络的问题,需要等以上步骤完成过后,集群状态HEALTH_OK后再进行镜像打包。
##确认集群状态为HEALTH_OK状态。health: HEALTH_OK # cephs -s ##查看当前docker下镜像信息 # docker images # docker save -o ceph_docker_images.tar.gz quay.io/ceph/ceph:v15 quay.io/ceph/ceph-grafana:6.7.4 quay.io/prometheus/prometheus:v2.18.1 quay.io/prometheus/alertmanager:v0.20.0 quay.io/prometheus/node-exporter:v0.18.1
四、离线部署注意事项(很重要)
4.1 文件保存
把 2.9章节保存的 ceph_rpm.tar.gz 文件、3.1章节修改的cephadm文件、3.8保存的ceph_docker_images.tar.gz文件都从机器上下载下来。
4.2 文件使用
yum配置:离线部署时,主机的yum源配置ceph_rpm.tar.gz解压过后的路径即可。如解压到/ceph_data/下,yum配置文件中的baseurl=file:///ceph_data/soft/
docker镜像:2.9章节执行完成过后,使用 docker load -i ceph_docker_images.tar.gz 命令导入镜像到docker软件中。
cephadm:离线环境中3.1章节的curl下载软件命令不用执行,使用在保存的已修改完成的cephadm文件即可。