Ceph集群详细部署配置图文讲解,只要看一遍就能上手(二)【与云原生的故事】

举报
Lansonli 发表于 2022/04/28 09:08:39 2022/04/28
【摘要】 ​Ceph集群详细部署配置一、部署结构​虚拟机创建三台服务器,CENTOS版本为7.6, IP网段192.168.116.2/24。三台主机名称为: CENTOS7-1: IP为192.168.116.141, 既做管理节点, 又做子节点。 CENTOS7-2: IP为192.168.116.142, 子节点。 CENTOS7-3: IP为192.168.116.143, 子节点二、系统配置...

Ceph集群详细部署配置

一、部署结构

虚拟机创建三台服务器,CENTOS版本为7.6 IP网段192.168.116.2/24。三台主机名称为:
CENTOS7-1: IP192.168.116.141, 既做管理节点, 又做子节点。
CENTOS7-2: IP192.168.116.142, 子节点。
CENTOS7-3: IP192.168.116.143, 子节点


二、系统配置

系统配置工作, 三台节点依次执行:

1、修改主机名称

[root@CENTOS7-1 ~]# vi /etc/hostname
CENTOS7-1

2、编辑hosts文件

192.168.116.141 CENTOS7-1 
192.168.116.142 CENTOS7-2 
192.168.116.143 CENTOS7-3
注意, 这里面的主机名称要和节点名称保持一致, 否则安装的时候会出现问题

3、修改yum源

vi /etc/yum.repos.d/ceph.repo, 为避免网速过慢问题, 这里采用的是清华镜像源:
[ceph] 
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc
 
[ceph-noarch] 
name=Ceph noarch packages 
# 官方源 
#baseurl=http://download.ceph.com/rpm-mimic/el7/noarch 
# 清华源 
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc
 
[ceph-source] 
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc

4、安装cephceph-deploy组件

yum update && yum -y install ceph ceph-deploy
安装完成, 如果执行ceph-deploy出现ImportError: No module named pkg_resources
安装python2-pip
yum install epel-release -y

yum -y install python2-pip


5、安装NTP时间同步工具 

yum install ntp ntpdate ntp-doc -y

 确保时区是正确, 设置开机启动:

systemctl enable ntpd

并将时间每隔1小时自动校准同步。编辑 vi /etc/rc.d/rc.local 追加:

/usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w

配置定时任务, 执行crontab -e 加入:


三、免密码SSH登陆

1、官方建议不用系统内置用户, 创建名为ceph_user用户, 密码也设为ceph_user

useradd -d /home/ceph_user -m ceph_user 
passwd ceph_user

2、设置sudo权限

echo "ceph_user ALL = (root) NOPASSWD:ALL" | sudo tee
/etc/sudoers.d/ceph_user 
sudo chmod 0440 /etc/sudoers.d/ceph_user
12两个步骤依次在三台机器上执行。
接下来在主节点, 继续执行:


3、生成密钥:

切换用户: su ceph_user
执行ssh-keygen,一直按默认提示点击生成RSA密钥信息。


4、分发密钥至各机器节点

ssh-copy-id ceph_user@CENTOS7-1 
ssh-copy-id ceph_user@CENTOS7-2 
ssh-copy-id ceph_user@CENTOS7-3

5、修改管理节点上的 ~/.ssh/config 文件, 简化SSH远程连接时的输入信息:

管理节点是会有rootceph_user多个用户, ssh远程连接默认会以当前用户身份进行登陆, 如果我们是root身份进行远程连接, 还是需要输入密码, 我们想简化, 该怎么处理?

切换root身份

su root

修改~/.ssh/config 文件

Host CENTOS7-1 
  Hostname CENTOS7-1
  User ceph_user
Host CENTOS7-2 
  Hostname CENTOS7-2
  User ceph_user
Host CENTOS7-3 
  Hostname CENTOS7-3
  User ceph_user

 注意修改文件权限, 不能采用777最大权限:

chmod 600 ~/.ssh/config

进行ssh远程连接时, Host的主机名称是区分大小写的, 所以要注意配置文件的主机名称。


6、开放端口, 非生产环境, 可以直接禁用防火墙: 

systemctl stop firewalld.service 
systemctl disable firewalld.service


7、SELINUX设置

