Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储
是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
特点
1. 统一存储
虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。
2. 高扩展性
扩容方便、容量大。能够管理上千台服务器、EB 级的容量。
3. 可靠性强
支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。
4. 高性能
因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。
环境拓扑
centos1
monitor
osd
192.168.115.3
centos2
osd
192.168.115.4
centos3
osd
192.168.115.5
centos4
Client
192.168.115.6
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl stop NetworkManager
systemctl disable NetworkManager
setenforce 0
hostnamectl set-hostname centos{1..4}
修改ssh配置
sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
systemctl restart sshd
vim /etc/hosts
192.168.115.3 centos1
192.168.115.4 centos2
192.168.115.5 centos3
192.168.115.6 centos4
ssh-keygen
ssh-copy-id 192.168.115.3
for i in3 4 5 6; do ssh-copy-id [email protected].$i;done
在centos1上开启时间同步服务器
安装 yum install -y ntp
配置 vim /etc/ntp.conf
server 127.127.1.0
定义时间服务器
fudge 127.127.1.0 stratum 8
定义时间层次
启动
systemctl start ntpd
systemctl enable ntpd
客户端对时
for i in 4 5 ;do ssh 192.168.115.$i ntpdate 192.168.115.3;done
热扫描磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
for i in 4 5;do ssh 192.168.115.$i echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done
格式化
mkfs.xfs /dev/sdb
yum install epel-release -y
[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=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
yum -y install ceph ceph-deploy
mkdir -p /usr/local/soft/cephcluster
cd /usr/local/soft/cephcluster
ceph-deploy new centos1 centos2 centos3
#对外开放网段
public network = 192.168.115.0/24
# 设置pool池默认分配数量
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
ceph-deploy install centos1 centos2 centos3
ceph-deploy mon create-initial
ceph-deploy admin centos1 centos2 centos3
ceph-deploy mgr create centos1 centos2 centos3
ceph-deploy rgw create centos1 centos2 centos3
ceph-deploy mds create centos1 centos2 centos3
创建OSD
ceph-deploy osd create --data /dev/sdb centos1
ceph-deploy osd create --data /dev/sdb centos2
ceph-deploy osd create --data /dev/sdb centos3
ceph -s
ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert
mkdir -p /usr/local/jx/cephcluster/mgr-dashboard
cd /usr/local/jx/cephcluster/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
ceph mgr module disable dashboard
ceph mgr module enable dashboard
ceph config set mgr mgr/dashboard/server_addr 192.168.115.128
ceph config set mgr mgr/dashboard/server_port 9001
ceph config set mgr mgr/dashboard/ssl false
ceph mgr services
ceph dashboard set-login-credentials jx123 123.com
https://192.168.115.3:8443
( 少于5个OSD可把pg_num设置为128,OSD数量在5到10,可以设置pg_num为512,OSD数量在10到50,可以设置pg_num为4096,OSD数量大于50,需要计算pg_num的值)
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64
查看存储池 ceph osd lspools
创建文件系统 ceph fs new fs_test cephfs_metadata cephfs_data
查看文件系统 ceph fs ls
查看mds状态 ceph mds stat
安装 ceph-deploy install centos4
同步管理信息 ceph-deploy admin centos4
非集群节点,/var/run/ceph 无内容
yum install -y ceph-fuse
ls /etc/ceph
ceph.client.admin.keyring
mkdir /ceph
ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.115.128:6789 /ceph