活动地址: 开发云 - 一站式云服务平台
文章目录
1、官方建议不用系统内置用户, 创建名为ceph_user用户, 密码也设为ceph_user:
5、修改管理节点上的 ~/.ssh/config 文件, 简化SSH远程连接时的输入信息:
1、在管理节点创建集群配置目录,cd /usr/local:
3、 如果接下来集群的安装配置出现问题, 可以执行以下命令清除, 再重新安装:
8、安装mgr(管理守护进程), 大于12.x版本需安装, 我们装的是最新版,需执行:
Ceph集群详细部署配置
一、部署结构
二、系统配置
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源
[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、安装ceph与ceph-deploy组件
yum update && yum -y install ceph ceph-deploy
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
3、生成密钥:
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远程连接时的输入信息:
管理节点是会有root和ceph_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设置
setenforce 0
SELINUX=disabled
四、集群搭建配置
1、在管理节点创建集群配置目录,cd /usr/local:
mkdir ceph-cluster
cd ceph-cluster
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
5、执行安装:
ceph-deploy install CENTOS7-1 CENTOS7-2 CENTOS7-3
ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph --version
可以在各节点上单独进行安装:
yum -y install ceph
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(对象存储设备)
重启, fdisk -l 查看新磁盘名称:
执行创建OSD命令:
ceph-deploy osd create --data /dev/sdb CENTOS7-1
三台节点都需分别依次执行。
ceph-deploy gatherkeys CENTOS7-1
10、验证节点:
通过虚拟机启动, 如果出现错误:
在各节点执行命令, 确保时间同步一致:
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、设置IP与PORT
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
1、创建两个存储池, 执行两条命令:
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64
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挂载
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、查看磁盘挂载信息
七、客户端连接验证(Rados Java)
1、安装好JDK、GIT和MAVEN
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测试类
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、运行验证
[root@CENTOS7-1 sources]# javac CephClient.java
[root@CENTOS7-1 sources]# java CephClient
Created cluster handle.
Read the configuration file.
Connected to the cluster.
- 📢博客主页:https://lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