SELinux设为禁用:
setenforce 0
永久生效:
编辑 vi /etc/selinux/config修改:
SELINUX=disabled

四、集群搭建配置

采用root身份进行安装

1、在管理节点创建集群配置目录,cd /usr/local

mkdir ceph-cluster 
cd ceph-cluster
注意: 此目录作为ceph操作命令的基准目录, 会存储处理配置信息。


2、创建集群, 包含三台机器节点:

ceph-deploy new CENTOS7-1 CENTOS7-2 CENTOS7-3
创建成功后, 会生一个配置文件。


3、 如果接下来集群的安装配置出现问题, 可以执行以下命令清除, 再重新安装:

ceph-deploy purge CENTOS7-1 CENTOS7-2 CENTOS7-3 
ceph-deploy purgedata CENTOS7-1 CENTOS7-2 CENTOS7-3 
ceph-deploy forgetkeys

将三台节点的mon信息也删除

rm -rf /var/run/ceph/

4、 修改配置文件, 有些配置后面需用到:

vi /usr/local/ceph-cluster/ceph.conf
加入:
[global] 
# 公网网络 
public network = 192.168.88.0/24 
# 设置pool池默认分配数量 默认副本数为3 
osd pool default size = 2 
# 容忍更多的时钟误差 
mon clock drift allowed = 2 
mon clock drift warn backoff = 30 
# 允许删除pool 
mon_allow_pool_delete = true
[mgr]
# 开启WEB仪表盘 mgr modules = dashboard
第一项为副本数, 设为2份。
第二项为对外IP访问网段,注意根据实际IP修改网段。
第三、四项为允许一定时间的漂移误差。


5、执行安装:

ceph-deploy install CENTOS7-1 CENTOS7-2 CENTOS7-3

如果出现错误:
ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph --version

可以在各节点上单独进行安装:

yum -y install ceph 
如果没有仓库文件ceph.repo, 按上面的步骤手工创建。


6、初始monitor信息:

ceph-deploy mon create-initial ## ceph-deploy --overwrite-conf mon create-initial

执行完成后, 会生成以下文件:

7、同步管理信息: 

下发配置文件和管理信息至各节点:
ceph-deploy admin CENTOS7-1 CENTOS7-2 CENTOS7-3

8、安装mgr(管理守护进程), 大于12.x版本需安装, 我们装的是最新版,需执行: 

ceph-deploy mgr create CENTOS7-1 CENTOS7-2 CENTOS7-3

9、安装OSD(对象存储设备) 

注意: 新版本的OSD没有prepareactivate命令。
这里需要新的硬盘作为OSD存储设备, 关闭虚拟机, 增加一块硬盘, 不用格式化。

重启, fdisk -l 查看新磁盘名称:

执行创建OSD命令:

ceph-deploy osd create --data /dev/sdb CENTOS7-1

三台节点都需分别依次执行。

ceph-deploy gatherkeys CENTOS7-1

10、验证节点: 

输入ceph health ceph -s查看, 出现HEALTH_OK代表正常。

通过虚拟机启动, 如果出现错误: 

 在各节点执行命令, 确保时间同步一致:

ntpdate ntp1.aliyun.com

五、安装管理后台

1、 开启dashboard模块

ceph mgr module enable dashboard

2、生成签名 

ceph dashboard create-self-signed-cert

3、创建目录 

mkdir mgr-dashboard
[root@CENTOS7-1 mgr-dashboard]# pwd 
/usr/local/ceph-cluster/mgr-dashboard

4、生成密钥对

cd /usr/local/ceph-cluster/mgr-dashboard
openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650 -keyout dashboard.key -out dashboard.crt -extensions v3_ca

5、启动dashboard 

ceph mgr module disable dashboard 
ceph mgr module enable dashboard


6、设置IPPORT  

ceph config set mgr mgr/dashboard/server_addr 192.168.88.161
ceph config set mgr mgr/dashboard/server_port 18843


7、关闭HTTPS

ceph config set mgr mgr/dashboard/ssl false

8、查看服务信息 

[root@CENTOS7-1 mgr-dashboard]# ceph mgr services
{
    "dashboard": "https://node1:8443/"
}

9、 设置管理用户与密码

ceph dashboard set-login-credentials admin admin

10、访问

六、创建Cephfs

