美文网首页
centos 8 cephadm 安装 ceph octopu

centos 8 cephadm 安装 ceph octopu

作者: Joncc | 来源:发表于2020-04-26 17:26 被阅读0次
CentOS Linux release 8.1.1911 (Core) ___(server版)

Python 3.6.8  

podman version 1.4.2-stable2

chronyc (chrony) version 3.5 (+READLINE +SECHASH +IPV6 +DEBUG)

Cephadm

部署新的ceph集群
Cephadm通过在单个主机上“引导”,将群集扩展为包含任何其他主机,然后部署所需的服务,来创建新的Ceph群集。

要求
系统化

Podman或Docker用于运行容器
时间同步(例如chrony或NTP)
用于供应存储设备的LVM2
任何现代Linux发行版都足够。依赖项将通过以下引导过程自动安装。

安装CEPHADM
该cephadm命令可以(1)引导新集群,(2)使用有效的Ceph CLI启动容器化的Shell,以及(3)调试容器化的Ceph守护进程。

有几种安装cephadm的方法:

使用curl获取独立脚本的最新版本:

# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
# chmod +x cephadm

可以使用以下命令直接从当前目录运行该脚本:

# ./cephadm <arguments...>

尽管独立脚本足以启动群集,但是cephadm在主机上安装命令很方便。要为当前的Octopus版本安装这些软件包:

yum install python
# ./cephadm add-repo --release octopus
# ./cephadm install

使用以下命令确认cephadm您的PATH中现在有以下内容:

# which cephadm

一些商业Linux发行版(例如RHEL,SLE)可能已经包括最新的Ceph软件包。在这种情况下,您可以直接安装cephadm。例如:

# dnf install -y cephadm     # or
# zypper install -y cephadm

引导新的群集
您需要知道用于集群的第一个监视器守护程序的IP地址。通常,这只是第一台主机的IP。如果存在多个网络和接口,请确保选择任何可供访问Ceph群集的主机访问的网络和接口。

要引导集群:

# mkdir -p /etc/ceph
# cephadm bootstrap --mon-ip *<mon-ip>*

安装完后查看 podman

# podman ps -a
CONTAINER ID  IMAGE                                COMMAND               CREATED         STATUS             PORTS  NAMES
e04e9d13b6e9  docker.io/ceph/ceph-grafana:latest   /bin/sh -c grafan...  8 minutes ago   Up 8 minutes ago          ceph-64273444-879c-11ea-b730-005056931f74-grafana.ceph15
d0612453d791  docker.io/prom/alertmanager:latest   /bin/alertmanager...  8 minutes ago   Up 8 minutes ago          ceph-64273444-879c-11ea-b730-005056931f74-alertmanager.ceph15
c710fa93f90c  docker.io/prom/node-exporter:latest  /bin/node_exporte...  9 minutes ago   Up 9 minutes ago          ceph-64273444-879c-11ea-b730-005056931f74-node-exporter.ceph15
a2cf52c9e6cf  docker.io/prom/prometheus:latest     /bin/prometheus -...  9 minutes ago   Up 9 minutes ago          ceph-64273444-879c-11ea-b730-005056931f74-prometheus.ceph15
ee5140a0f6a3  docker.io/ceph/ceph:v15              /usr/bin/ceph-cra...  11 minutes ago  Up 11 minutes ago         ceph-64273444-879c-11ea-b730-005056931f74-crash.ceph15
56883c556789  docker.io/ceph/ceph:v15              /usr/bin/ceph-mgr...  12 minutes ago  Up 12 minutes ago         ceph-64273444-879c-11ea-b730-005056931f74-mgr.ceph15.rfgjog
31908dc03200  docker.io/ceph/ceph:v15              /usr/bin/ceph-mon...  12 minutes ago  Up 12 minutes ago         ceph-64273444-879c-11ea-b730-005056931f74-mon.ceph15
ceph mgr services  
创建 web 登录用户密码

ceph dashboard set-login-credentials {user-name} {password}

查看dashboard 服务端口
ceph mgr services

