ceph文件系统安装配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ceph文件系统安装配置相关的知识,希望对你有一定的参考价值。
ceph文件系统安装配置
1 前言
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
l Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
l Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
l MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。
2 安装配置
2.1 实验环境
操作系统:Centos 7 x64
IP | 主机名 | 应用 |
192.168.8.10 | ceph-deploy | 控制台 |
192.168.8.11 | ceph-mon1 | 监控1 |
192.168.8.12 | ceph-mon2 | 监控2 |
192.168.8.13 | ceph-mon3 | 监控3 |
192.168.8.14 | ceph-osd0 | 数据0 |
192.168.8.15 | ceph-osd1 | 数据1 |
192.168.8.16 | ceph-osd2 | 数据2 |
192.168.8.17 | ceph-mds | 元数据 |
192.168.8.18 | cephfs | 客户端 |
2.2 安装配置ceph
192.168.8.10操作
2.2.1 yum环境
yuminstall -y yum-utils && yum-config-manager --add-repohttps://dl.fedoraproject.org/pub/epel/7/x86_64/ && yum install --nogpgcheck -y epel-release&& rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && rm /etc/yum.repos.d/dl.fedoraproject.org*
编辑yum源:
vim/etc/yum.repos.d/ceph.repo
[Ceph] name=Ceph packages for $basearch baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc priority=1
[Ceph-noarch] name=Ceph noarch packages baseurl=http://download.ceph.com/rpm-jewel/el7/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc priority=1
[ceph-source] name=Ceph source packages baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc priority=1 |
安装ceph-deploy
yuminstall ceph-deploy
安装ntp
yuminstall ntp ntpdate ntp-doc
2.2.2 hosts文件
vi/etc/hosts
添加
192.168.8.10 ceph-deploy 192.168.8.11 ceph-mon1 192.168.8.12 ceph-mon2 192.168.8.13 ceph-mon3 192.168.8.14 ceph-node0 192.168.8.15 ceph-node1 192.168.8.16 ceph-node2 192.168.8.17 ceph-mds 192.168.8.18 cephfs |
2.2.3 无密钥登录
ssh-keygen 一直回车
把公钥拷贝到各 Ceph 节点
2.2.4 创建集群
先在管理节点上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对。
mkdirmy-cluster
cdmy-cluster
ceph-deploy 会把文件输出到当前目录,所以请确保在此目录下执行后面的 ceph-deploy 相关命令
2.2.5 安装mon
在管理节点上,进入刚创建的放置配置文件的目录,用 ceph-deploy 执行如下步骤。
ceph-deploynew ceph-mon1 ceph-mon2 ceph-mon3
在当前目录下用 ls 和 cat 检查ceph-deploy 的输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。
2.2.6 安装ceph
ceph-deployinstall ceph-deploy ceph-mon1 ceph-mon2 ceph-mon3 ceph-node0 ceph-node1ceph-node2 ceph-mds cephfs
ceph-deploy将在各节点安装Ceph 。 注:如果你执行过 ceph-deploy purge ,你必须重新执行这一步来安装 Ceph 。
2.2.7 初始化mon
配置初始 monitor(s)、并收集所有密钥:
ceph-deploymon create-initial
2.2.8 添加osd
添加OSD 。这次我们是把目录而非整个硬盘用于 OSD 守护进程(存储数据)。
ssh ceph-node0
mkdir/var/local/osd0
exit
sshceph-node1
mkdir/var/local/osd1
exit
sshceph-node2
mkdir/var/local/osd2
exit
然后,从管理节点执行 ceph-deploy 来准备 OSD 。
ceph-deployosd prepare ceph-node0:/var/local/osd0 ceph-node1:/var/local/osd1ceph-node2:/var/local/osd2
ceph-deployosd activate ceph-node0:/var/local/osd0 ceph-node1:/var/local/osd1ceph-node2:/var/local/osd2
用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点
ceph-deployadmin ceph-deploy ceph-mon1 ceph-mon2 ceph-mon3 ceph-node0 ceph-node1ceph-node2 ceph-mds cephfs
检查集群的健康状况
cephstatus
等 peering 完成后,集群应该达到 active + clean 状态。
2.2.9 添加元数据
至少需要一个元数据服务器才能使用 CephFS文件系统 ,执行下列命令创建元数据服务器:
ceph-deploymds create ceph-mds
当前生产环境下的 Ceph 只能运行一个元数据服务器。你可以配置多个,但多个目前还不稳定。
2.2.10 添加存储池
用此命令创建存储池时:
cephosd pool create {pool-name} pg_num
确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:
少于 5 个 OSD 时可把 pg_num 设置为 128
OSD 数量在 5 到 10 个时,可把 pg_num 设置为512
OSD 数量在 10 到 50 个时,可把 pg_num 设置为4096
OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值
自己计算 pg_num 取值时可借助 pgcalc 工具:http://ceph.com/pgcalc/
一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据。配置这些存储池时需考虑:
为元数据存储池设置较高的副本水平,因为此存储池丢失任何数据都会导致整个文件系统失效。
为元数据存储池分配低延时存储器(像 SSD ),因为它会直接影响到客户端的操作延时。
cephosd pool create cephfs_metadata 128 128
cephosd pool create cephfs_data 512 512
2.2.11 创建文件系统
创建好存储池后,你就可以用 fs new 命令创建文件系统了:
cephfs new cephfs cephfs_metadata cephfs_data
查看文件系统:
cephfs ls
文件系统创建完毕后, MDS 服务器就能达到 active 状态了,比如在一个单 MDS 系统中:
cephmds stat
2.2.12 挂载文件系统
查看密钥:
cat/etc/ceph/ceph.client.admin.keyring
[client.admin] key = AQA1nLhZBEVaDBAAtHOx5OEdOjKSpvHN3JVJeA== caps mds = "allow *" caps mon = "allow *" caps osd = "allow *" |
将红色部分导入一个新文件
echo“AQA1nLhZBEVaDBAAtHOx5OEdOjKSpvHN3JVJeA==”> /etc/ceph/admin.secret
chmod600 /etc/ceph/admin.secret
挂载文件系统
mount-t ceph 192.168.8.11,192.168.8.12,192.168.8.13:6789:/ /mnt/mycephfs -oname=admin,secretfile=/etc/ceph/admin.secret
查看cephfs容量
cephdf
2.2.13 fstab配置
要用内核驱动挂载 Ceph FS ,按下列格式添加到 /etc/fstab :
{ipaddress}:{port}:/{mount}/{mountpoint} {filesystem-name} [name=username,secret=secretkey|secretfile=/path/to/secretfile],[{mount.options}]
192.168.8.11,192.168.8.12,192.168.8.13:6789:/ /mnt/mycephfs ceph name=admin, secretfile=/etc/ceph/admin.secret,noatime 0 0
2.3 扩容ceph
2.3.1 新增osd
如增加ceph-osd3 IP为192.168.8.19
管理节点增加主机名解析:
vi/etc/hosts
192.168.8.19 ceph-osd3
增加无密钥登录
ssh ceph-osd3
sudomkdir /var/local/osd3
exit
然后,从管理节点执行 ceph-deploy 来准备 OSD 。
ceph-deployosd prepare ceph-node3:/var/local/osd3
激活 OSD
ceph-deployosd activate ceph-node3:/var/local/osd3
2.3.2 删除osd
如删除ceph-osd3 IP为192.168.8.19
删除 OSD 前,它通常是 up 且 in 的,要先把它踢出集群,以使 Ceph 启动重新均衡、把数据拷贝到其他 OSD 。
先查看osd对应数字
cpehosd tree
然后进行踢出
cephosd out 3
观察数据迁移
一旦把 OSD 踢出( out )集群,Ceph 就会开始重新均衡集群、把归置组迁出将删除的 OSD 。你可以用 ceph 工具观察此过程。
ceph –w
你会看到归置组状态从 active+clean 变为 active, some degradedobjects 、迁移完成后最终回到 active+clean 状态。
注意:有时候,(通常是只有几台主机的“小”集群,比如小型测试集群)拿出( out )某个 OSD 可能会使CRUSH 进入临界状态,这时某些 PG 一直卡在active+remapped 状态。如果遇到了这种情况,你应该把此 OSD 标记为 in ,用这个命令:
cephosd in 3
等回到最初的状态后,把它的权重设置为 0 ,而不是标记为 out ,用此命令:
ceph osdcrush reweight osd.3 0
执行后,你可以观察数据迁移过程,应该可以正常结束。把某一 OSD 标记为 out 和权重改为 0的区别在于,前者,包含此 OSD 的桶、其权重没变;而后一种情况下,桶的权重变了(降低了此 OSD 的权重)。某些情况下, reweight 命令更适合“小”集群。
停止 OSD
把 OSD 踢出集群后,它可能仍在运行,就是说其状态为 up 且 out 。删除前要先停止 OSD 进程。
ssh ceph-osd3
systemctlstop [email protected]
exit
停止 OSD 后,状态变为 down 。
cephosd tree
删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了。
cephosd crush remove osd.3
cephosd crush remove ceph-node3
删除 OSD 认证密钥:
cephauth del osd.3
删除 OSD
cephosd rm 3
从 ceph.conf 配置文件里删除对应条目。
ssh ceph-deploy
cd/etc/ceph
vimceph.conf
[osd.3]
host = {hostname}
本文出自 “桃子技术” 博客,请务必保留此出处http://taozijishu.blog.51cto.com/11320335/1966875
以上是关于ceph文件系统安装配置的主要内容,如果未能解决你的问题,请参考以下文章