集群创建完后, 默认没有文件系统, 我们创建一个Cephfs可以支持对外访问的文件系统。
ceph-deploy --overwrite-conf mds create CENTOS7-1 CENTOS7-2 CENTOS7-3

1、创建两个存储池, 执行两条命令:


ceph osd pool create cephfs_data 128 
ceph osd pool create cephfs_metadata 64
少于5OSD可把pg_num设置为128

OSD数量在510,可以设置pg_num512

OSD数量在1050,可以设置pg_num4096

OSD数量大于50,需要计算pg_num的值

通过下面命令可以列出当前创建的存储池:
ceph osd lspools

2.、创建fs, 名称为fs_test:

ceph fs new fs_test cephfs_metadata cephfs_data

3、状态查看, 以下信息代表正常: 

[root@CENTOS7-1 mgr-dashboard]# ceph fs ls
name: fs_test, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
[root@CENTOS7-1 ceph-cluster]# ceph mds stat
fs_test-1/1/1 up  {0=CENTOS7-2=up:active}, 2 up:standby

附: 如果创建错误, 需要删除, 执行:

ceph fs rm fs_test --yes-i-really-mean-it 
ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it

确保在ceph.conf中开启以下配置:

[mon] mon allow pool delete = true

4、采用fuse挂载

先确定ceph-fuse命令能执行, 如果没有, 则安装:
yum -y install ceph-fuse

5、创建挂载目录

mkdir -p /usr/local/cephfs_directory

6、挂载cephfs

ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.88.161:6789 /usr/local/cephfs_directory

7、查看磁盘挂载信息

/usr/local/cephfs_directory目录已成功挂载。


七、客户端连接验证(Rados Java)

1、安装好JDKGITMAVEN

2、下载rados java客户端源码


git clone https://github.com/ceph/rados-java.git

下载目录位置:

3、执行MAVEN安装, 忽略测试用例: 

[root@CENTOS7-1 rados-java]# mvn install -Dmaven.test.skip=true

 生成jar包, rados-0.7.0.jar

4、创建软链接, 加入CLASSPATH

ln -s /usr/local/sources/rados-java/target/rados-0.7.0.jar /opt/jdk1.8.0_301/jre/lib/ext/rados-0.7.0.jar

安装jna

yum -y install jna

创建软链接

ln -s /usr/share/java/jna.jar /opt/jdk1.8.0_301/jre/lib/ext/jna.jar

 查看

[root@CENTOS7-1 target]# ll 
/opt/jdk1.8.0_301/jre/lib/ext/jna.jar lrwxrwxrwx 1 root root /opt/jdk1.8.0_301/jre/lib/ext/jna.jar -> /usr/share/java/jna.jar
[root@CENTOS7-1 target]# ll 
/opt/jdk1.8.0_301/jre/lib/ext/rados-0.7.0.jar lrwxrwxrwx 1 root root
/opt/jdk1.8.0_301/jre/lib/ext/rados- 0.7.0.jar -> /usr/local/sources/rados-java/target/rados-0.7.0.jar


5、创建JAVA测试类 

CephClient类,注意, 最新版0.6的异常处理包位置已发生变化。
importcom.ceph.rados.Rados;
importcom.ceph.rados.exceptions.*;
importjava.io.File;
publicclassCephClient{
    publicstaticvoidmain(Stringargs[]){
        try{
            Radoscluster=newRados("admin");
            System.out.println("Createdclusterhandle.");
            Filef=newFile("/etc/ceph/ceph.conf");
            cluster.confReadFile(f);
            System.out.println("Readtheconfigurationfile.");
            cluster.connect();
            System.out.println("Connectedtothecluster.");
        }catch(RadosExceptione){
    System.out.println(e.getMessage()+":"+e.getReturnValue());
    }
  }
}

6、运行验证

需要在linux环境下运行,且要在client节点。
编译并运行:
[root@CENTOS7-1 sources]# javac CephClient.java 
[root@CENTOS7-1 sources]# java CephClient 
Created cluster handle.
Read the configuration file.
Connected to the cluster.
成功与ceph建立连接。
注意:如果javajavac版本不同,可以使用rpm -qa |grep java 进行查找, rpm -e --nodeps jdk进行删除,source /etc/profile进行生效
jdk的位数为64

【与云原生的故事】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/345260
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。