在Ubuntu 18.04上设置三节点Ceph存储集群
欢迎来到我们的教程,了解如何在Ubuntu 18.04上设置三节点ceph存储集群。 Ceph是一个可扩展的分布式存储系统,专为云基础架构和网络规模而设计 对象存储。它也可以用来提供 Ceph块存储 以及 Ceph文件系统存储。
在Ubuntu 18.04上设置三节点Ceph存储集群
Ceph存储集群设置至少需要一个Ceph监视器,Ceph管理器和Ceph OSD(对象存储守护程序),并且可能是用于提供Ceph文件系统存储的Ceph元数据服务器。
我们的部署架构
上面使用了不同的Ceph组件;
- Ceph对象存储守护进程(OSD,
ceph-osd
)- 它提供ceph对像数据存储。
- 它还执行数据复制,数据恢复,重新平衡,并将存储信息提供给Ceph Monitor。
- Ceph Monitor(
ceph-mon
)- 它维护整个ceph集群状态的映射,包括监视器映射,管理器映射,OSD映射和CRUSH映射。
- 管理守护程序和客户端之间的身份验证
- Ceph Deploy / Admin节点(
ceph-deploy
)- 它是安装了Ceph部署脚本(ceph-deploy)的节点。
- Ceph经理 (
ceph-mgr
)- 跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载。
- 管理和公开Ceph群集Web仪表板和API。
- 高可用性至少需要两名经理。
在Ubuntu 18.04上为Ceph存储集群部署准备Ceph节点
将存储磁盘连接到Ceph OSD节点
上面我们架构中的每个Ceph OSD节点都有每个4 GB的未分配LVM逻辑卷。
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-a----- 3.99g
运行系统更新
在所有节点上,更新系统软件包。
apt update
更新主机文件
首先,请设置节点,分配地址并确保它们可以通过更新主机文件进行通信。例如,在我们的设置中,每个节点主机文件应包含以下几行;
less /etc/hosts
... 192.168.2.114 ceph-admin.kifarunix-demo.com ceph-admin 192.168.2.115 ceph-osd01.kifarunix-demo.com ceph-osd01 192.168.2.116 ceph-osd02.kifarunix-demo.com ceph-osd02 192.168.2.117 ceph-osd03.kifarunix-demo.com ceph-osd03
设置时间同步
确保所有节点上的时间均已同步。因此,在每个服务器上安装Chrony并进行设置,以使所有节点都使用同一台NTP服务器。
apt install chrony
编辑Chrony配置并通过将NTP服务器池替换为NTP服务器地址来设置NTP服务器。
vim /etc/chrony/chrony.conf
... # pool ntp.ubuntu.com iburst maxsources 4 # pool 0.ubuntu.pool.ntp.org iburst maxsources 1 # pool 1.ubuntu.pool.ntp.org iburst maxsources 1 # pool 2.ubuntu.pool.ntp.org iburst maxsources 2 pool ntp.kifarunix-demo.com iburst ...
重新启动Chronyd
systemctl restart chronyd
安装SSH服务器
通过ceph-deploy实用程序进行的Ceph部署要求在所有节点上都安装SSH服务器。
Ubuntu 18.04附带已安装的SSH服务器。如果不是,请按照以下步骤安装并启动它;
apt install openssh-server
systemctl enable --now sshd
安装Python 2
在Ubuntu 18.04上部署Ceph需要Python 2。您可以通过执行以下命令来安装Python 2 在所有Ceph节点上;
apt install python-minimal
创建Ceph部署用户
在所有ceph节点上,使用安装ceph软件包和配置所需的无密码sudo创建ceph用户,如下所示。不要使用用户名 ceph
因为它是保留的。
更换 cephadmin
用户名。
useradd -m -s /bin/bash cephadmin
passwd cephadmin
echo "cephadmin ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers.d/cephadmin
chmod 0440 /etc/sudoers.d/cephadmin
设置无密码SSH登录
为了能够使用ceph-deploy实用程序在ceph节点上无缝运行ceph配置,您需要设置无密码ssh登录 从ceph管理节点。
上 ceph-admin节点, 切换到 cephadmin
上面创建的用户;
su - cephadmin
接下来,通过将密码短语保留为空来生成无密码的SSH密钥。
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cephadmin/.ssh/id_rsa):
Created directory '/home/cephadmin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/cephadmin/.ssh/id_rsa.
Your public key has been saved in /home/cephadmin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hCX07NgcOmFx7gJrS8QCphNBqdjToPe73AtRNaC+f9k [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|=+. .=.= |
|o+.. . @ . |
|=o.o= = * |
|+.++.= X . |
| . o* = S |
| o.+ o |
| +. o |
| ..+ o E |
| o.+o |
+----[SHA256]-----+
接下来,将密钥复制到所有其他节点。为了简化复制,如下所示更新〜/ .ssh / config文件;
vim ~/.ssh/config
Host ceph-osd01 Hostname ceph-osd01 User cephadmin Host ceph-osd02 Hostname ceph-osd02 User cephadmin Host ceph-osd03 Hostname ceph-osd03 User cephadmin
之后,复制SSH密钥。
for i in ceph-osd01 ceph-osd02 ceph-osd03; do ssh-copy-id $i; done
在每个提示符下输入密码,以将生成的用于无密码身份验证的SSH密钥从Ceph管理员复制到Ceph节点。
在Ubuntu 18.04上设置Ceph存储集群
安装 ceph-deploy
Ceph管理节点上的实用程序
在Ceph管理节点上,您需要安装ceph-deploy实用程序。要安装ceph-deploy实用程序和其他Ceph软件包,您需要创建Ceph存储库。
在Ubuntu 18.04上创建Ceph存储库
安装Ceph存储库签名密钥。以root用户身份执行这些命令。
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
检查 ceph的最新稳定发行版 并更换 {ceph-stable-release} 与版本名称。
echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list
例如,在Ubuntu 18.04上安装Ceph Mimic的仓库。
echo deb https://download.ceph.com/debian-mimic/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list
将存储库重新同步到其最新版本。
apt update
安装Ceph部署实用程序。
apt install ceph-deploy
设置Ceph群集监视器
现在,您的节点已准备好部署Ceph存储集群。首先,切换到 cephadmin
上面创建的用户。
su - cephadmin
注意:不要运行 ceph-deploy
与 sudo
也不以 root
。
在Ceph管理员主目录上创建一个目录,用于存储由ceph-deploy命令生成的配置文件和密钥;
mkdir kifarunix-cluster
导航到上面创建的目录。
cd kifarunix-cluster
初始化Ceph集群监视器。我们的Ceph集群监视器在Ceph OSD 01上运行。
ceph-deploy new ceph-osd01
...
[ceph_deploy.new][DEBUG ] Creating new cluster named ceph
[ceph_deploy.new][INFO ] making sure passwordless SSH succeeds
[ceph-osd01][DEBUG ] connected to host: ceph-admin.kifarunix-demo.com
[ceph-osd01][INFO ] Running command: ssh -CT -o BatchMode=yes ceph-osd01
[ceph-osd01][DEBUG ] connection detected need for sudo
[ceph-osd01][DEBUG ] connected to host: ceph-osd01
[ceph-osd01][DEBUG ] detect platform information from remote host
[ceph-osd01][DEBUG ] detect machine type
[ceph-osd01][DEBUG ] find the location of an executable
[ceph-osd01][INFO ] Running command: sudo /bin/ip link show
[ceph-osd01][INFO ] Running command: sudo /bin/ip addr show
[ceph-osd01][DEBUG ] IP addresses found: [u'192.168.2.114', u'10.0.2.15']
[ceph_deploy.new][DEBUG ] Resolving host ceph-osd01
[ceph_deploy.new][DEBUG ] Monitor ceph-osd01 at 192.168.2.114
[ceph_deploy.new][DEBUG ] Monitor initial members are ['ceph-osd01']
[ceph_deploy.new][DEBUG ] Monitor addrs are ['192.168.2.114']
[ceph_deploy.new][DEBUG ] Creating a random mon key...
[ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring...
[ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf
在Ceph节点上安装Ceph软件包
接下来,通过执行以下命令在所有节点上安装Ceph软件包 ceph-deploy install
在Ceph Admin节点上的命令,如下所示。
默认情况下,ceph-deploy也会安装最新的Ceph稳定发行版,即 Ceph模拟 在撰写本文时。
ceph-deploy install ceph-osd01 ceph-osd02 ceph-osd03
部署Ceph集群监视器
上面已经初始化了Ceph集群监视器。要部署它,请在Ceph Admin节点上执行以下命令。
ceph-deploy mon create-initial
此命令将在当前工作目录上生成许多密钥。
...
[ceph_deploy.gatherkeys][INFO ] Storing ceph.client.admin.keyring
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-mds.keyring
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-mgr.keyring
[ceph_deploy.gatherkeys][INFO ] keyring 'ceph.mon.keyring' already exists
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-osd.keyring
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-rgw.keyring
[ceph_deploy.gatherkeys][INFO ] Destroy temp directory /tmp/tmpIzZYbV
复制Ceph配置文件和密钥
接下来,复制上面收集的配置文件和管理密钥 到您所有的Ceph节点 使您可以使用 ceph
CLI,而无需指定监视器地址和 ceph.client.admin.keyring
每次执行命令时。
ceph-deploy admin ceph-osd01 ceph-osd02 ceph-osd03
...
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-osd01
[ceph-osd01][DEBUG ] connection detected need for sudo
[ceph-osd01][DEBUG ] connected to host: ceph-osd01
[ceph-osd01][DEBUG ] detect platform information from remote host
[ceph-osd01][DEBUG ] detect machine type
[ceph-osd01][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-osd02
[ceph-osd02][DEBUG ] connection detected need for sudo
[ceph-osd02][DEBUG ] connected to host: ceph-osd02
[ceph-osd02][DEBUG ] detect platform information from remote host
[ceph-osd02][DEBUG ] detect machine type
[ceph-osd02][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-osd03
[ceph-osd03][DEBUG ] connection detected need for sudo
[ceph-osd03][DEBUG ] connected to host: ceph-osd03
[ceph-osd03][DEBUG ] detect platform information from remote host
[ceph-osd03][DEBUG ] detect machine type
[ceph-osd03][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
部署Ceph Manager守护程序
将Ceph配置文件和密钥复制到所有节点后,通过执行以下命令来部署Ceph Cluster Manager守护程序。
请注意,我们的Ceph Manager驻留在Ceph节点01 osd01上。
ceph-deploy mgr create ceph-osd01
将逻辑存储卷附加到Ceph OSD节点
在我们的设置中,我们在每个OSD节点上都有4 GB的未分配逻辑卷,可以用作OSD守护程序的后备存储。
要将逻辑卷附加到OSD节点,请运行以下命令。 更换vg01 / lv01 与卷组和逻辑卷相应。
ceph-deploy osd create --data vg01/lv01 ceph-osd01
...
[ceph-osd01][WARNIN] --> ceph-volume lvm activate successful for osd ID: 0
[ceph-osd01][WARNIN] --> ceph-volume lvm create successful for: vg01/lv01
[ceph-osd01][INFO ] checking OSD status...
[ceph-osd01][DEBUG ] find the location of an executable
[ceph-osd01][INFO ] Running command: sudo /usr/bin/ceph --cluster=ceph osd stat --format=json
[ceph_deploy.osd][DEBUG ] Host ceph-osd01 is now ready for osd use.
对其他OSD节点重复相同的操作。
ceph-deploy osd create --data vg01/lv01 ceph-osd02
ceph-deploy osd create --data vg01/lv01 ceph-osd03
Ceph节点现在可以用于OSD。
检查Ceph集群运行状况
要验证ceph集群的健康状态,只需执行以下命令 ceph health
在每个OSD节点上。
从管理节点检查Ceph集群的健康状态;
[email protected]:~$ ssh ceph-osd01 sudo ceph health
HEALTH_OK
对其他节点重复相同的操作。
您也可以从ceph节点检查集群运行状况。
[email protected]:~$ sudo ceph health
HEALTH_OK
要检查完整的群集运行状况,请运行 ceph -s
, ceph --status
要么 ceph status
。
从Ceph Admin节点;
[email protected]:~$ ssh ceph-osd01 sudo ceph -s
cluster:
id: ecc4e749-830a-4ec5-8af9-22fcb5cadbca
health: HEALTH_OK
services:
mon: 1 daemons, quorum ceph-osd01
mgr: ceph-osd01(active)
osd: 3 osds: 3 up, 3 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 9.0 GiB / 12 GiB avail
pgs:
从Ceph节点检查完整的运行状况集群;
[email protected]:~$ sudo ceph -s
cluster:
id: ecc4e749-830a-4ec5-8af9-22fcb5cadbca
health: HEALTH_OK
services:
mon: 1 daemons, quorum ceph-osd01
mgr: ceph-osd01(active)
osd: 3 osds: 3 up, 3 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 9.0 GiB / 12 GiB avail
pgs:
卸载Ceph软件包
如果由于某些原因,您想通过以下方式在Ceph Admin节点上执行以下命令来重新启动Ceph部署,删除Ceph软件包,删除所有节点上的Ceph配置数据:
相应地替换Ceph节点。
ceph-deploy purge ceph-osd01 ceph-osd02 ceph-osd03 ceph-deploy purgedata ceph-osd01 ceph-osd02 ceph-osd03 ceph-deploy forgetkeys rm ceph.*
在Ubuntu 18.04上扩展Ceph集群
现在您的基本Ceph群集已启动并正在运行,您可以对其进行扩展以确保Ceph群集的可靠性和高可用性。
在Ceph集群上部署其他Ceph监视器
您可以向您的Ceph集群节点添加更多的Ceph监视器守护程序(ceph-mon)。
例如,要将Ceph监视器添加到Ceph节点02,ceph-osd02,您可以从Ceph Admin节点运行以下命令。
su - cephadmin
cd kifarunix-cluster/
将您的公共网络添加到 ceph.conf
配置文件,即使您的节点仅具有单个网络接口也是如此。
注意行; public network = 192.168.2.0/24
vim ceph.conf
[global] fsid = ecc4e749-830a-4ec5-8af9-22fcb5cadbca mon_initial_members = ceph-osd01 mon_host = 192.168.2.114 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx public network = 192.168.2.0/24
接下来,将Ceph监视器添加到您的Ceph节点。
ceph-deploy mon add ceph-osd02
您可以通过从Ceph OSD节点运行以下命令来检查Ceph监视器仲裁状态。
ceph quorum_status --format json-pretty
在Ceph集群上部署其他Ceph Manager
Ceph管理器守护程序(ceph-mgr
)与监视器守护程序一起运行,以提供其他监视和与外部监视和管理系统的接口。它们以活动/备用模式运行,这样,如果一个守护程序或主机发生故障,另一守护程序或主机可以接管而不会中断服务。
您可以通过运行以下命令将更多的Ceph管理器添加到集群;
ceph-deploy mgr create {ceph-node1} {ceph-node2}
例如,要在我们的Ceph节点2上部署一个额外的Ceph Manger,请从Ceph Admin节点部署ceph-osd02;
su - cephadmin
cd kifarunix-cluster/
ceph-deploy mgr create ceph-osd02
如果检查Ceph集群状态,则应该看到其中一个管理器处于活动状态,而另一个处于待机状态。
[email protected]:~/kifarunix-cluster$ ssh ceph-osd01 sudo ceph -s
cluster: id: ecc4e749-830a-4ec5-8af9-22fcb5cadbca health: HEALTH_OK services: mon: 2 daemons, quorum ceph-osd01,ceph-osd02 mgr: ceph-osd01(active), standbys: ceph-osd02 osd: 3 osds: 3 up, 3 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 3.0 GiB used, 9.0 GiB / 12 GiB avail pgs:
你去。您的Ceph存储集群现在可以提供了, 对象存储, 块存储 要么 文件系统存储。
在Ubuntu 18.04上安装和配置Ceph块设备
这标志着指南的结尾,说明了如何在Ubuntu 18.04上安装和设置三个节点的Ceph Storage Cluster。
相关教程
在Ubuntu 18.04上安装和设置GlusterFS
如何在Ubuntu 18.04上安装和配置iSCSI Storage Server
如何在RHEL / CentOS 7上安装和配置NFS服务器
。