ceph
分布式文件系统
优点:高可靠,高性能 提供一个存储池,如果不够用,可进行线性扩展
分类
-
ceph 块设备 读取速度快,但只支持单设备挂载
-
ceph 文件系统 读取速度慢,但支持多个设备访问
-
ceph 对象网关 集合以上2个优点
ceph 组件
在ceph集群中,不管你是想要提供对象存储,块设备存储,还是文件系统存储,所有Ceph 存储集群部署都是从设置每个Ceph节点,网络和Ceph存储开始 的。 Ceph存储集群至少需 要一个Ceph Monitor,Ceph Manager和Ceph OSD(对象存储守护进程)。 运行Ceph Filesystem客户端时也需要Ceph元数据服务器。
-
Monitors:Ceph监视器(ceph-mon)维护集群状态的映射,包括监视器映射,管理器映 射,OSD映射和CRUSH映射。这些映射是Ceph守护进程相互协调所需的关键集群状态。监 视器还负责管理守护进程和客户端之间的身份验证。冗余和高可用性通常至少需要三个监视 器。
-
Managers:Ceph Manager守护程序(ceph-mgr)负责跟踪运行时指标和Ceph集群的 当前状态,包括存储利用率,当前性能指标和系统负载。 Ceph Manager守护进程还托管 基于python的模块来管理和公开Ceph集群信息,包括基于Web的Ceph Dashboard和 REST API。高可用性通常至少需要两名Managers。
-
Ceph OSD:Ceph OSD(对象存储守护进程,ceph-osd)存储数据,处理数据复制,恢 复,重新平衡,并通过检查其他Ceph OSD守护进程来获取心跳,为Ceph监视器和管理器 提供一些监视信息。冗余和高可用性通常至少需要3个Ceph OSD。
-
MDS:Ceph元数据服务器(MDS,ceph-mds)代表Ceph文件系统存储元数据(即, Ceph块设备和Ceph对象存储不使用MDS)。 Ceph元数据服务器允许POSIX文件系统用户 执行基本命令(如ls,find等),而不会给Ceph存储集群带来巨大负担。
安装 ceph 集群
准备条件:
准备三台机器,每台机器需要三个硬盘,配置 2GiB/4vCPU/60G 60G 分3个硬盘 master1-admin 是管理节点 :192.168.3.31 node1-monitor 是监控节点:192.168.3.32 node2-osd 是对象存储节点:192.168.3.33
系统安装
以centos7 7为例
配置阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
设置固定IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
增加以下,主要是IPADDR
IPADDR=<你的IP地址>
NETMASK=<子网掩码>
GATEWAY=<默认网关>
DNS1=<首选DNS服务器>
DNS2=<备用DNS服务器>
- 重启网络
systemctl restart network
设置主机名
# 在 master1-admin 上操作:
hostnamectl set-hostname master1-admin
# 在 node1-monitor 上操作:
hostnamectl set-hostname node1-monitor
# 在 node2-osd 上操作:
hostnamectl set-hostname node2-osd
修改 host 文件
三个主机上 /etc/hosts 文件如下
192.168.3.31 master1-admin
192.168.3.32 node1-monitor
192.168.3.33 node2-osd
配置 master1-admin 到三个节点无密码登陆
保证各服务器以装 openssh-server
# 生成密钥对
ssh-keygen -t rsa
# 分发公钥
ssh-copy-id node1-monitor
ssh-copy-id node2-osd
初始化机器(三个几点操作)
yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release lrzsz openssh-server
yum install deltarpm -y
关闭 firewalld 防火墙(三个节点操作)
停止 firewalld 服务 停止防火墙,并禁用这个服务
systemctl stop firewalld.service && systemctl disable firewalld.service
安装 iptables 如果你要改用 iptables 的话,需要安装 iptables 服务,未使用则不管
yum install iptables-services -y
service iptables stop && systemctl disable iptables
时间同步
在 master1-admin 上
ntpdate cn.pool.ntp.org
systemctl start ntpd && systemctl enable ntpd
ntpdate master1-admin
* */1 * * * /usr/sbin/ntpdate master1-admin
ntpdate master1-admin
* */1 * * * /usr/sbin/ntpdate master1-admin
yum install -y yum-utils && sudo yum-config-manager --add-repo https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/archives.fedoraproject.org*
cat /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS/
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
3.安装 ceph-deploy
yum update -y #在 master1-admin,node1-monitor,node2-osd 上操作
yum install ceph-deploy -y #在 master1-admin 上操作
yum install yum-plugin-priorities -y #在 master1-admin 上操作
yum install ceph -y
(1)创建一个目录,用于保存 ceph-deploy 生成的配置文件信息的
mkdir /root/ceph-deploy && cd /root/ceph-deploy
ceph-deploy new node1-monitor
ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
cat ceph.conf
[global]
fsid = 588994cf-aafb-4e97-b40b-0abb80dcf49b
mon_initial_members = node1-monitor
mon_host = 192.168.3.32
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 1
ceph-deploy install master1-admin node1-monitor node2-osd
ceph-deploy mon create-initial
ll /root/ceph-deploy 会看到生成很多密钥
ceph.bootstrap-mds.keyring
ceph.bootstrap-mgr.keyring
ceph.bootstrap-osd.keyring
ceph.bootstrap-rgw.keyring
ceph.client.admin.keyring
5.给 ceph 添加 osd,并完成激活 Ceph OSD: OSD 的全称是 Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据等, 与其它 OSD 间进行心跳检查等,并将一些变化情况上报给 Ceph Monitor。一般情况下一块硬盘对应一 个 OSD,一个分区也可以成为一个 OSD。 在 osd 节点 node2-osd 上操作
mkdir /var/local/osd1
chmod 777 /var/local/osd1/
ceph-deploy osd prepare node2-osd:/var/local/osd1
ceph-deploy osd activate node2-osd:/var/local/osd1
ceph-deploy admin master1-admin node1-monitor node2-osd
chmod +r /etc/ceph/ceph.client.admin.keyring 在三个节点操作
ceph health # 查看集群健康状态
mkdir /var/local/osd1
chmod 777 /var/local/osd1/
ceph-deploy osd prepare master1-admin:/var/local/osd1 node1-monitor:/var/local/osd1
ceph-deploy osd activate master1-admin:/var/local/osd1 node1-monitor:/var/local/osd1