使用ceph-deploycep集群部署,并用3个磁盘作为专用osd

一、使用ceph-deploy安装一个最少三个节点的ceph集群 使用3个或以上的磁盘作为专用osd

一、安装前准备

1、关闭防火墙、禁用SELinux。

都做
# 关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

# 禁用SELinux
[root@localhost ~]# sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config 
[root@localhost ~]# setenforce 0

2、配置主机名和IP及hosts解析。

都做
# 分别为每台机器设置IP地址,配置主机名
[root@localhost ~]# hostnamectl set-hostname node1

# 为所有机器配置hosts解析
[root@node1 ~]# tail -4 /etc/hosts
192.168.235.156 node1
192.168.235.154 node2
192.168.235.157 node3
192.168.235.151 client

3、配置node1到所有节点root用户免密钥互信。

node1做
# node1上生成密钥对
[root@node1 ~]# ssh-keygen -f ~/.ssh/id_rsa -N '' -q

# 公钥分发到所有节点
[root@node1 ~]# for i in node1 node2 node3 client; do ssh-copy-id $i; done

# 验证免密钥互信
[root@node1 ~]# for i in node1 node2 node3 client; do ssh $i hostname; done
node1
node2
node3
client

4、配置时间同步。

都做
[root@node1 ~]# yum install chrony -y
# 修改配置文件 /etc/chrony.conf
server ntp.aliyun.com iburst

# 启动chrony服务并设置开机自启动
[root@node1 ~]# systemctl restart chronyd
[root@node1 ~]# systemctl enable chronyd --now