该命令将:
  • 在本地主机上为新集群创建监视和管理器守护程序。

  • 为Ceph集群生成一个新的SSH密钥,并将其添加到root用户的
    /root/.ssh/authorized_keys文件中。

  • 将与新集群进行通信所需的最小配置文件编写为
    /etc/ceph/ceph.conf

  • 将client.admin管理(特权!)秘密密钥的副本写入/etc/ceph/ceph.client.admin.keyring

  • 将公用密钥的副本写入 /etc/ceph/ceph.pub

  • 默认的引导行为将对绝大多数用户起作用。请参阅下文,了解一些可能对某些用户有用的选项,或者查看所有可用选项:
    cephadm bootstrap -h

/etc/ceph为了方便起见,Bootstrap会将访问新集群所需的文件写入其中 ,以便主机上安装的任何Ceph软件包(例如,访问命令行界面)都可以轻松找到它们。

但是,根本不需要使用cephadm部署的守护程序容器 /etc/ceph。使用该选项将它们放置在其他目录中(例如),避免与同一主机上的现有Ceph配置(cephadm或其他方式)潜在冲突。
--output-dir *<directory>*.

您可以将任何初始Ceph配置选项传递到新集群,方法是将它们放置在标准ini样式的配置文件中并使用该选项。--config *<config-file>*

启用CEPH
Cephadm不需要在主机上安装任何Ceph软件包。但是,我们建议启用对ceph 命令的轻松访问。做这件事有很多种方法:

该命令在安装了所有Ceph软件包的容器中启动bash shell。默认情况下,如果在主机上找到配置文件和密钥环文件,它们将被传递到容器环境中,从而使外壳程序具有完整的功能:cephadm shell/etc/ceph

# cephadm shell

创建别名可能会有所帮助:

# alias ceph='cephadm shell -- ceph'

您可以安装ceph-common包,里面包含了所有的头孢命令,其中包括ceph,rbd,mount.ceph(用于安装CephFS文件系统)等:

# cephadm add-repo --release octopus
# cephadm install ceph-common

使用以下ceph命令确认该命令是否可访问:

# ceph -v

通过以下ceph命令确认命令可以连接到集群及其状态:

# ceph status

将主机添加到集群中
要将每个新主机添加到群集,请执行两个步骤:

在新主机的root用户的authorized_keys文件中安装集群的公共SSH密钥 :

# ssh-copy-id -f -i /etc/ceph/ceph.pub root@*<new-host>*

例如:

# ssh-copy-id -f -i /etc/ceph/ceph.pub root@host2
# ssh-copy-id -f -i /etc/ceph/ceph.pub root@host3

告诉Ceph,新节点是集群的一部分:

# ceph orch host add *newhost*

例如:

# ceph orch host add host2
# ceph orch host add host3

部署其他监视器(可选)
一个典型的Ceph集群具有三个或五个分布在不同主机上的监视守护程序。如果群集中有五个或更多节点,我们建议部署五个监视器。

当Ceph知道监视器应该使用哪个IP子网时,它可以随着群集的增长(或收缩)自动部署和扩展监视器。默认情况下,Ceph假定其他监视器应使用与第一台监视器IP相同的子网。

如果您的Ceph监视器(或整个群集)位于单个子网中,则默认情况下,当您向群集中添加新主机时,cephadm会自动最多添加5个监视器。无需其他步骤。

如果监视器应使用特定的IP子网,则可以使用以下命令以CIDR格式(例如10.1.2.0/24)配置该IP子网:

# ceph config set mon public_network *<mon-cidr-network>*

例如:

# ceph config set mon public_network 10.1.2.0/24

Cephadm仅在已在配置的子网中配置了IP的主机上部署新的监视器守护程序。

如果要调整5个监视器的默认值:

# ceph orch apply mon *<number-of-monitors>*

要将监视器部署在一组特定的主机上:

# ceph orch apply mon *<host1,host2,host3,...>*

确保在此列表中包括第一台(引导)主机。

您可以通过使用主机标签来控制运行监视器的主机。要将mon标签设置为适当的主机:

# ceph orch host label add *<hostname>* mon

要查看当前的主机和标签:

# ceph orch host ls

例如:

# ceph orch host label add host1 mon
# ceph orch host label add host2 mon
# ceph orch host label add host3 mon
# ceph orch host ls
HOST   ADDR   LABELS  STATUS
host1         mon
host2         mon
host3         mon
host4
host5

告诉cephadm根据标签部署监视器:

