sds
安装 Cent OS7 系统安装步骤略过
拓扑连接:
一、安装前准备工作
1、修改主机名;将主机名更改为上图中对应的主机名。
- [[email protected] ~]# vim / etc / hostname
2、更新主机上的 hosts 文件,将主机名与如下 IP 进行解析。
192.168.100.128 ceph-node1
192.168.100.129 ceph-node2
192.168.100.130 ceph-node3
192.168.100.131 ceph-node4
- [[email protected] ~]# vim / etc / hosts
3、生成 root SSH 密钥;将 SSH 密钥复制到 ceph-node2 和 ceph-node3、ceph-node4 之上。这样就能实现节点间免密登录。
- [[email protected] ~]# ssh - keygen //一路回车即可
- [[email protected] ~]# ssh - copy - id [email protected]
- [[email protected] ~]# ssh - copy - id [email protected]
- [[email protected] ~]# ssh - copy - id [email protected]
要实现所有节点免密登录,就需要在每个节点上都操作一遍。
4、配置防火墙;(实验环境下关掉省事,生产环境建议按需开放端口)
粗暴解决:
- [[email protected] ~]# systemctl stop firewalld.service //停止防火墙
- [[email protected] ~]# systemctl disable firewalld.service //禁止防火墙开机启动
放开相应端口:
[
- [email protected] ~]# firewall - cmd --zone = public --add - port = 6789 / tcp --permanent[[email protected] ~]# firewall - cmd --zone = public --add - port = 6800 - 7100 / tcp --permanent [[email protected] ~]# firewall - cmd --reload
在其他所有节点都执行以上命令。
- [[email protected] ~]# firewall - cmd --zone = public --list - all
5、在所有节点禁用 SELINUX
[
- [email protected] ~]# setenforce 0[[email protected] ~]# sed - i s' / SELINUX. *= . * enforcing / SELINUX = disable' / g / etc / selinux / config[[email protected] ~]# cat / etc / selinux / config | grep - i = disable
6、所有节点安装并配置 NTP
- [[email protected] ~]# yum install ntp ntpdate –y[[email protected] ~]# vim / etc / ntp.conf
- [[email protected] ~]# systemctl restart ntpdate[[email protected] ~]# [[email protected] ~]# ceph - s[[email protected] ~]# systemctl enable ntpd[[email protected] ~]# systemctl enable ntpdate
7、替换所有节点 CentOS 国内源添加国内 Ceph 安装源和更新 yum
替换 CentOS 国内源:
- [[email protected] yum.repos.d]# rm - rf * [[email protected] yum.repos.d]# wget - O / etc / yum.repos.d / CentOS - Base.repo http: //mirrors.aliyun.com/repo/Centos-7.repo
- [[email protected] yum.repos.d]# yum clean all && yum makecache
添加 Ceph 国内安装源
- [[email protected] ~]# rpm - Uvh http: //mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
- [[email protected] yum.repos.d]#vim ceph.repo
- [Ceph] name = Ceph packages
- for $basearch baseurl = http: //mirrors.aliyun.com/ceph/rpm-jewel/el7/$basearch
- enabled = 1 gpgcheck = 1 type = rpm - md gpgkey = http: //mirrors.aliyun.com/ceph/keys/release.asc
- [Ceph - noarch] name = Ceph noarch packages baseurl = http: //mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch
- enabled = 1 gpgcheck = 1 type = rpm - md gpgkey = http: //mirrors.aliyun.com/ceph/keys/release.asc
- [ceph - source] name = Ceph source packages baseurl = http: //mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
- enabled = 1 gpgcheck = 1 type = rpm - md gpgkey = http: //mirrors.aliyun.com/ceph/keys/release.asc
- [[email protected] ~]#yum update –y
二、开始安装 Ceph
使用 ceph-deploy 工具在所有节点安装并配置 Ceph;ceph-deploy 是用来方便的配置管理 Ceph 存储集群。
1、在 ceph-node1 上安装 ceph-deploy
- [[email protected] ~]# yum install ceph - deploy –y
2、创建一个 ceph 目录;并用 ceph-deploy 创建一个 Ceph 集群
- [[email protected] ~]# mkdir / etc / ceph ; cd / etc / ceph[[email protected] ceph]# ceph - deploy new ceph - node1
通过 ceph-deploy 的子命令 new 能部署一个默认的新集群,同时它能生成集群配置文件和密钥文件。
在 / etc/ceph 下用 ls 命令可以看见相关文件:
- [[email protected] ceph]# pwd / etc / ceph[[email protected] ceph]# ls
3、使用 ceph-deploy 在所有节点上安装 ceph
- [[email protected] ceph]# ceph - deploy install ceph - node1 ceph - node2 ceph - node3 ceph - node4
Ceph-deploy 工具首先会安装相关依赖包;等待命令执行成功;如果中途报错终止,可以重新执行上面命令继续安装。
安装完成后在所有节点上查看 Ceph 版本及健康情况:
- [[email protected] ~]# ceph - v
ceph version 10.2.3 (ecc23778eb545d8dd55e2e4735b53cc93f92e65b)
4、在 ceph-node1 上创建一个 Monitor
- [[email protected] ceph]# ceph - deploy mon create - initial
创建成功之后,可以查看一下 Ceph 的健康状况,通过 ceph –s 命令可以发现目前集群还不是正常的。
5、在 Ceph-node1 上创建 OSD
(1)列出该节点上所有可用的磁盘
- [[email protected] ceph]# ceph - deploy disk list ceph - node1
选择上面列出的磁盘作为 OSD,除操作系统磁盘除外,一般操作系统盘为 sda。
(2)通过命令清除分区及磁盘内容
- [[email protected] ceph]# ceph - deploy disk zap ceph - node1: /dev/sdb ceph - node1: /dev/sdc ceph - node1: /dev/sdd
(3)创建 OSD;osd create 命令会将选择的磁盘用 XFS 文件系统格式化磁盘,然后激活磁盘分区。
- [[email protected] ceph]# ceph - deploy osd create ceph - node1: /dev/sdb ceph - node1: /dev/sdc ceph - node1: /dev/sdd
(4)创建 OSD 之后可以查看此时的集群的状态,这里主要看添加的 OSD 是否 up; 集群状态目前还是处于不正常的状态,还需要进一步配置才能使之正常。
- [[email protected] ceph]# ceph - s
- [[email protected] ~]# lsblk
三、扩展 ceph 集群
通过上面的安装过程,已经在 ceph-node1 节点上运行 Ceph 集群,目前它有 1 个 Mon 和 3 个 OSD;接下将通过扩展集群的方式把剩下的所有节点全部加入 Ceph 集群,届时将会有 3 个 Mon、12 个 OSD。
在一个 Ceph 集群中至少有一个 Monitor 集群才能运行,但为了集群的高可用,一般情况下 Ceph 集群中 3 至 5 个 Monitor,因在 Ceph 集群中必须依赖多于奇数个的 Monitor 来形成仲裁,在集群中 Ceph 会使用 Paxos 算法来确保仲裁的一致性。
(1)在 ceph 配置文件中添加 Public 网络;使用 vim 对 / etc/ceph/ceph.conf 进行编辑
- [[email protected] ceph]# vim ceph.conf
(2)再创建 2 个 Monitor
[[email protected] ceph]# ceph-deploy mon create ceph-node2 ceph-node3
将 2 个新的 Monitor 成功加入后,查看一下当前集群状态以及 Monitor 状态:
- [[email protected] ~]# ceph –s
- [[email protected] ~]# ceph mon stat
通过执行命令发行当前集群依然不是一个正常的状态,是因为除了 node1 节点配置了 OSD 其他节点磁盘均没有加入到 ceph 集群中,默认情况下数据会在集群中被复制三次,并放到不同节点上的不同 OSD 之上。
(3)将剩余节点磁盘全部加入 ceph 集群
列出剩余节点所有可用磁盘:
- [[email protected] ceph]# ceph - deploy disk list ceph - node2 ceph - node3 ceph - node4
清除节点磁盘分区及信息:
- [[email protected] ceph]# ceph - deploy disk zap ceph - node2: /dev/sdb ceph - node2: /dev/sdc ceph - node2: /dev/sdd[[email protected] ceph]# ceph - deploy disk zap ceph - node3: /dev/sdb ceph - node3: /dev/sdc ceph - node3: /dev/sdd [[email protected] ceph]# ceph - deploy disk zap ceph - node4: /dev/sdb ceph - node4: /dev/sdc ceph - node4: /dev/sdd
将剩余节点磁盘创建 OSD:
- [[email protected] ceph]# ceph - deploy osd create ceph - node2: /dev/sdb ceph - node2: /dev/sdc ceph - node2: /dev/sdd [[email protected] ceph]# ceph - deploy osd create ceph - node3: /dev/sdb ceph - node3: /dev/sdc ceph - node3: /dev/sdd[[email protected] ceph]# ceph - deploy osd create ceph - node4: /dev/sdb ceph - node4: /dev/sdc ceph - node4: /dev/sdd
将其所有剩余节点磁盘全部成功加入 ceph 集群之后执行命令进行检查 OSD 数量及状态:
- [[email protected] ~]# ceph –s
- [[email protected] ~]# ceph osd tree
(4)在对 ceph 集群添加了很多个 OSD 之后,还需要对 pg_num 和 pgp_num 值进行设定。这也就是为啥集群添加了多个 OSD 集群依然处于不正常状态的根本原因。
- [[email protected] ceph]# ceph osd pool set rbd pg_num 256
- [[email protected] ~]# ceph –s
四、常用运维命令
1、检查 ceph 集群健康状态
- [[email protected] ~]# ceph –s[[email protected] ~]# ceph status[[email protected] ~]# ceph health[[email protected] ~]# ceph health detail //查看健康状况细节情况;当集群健康状况出现异常时该命令十分管用
2、观察集群实时情况
[[email protected] ~]# ceph -w // 可以看见实时读写 IO 情况,但不能作为性能参考指标
3、查看 Ceph Moniter 仲裁状态
- [[email protected] ceph]# ceph quorum_status - f json - pretty
命令参数:
[Contacting monitor, timeout after 5 seconds]
quorum_status report status of monitor quorum
[-f {json,json-pretty,xml,xml-pretty,plain}]
4、导出 Ceph 集群 Monitor 信息
- [[email protected] ceph]# ceph mon dump
5、查看 ceph 集群空间使用状况
- [[email protected] ~]# ceph df
6、查看 Monitor、OSD、PG 组状态
Monitor 状态:
- [[email protected] ~]# ceph mon stat
OSD 状态:
- [[email protected] ~]# ceph osd stat
- [[email protected] ~]# ceph osd tree //
- 用这个命令可以看到详细的OSD状态,排错比较常用
PG 状态:
- [[email protected] ~]# ceph pg stat
7、列出 PG 详情
- [[email protected] ~]# ceph pg dump
8、列出集群中的存储池
- [[email protected] ~]# ceph osd lspools
9、列出集群认证密钥
- [[email protected] ~]# ceph auth list
来源: http://www.bubuko.com/infodetail-2214211.html