部署ceph集群
前言
client 访问monitor 数据默认固定大小4M,3副本
client 192.168.220.149
node1 192.168.220.150
node2 192.168.220.151
node3 192.168.220.152
ceph优势
1、分布式存储原则上来说是可以无限扩容的。
2、分布式文件系统
3、高扩展,高可用,高性能
4、可以提供对象存储、块存储、文件系统存储
5、可以提供pb级别的存储空间(PB–>TB–>GB)
6、软件定义存储
ceph组件
OSDs :存储设备 (真正的的存储空间)ceph-osd
Monitor: 集群监控软件, 至少3台 ceph-mon
RBD : 对象存储网关 osd本身自带
radosgw: 对象存储(云盘)访问程序+api,无法mount
MDSs:存放文件系统的元数据(对象存储和块存储不需要该组件)
Client: ceph客户端 ceph-common
一、准备
1、hosts文件
/etc/hosts
192.168.220.149 client
192.168.220.150 node1
192.168.220.151 node2
192.168.220.152 node3
source /etc/hosts
2、免密登录
node1登录任何设备免密
[root@node1 ~]# ssh-keygen -t rsa -b 2048
[root@node1 ~]# for i in {149..152}; do ssh-copy-id 192.168.220.$i; done
###sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no root@node03
vim /etc/ssh/ssh_config
StrictHostKeyChecking no ##防止出现重启后再次问询的情况
systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
3、安装依赖软件包
## 所有节点安装
yum -y install epel-release
yum -y install yum-plugin-priorities yum-utils ntpdate python-setuptools python-pip gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel tcl tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo libconfig git bind-utils tmux elinks numactl iftop bwm-ng net-tools expect snappy leveldb gdisk python-argparse gperftools-libs conntrack ipset jq libseccomp socat chrony sshpass
4、配置时间同步
##ceph时间差高于0.05s就会报警。
##主服务器192.168.220.149配置时间同步,其余服务器同步。
vim /etc/chrony.conf
server ntp.aliyun.com iburst ##阿里云时间同步服务器可不改
allow 192.168.220.0/24
local stratum 10 ##在配置时间同步服务chronyd时,设置local stratum 10意味着本机不从任何其他主机同步时间,而是将自己作为时间源。
systemctl enable --now chronyd
timedatectl set-ntp true #开启 NTP
timedatectl set-timezone Asia/Shanghai #设置时区
chronyc -a makestep #强制同步下系统时钟
timedatectl status #查看时间同步状态
chronyc sources -v #查看 ntp 源服务器信息
chronyc tracking #跟踪的时间源和它的偏移量等信息。
timedatectl set-local-rtc 0 #将当前的UTC时间写入硬件时钟
#重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
#关闭无关服务
systemctl disable --now postfix
##其他节点150.151.152
server 192.168.220.150 iburst
5、所有节点服务器添加三块20G磁盘
##发现不了,就重启下
或
#添加完磁盘可以通过重启或以下命令刷新
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
6、磁盘划分
sdb 20G ⇒ 10G + 10G (非共享盘。负载缓存用,ssd提升性能 无需太大。100G–500G) 云环境中为ssd云盘或高效云盘
如果生产环境中,所有都是磁盘,不需要,所有都是ssd盘也不需要。
sdb1 ==> sdc
sdb2 ==> sdd
##实验环境ceph磁盘存储空间共120G
sdc 20G
sdd 20G
7、配置yum源
wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate
rpm -ivh ceph-release-1-1.el7.noarch.rpm --force
8、安装软件部署工具
[root@node1 ~]# yum install ceph-deploy
[root@node1 ~]# ceph-deploy --help
##创建目录,此后所有ceph-deploy命令必须在以下目录下执行
[root@node1 ~]# mkdir -p /data/ceph-cluster
[root@node1 ~]# cd !$
9、新建集群
## 创建ceph集群配置,集群有三台设备node1,2,3组成
[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3
## 如果中间出现下载安装不了情况,在所在节点手动安装下ceph-deploy
##这是所选节点装的ceph相关的所有软件包。
[root@node1 ceph-cluster]# ceph-deply install node1 node2 node3
[node3][DEBUG ] Complete!
[node3][INFO ] Running command: ceph --version
[node3][DEBUG ] ceph version 13.2.10 (564bdc4ae87418a232fc901524470e1a0f76d641) mimic (stable)
##手动安装
#ceph-deploy 2.0.1 默认部署的是 mimic 版的 Ceph,若想安装其他版本的 Ceph,可以用 --release 手动指定版本
cd /etc/ceph
ceph-deploy install --release nautilus node0{1..3} admin
#ceph-deploy install 本质就是在执行下面的命令:
yum clean all
yum -y install epel-release
yum -y install yum-plugin-priorities
yum -y install ceph-release cep