# ceph orch apply mon label:mon

您可以为每个监视器和控件明确地指定IP地址或CIDR网络。要禁用自动监视器部署:

# ceph orch apply mon --unmanaged

要部署每个其他监视器:

# ceph orch daemon add mon *<host1:ip-or-network1> [<host1:ip-or-network-2>...]*

例如,要在newhost1IP地址上部署第二台监视器,10.1.2.123并newhost2在网络中部署第三台监视器10.1.2.0/24:

# ceph orch apply mon --unmanaged
# ceph orch daemon add mon newhost1:10.1.2.123
# ceph orch daemon add mon newhost2:10.1.2.0/24

部署的OSD
所有群集主机上的存储设备清单可以显示为:

# ceph orch device ls

如果满足以下所有条件,则认为存储设备可用:

设备必须没有分区。

设备不得具有任何LVM状态。

不得安装设备。

该设备不得包含文件系统。

该设备不得包含Ceph BlueStore OSD。

设备必须大于5 GB。

Ceph拒绝在不可用的设备上配置OSD。

有几种创建新OSD的方法:

告诉Ceph使用任何可用和未使用的存储设备:

# ceph orch apply osd --all-available-devices

从特定主机上的特定设备创建OSD:

# ceph orch daemon add osd *<host>*:*<device-path>*

例如:

# ceph orch daemon add osd host1:/dev/sdb

使用OSD服务规范基于设备的属性来描述要使用的设备,例如设备类型(SSD或HDD),设备型号名称,大小或设备所在的主机:

# ceph orch apply osd -i spec.yml

部署的MDS
要使用CephFS文件系统,需要一个或多个MDS守护程序。如果使用较新的 界面来创建新的文件系统,则会自动创建这些文件。有关更多信息,请参见FS卷和子卷。ceph fs volume

部署元数据服务器:

# ceph orch apply mds *<fs-name>* --placement="*<num-daemons>* [*<host1>* ...]"

有关放置规范的详细信息,请参见放置规范。

部署RGWS
Cephadm将radosgw部署为管理特定领域和区域的守护程序的集合。(有关领域和区域的更多信息,请参见Multi-Site。)

请注意,使用cephadm时,radosgw守护程序是通过监视器配置数据库而不是通过ceph.conf或命令行来配置的。如果该配置尚未就绪(通常在本 client.rgw.<realmname>.<zonename>节中),那么radosgw守护程序将使用默认设置(例如,绑定到端口80)启动。

如果尚未创建领域,请首先创建一个领域:

# radosgw-admin realm create --rgw-realm=<realm-name> --default

接下来创建一个新的区域组:

# radosgw-admin zonegroup create --rgw-zonegroup=<zonegroup-name>  --master --default

接下来创建一个区域:

# radosgw-admin zone create --rgw-zonegroup=<zonegroup-name> --rgw-zone=<zone-name> --master --default

为特定领域和区域部署一组radosgw守护程序:

# ceph orch apply rgw *<realm-name>* *<zone-name>* --placement="*<num-daemons>* [*<host1>* ...]"

例如,要 在myhost1和myhost2上部署两个服务于myorg领域和us-east-1区域的rgw守护程序:

# radosgw-admin realm create --rgw-realm=myorg --default
# radosgw-admin zonegroup create --rgw-zonegroup=default --master --default
# radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=us-east-1 --master --default
# ceph orch apply rgw myorg us-east-1 --placement="2 myhost1 myhost2"

有关放置规范的详细信息,请参见放置规范。

部署NFS GANESHA

Cephadm使用预定义的RADOS 池 和可选的名称空间部署NFS Ganesha

要部署NFS Ganesha网关,请执行以下操作:

# ceph orch apply nfs *<svc_id>* *<pool>* *<namespace>* --placement="*<num-daemons>* [*<host1>* ...]"

例如,同一个服务ID部署NFS FOO,将使用RADOS池NFS的象头和命名空间NFS-NS,:

# ceph orch apply nfs foo nfs-ganesha nfs-ns

注意 如果nfs-ganesha池不存在,请首先创建它。

相关文章

网友评论

      本文标题:centos 8 cephadm 安装 ceph octopu

      本文链接:https://www.haomeiwen.com/subject/uywavhtx.html