CentOS安装Ceph(使用Ceph-Deploy)

————————————– 预先配置 ————————————–
安装EPEL源

sudo yum install -y epel-release yum-plugin-priorities python2-pip

安装ceph源,其中mimic是当前ceph版本,如有更新的可以改为更新的版本名

cat << EOF > /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
EOF

更新系统并安装ceph-deploy工具

sudo yum update -y
sudo yum install -y ceph-deploy

安装配置时间服务

yum install chrony
systemctl enable chronyd
systemctl start chronyd

添加ceph用户并设置密码

sudo useradd -d /home/ceph -m ceph
sudo passwd ceph
echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
sudo chmod 0440 /etc/sudoers.d/ceph

配置ssh免密登录

ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa
ssh-copy-id ceph@ceph-node1
ssh-copy-id ceph@ceph-node2
ssh-copy-id ceph@ceph-node3

开启防火墙端口

monitor节点开启ceph-mon
sudo firewall-cmd --zone=public --add-service=ceph-mon --permanent
OSD和MDS节点开启ceph
sudo firewall-cmd --zone=public --add-service=ceph --permanent
重新载入防火墙配置
sudo firewall-cmd --reload

关闭SELinux

sudo setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

————————————– 部署集群 ————————————–
本示例节点的信息如下:

+------------+---------------+---------+
|  Hostname  |   IP Address  |   Role  |
+------------+---------------+---------+
| ceph-node1 | 192.168.1.101 | mon,osd |
+------------+---------------+---------+
| ceph-node2 | 192.168.1.102 | osd     |
+------------+---------------+---------+
| ceph-node3 | 192.168.1.103 | osd     |
+------------+---------------+---------+

创建目录以供ceph-deploy工具输出用

mkdir my-cluster && cd my-cluster

若配置中间发生错误,可使用以下命令清空配置后重来

ceph-deploy purge ceph-node1 ceph-node2 ceph-node3
ceph-deploy purgedata ceph-node1 ceph-node2 ceph-node3
ceph-deploy forgetkeys
rm ceph.*

创建集群,该命令执行完后会生成ceph.conf文件

ceph-deploy new ceph-node1

如果node有多个IP需在ceph.conf中指定对外IP

在[global]区域中加入如下信息,如:
public network = 192.168.1.0/24

安装ceph软件

ceph-deploy install ceph-node1 ceph-node2 ceph-node3

初始化monitor以及生成key

ceph-deploy mon create-initial

复制配置文件和密码到其他管理节点,这里将复制到所有节点以便操作

ceph-deploy admin ceph-node1 ceph-node2 ceph-node3

创建manager守护进程
ceph-deploy mgr create ceph-node1
添加OSD,命令为ceph-deploy osd create –data {device} {ceph-node},示例中/dev/sdb每个节点可用的磁盘
如果主机提供的不是块设备而是LVM,则需要改为vg_name/lv_name

ceph-deploy osd create --data /dev/sdb ceph-node1
ceph-deploy osd create --data /dev/sdb ceph-node2
ceph-deploy osd create --data /dev/sdb ceph-node3

检查集群健康状态

ssh ceph-node1 sudo ceph health
ssh ceph-node1 sudo ceph -s

————————————– 扩展集群 ————————————–
在前面初始化集群里,我们使用了node1作为monitor节点,但如果node1挂了的话整个集群就不可用了。
所以一般高可用部署中monitor至少会部署三个节点(必须是奇数个),因此我们调整了整个集群的架构如下:

+------------+---------------+-----------------+
|  Hostname  |   IP Address  |       Role      |
+------------+---------------+-----------------+
| ceph-node1 | 192.168.1.101 | mon,osd,mgr,mds |
+------------+---------------+-----------------+
| ceph-node2 | 192.168.1.102 | mon,osd         |
+------------+---------------+-----------------+
| ceph-node3 | 192.168.1.103 | mon,osd         |
+------------+---------------+-----------------+

为了能使用CephFS,至少需要一台metadata服务器,这里将node1设置为metadata服务器

ceph-deploy mds create ceph-node1

增加monitor

ceph-deploy mon add ceph-node2 ceph-node3

确认monitor仲裁同步状态

ceph quorum_status --format json-pretty

增加ceph manager。manager使用主/备状态工作,当主节点故障时,备用节点会接管主节点

ceph-deploy mgr create ceph-node2 ceph-node3

确认备用manager状态

ssh ceph-node1 sudo ceph -s

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注