# 检查时间同步
[root@node2 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 120.25.115.20                 2   7   123    76   +588us[+1321us] +/-   19ms

5、node1配置为yum仓库服务器,其他节点使用ftp方式使用ceph仓库

# 上传ceph.iso到node1
[root@node1 ~]# ll ceph.iso
-rw-r--r-- 1 root root 2408808448 Mar 18 09:15 ceph.iso
在node1里安装
# 安装httpd并设置为开机自启动
[root@node1 ~]# yum install -y vsftpd
[root@node1 ~]# systemctl enable vsftpd --now

# 挂载ceph.iso到/var/ftp
[root@node1 ~]# mkdir /var/ftp/ceph
[root@node1 ~]# echo "/root/ceph.iso  /var/ftp/ceph  iso9660 defaults 0 0" >> /etc/fstab 
[root@node1 ~]# mount -a

# yum文件ceph.repo由后面的ceph-deploy工具安装时自动生成。

二、部署ceph集群

一、安装ceph-deploy

[root@node1 ~]# export CEPH_DEPLOY_REPO_URL=ftp://node1/ceph/

1、在node1上安装部署工具

[root@node1 ceph-cluster]# yum install /var/ftp/ceph/noarch/ceph-deploy-2.0.1-0.noarch.rpm 

2、node1上创建工作目录

[root@node1 ~]# mkdir /ceph-cluster
[root@node1 ~]# cd /ceph-cluster

二、创建ceph集群,在/ceph-cluster目录下生成配置文件。

1、创建ceph集群,并设置mon节点。

node1-node3添加epel源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@node1 ceph-cluster]# yum install python2-pip -y
[root@node1 ceph-cluster]# pip install distribute -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
node1里做
[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3
#给所有节点安装ceph相关软件包。
[root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3
#初始化所有节点的mon服务,也就是启动mon服务。
[root@node1 ceph-cluster]# ceph-deploy mon create-initial

[root@node3 ~]# ls /etc/ceph/
ceph.conf  rbdmap  tmpn1zEAD
[root@node3 ~]# systemctl is-active [email protected] 
active

创建ceph管理节点(mgr)
[root@node1 ceph-cluster]# ceph-deploy mgr create node1 node2 node3 

三、准备日志磁盘分区

注意:sdb1和sdb2两个分区用来做存储服务器的journal缓存盘。生产中固态用于缓存,sas用户共享。

1、格式化sdb

[root@node1 ceph-cluster]# for i in node{1..3}
do
 ssh $i parted /dev/sdb mklabel gpt
 ssh $i parted /dev/sdb mkpart primary 1 50%
 ssh $i parted /dev/sdb mkpart primart 50% 100%
done

2、磁盘分区后的默认权限无法让ceph对其进行读写操作,需要修改权限。

[root@node1 ceph-cluster]# for i in node{1..3}
do
 ssh $i chown ceph.ceph /dev/sdb1 /dev/sdb2
done

[root@node1 ceph-cluster]# vim /etc/udev/rules.d/70-sdb.rules
ENV{DEVNAME}=="/dev/sdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/sdb2",OWNER="ceph",GROUP="ceph"

# 复制到其他osd节点
[root@node1 ceph-cluster]# for i in node{2..3}
do
 scp /etc/udev/rules.d/70-sdb.rules $i:/etc/udev/rules.d/
done

四、创建OSD存储空间

1、初始化清空磁盘数据(仅在node1操作)

[root@node1 ceph-cluster]# for i in node{1..3}
do
 ssh $i parted /dev/sdc mklabel gpt
 ssh $i parted /dev/sdd mklabel gpt
done

#清理磁盘
[root@node1 ceph-cluster]# for i in node{1..3}
do 
  ssh $i ceph-volume lvm zap /dev/sdc
  ssh $i ceph-volume lvm zap /dev/sdd
done

2、创建OSD存储空间

[root@node1 ceph-cluster]# ceph-deploy osd create --data /dev/sdc --journal /dev/sdb1 --data /dev/sdd --journal /dev/sdb2 node1
// 创建osd存储设备,sdc提供存储空间,sdb1提供缓存
[root@node1 ceph-cluster]# ceph-deploy osd create --data /dev/sdc --journal /dev/sdb1 --data /dev/sdd --journal /dev/sdb2 node2
[root@node1 ceph-cluster]# ceph-deploy osd create --data /dev/sdc --journal /dev/sdb1 --data /dev/sdd --journal /dev/sdb2 node3

五、查看ceph状态,验证

[root@node1 ceph-cluster]# ceph-deploy admin node1 node2 node3

检查集群状态:

[root@node1 ceph-cluster]# ceph health
HEALTH_OK

[root@node1 ceph-cluster]# ceph -s
  cluster:
    id:     5dcfa8b4-b911-4fc4-9bcf-a7d6cb48bf4b
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum node2,node1,node3 (age 3m)
    mgr: node1(active, since 2m), standbys: node2, node3
    osd: 3 osds: 3 up (since 44s), 3 in (since 44s)
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 27 GiB / 30 GiB avail
    pgs:     
 

六、启用dashboard

# 在所有的mgr节点上单独安装
[root@node1 ceph-cluster]# for i in node{1..3}
do
 ssh $i yum install -y ceph-mgr-dashboard
done

# 启用dashboard
[root@node1 ceph-cluster]# ceph mgr module enable dashboard --force

# 默认启用SSL/TLS,所以需要创建自签名根证书
[root@node1 ceph-cluster]# ceph dashboard create-self-signed-cert

# 创建具有管理员角色的用户
[root@node1 ceph-cluster]# ceph dashboard ac-user-create admin admin administrator
{"username": "admin", "lastUpdate": 1658839576, "name": null, "roles": ["administrator"], "password": "$2b$12$/fUwpr/vlP4NC2fgt12NPu3kjUD/Zk0jqqc69QTEJBIA4tXvTUfB6", "email": null}

# 查看ceph-mgr服务
[root@node1 ceph-cluster]# ceph mgr services
{
    "dashboard": "https://node1:8443/"
}

最后网页登录node1:8443网址

使用ceph-deploycep集群部署,并用3个磁盘作为专用osd_第1张图片

你可能感兴趣的:(运维,服务器,linux)