服务器信息
IP
Hostname
module
172.16.1.12
ceph1
ceph-deploy,osd,mgr,mon(控制节点)
172.16.1.13
ceph2
osd,mon
172.16.1.14
ceph3
osd,mon
Ceph-Deploy
ceph-deploy应该部署在专用的节点,也就是管理节点AdminHost上。
ceph-deploy无法处理客户端工具,如果你需要使用Ceph集群,需要自己安装和配置客户端,这个客户端可能是一个内核模块(librbd),也可能只是一个命令行工具。
前期准备 关闭selinux
1 2 # 三台节点统一配置 [root@ceph1 ~]# setenforce 0
ssh免密登陆 1 2 3 4 5 [root@ceph1 ~] [root@ceph1 ~] [root@ceph1 ~] [root@ceph1 ~]
配置本地解析 1 2 3 4 5 6 7 8 # 三台节点统一配置 [root@ceph1 ~]# cat >> /etc/hosts << EOF 172.16.1.12 ceph1 172.16.1.13 ceph2 172.16.1.14 ceph3 EOF [root@ceph1 ~]# scp /etc/hosts ceph2:/etc/ [root@ceph1 ~]# scp /etc/hosts ceph3:/etc/
放行防火墙端口 1 2 3 4 # 三台节点统一配置 [root@ceph1 ~]# firewall-cmd --permanent --add-port=6789/tcp #admin [root@ceph1 ~]# firewall-cmd --permanent --add-port=6800-8000/tcp #osd [root@ceph1 ~]# firewall-cmd --reload
更换yum源 1 2 3 4 # 三台节点统一配置 [root@ceph1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@ceph1 ~]# yum clean all [root@ceph1 ~]# yum makecache
同步时间
选择任何一台机器当ntp时间服务器,其他的节点当时间服务器的客户端跟服务器同步时间
1 2 3 4 # 三台节点统一配置 [root@ceph1 ~]# yum -y install ntpdate ntp [root@ceph1 ~]# ntpdate cn.ntp.org.cn [root@ceph1 ~]# systemctl restart ntpd && systemctl enable ntpd
安装部署 配置ceph yum源 所有节点
vi /etc/yum.repos.d/ceph.repo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [Ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch 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-luminous/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-luminous/el7/SRPMS enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1
更新源
1 2 [root@ceph1 ~]# yum clean all [root@ceph1 ~]# yum makecache
安装ceph-deploy,安装epel存储库 1 2 3 4 # 所有节点执行 [root@ceph1 ~]# yum -y install epel-release # deploy节点执行 [root@ceph1 ~]# yum -y install ceph-deploy python-pip
创建ceph操作目录 1 2 [root@ceph1 ~]# mkdir /etc/ceph && cd /etc/ceph # ceph-deploy命令操作必须在该目录下执行
创建集群 创建在此目录生成文件,ceph-deploy new ceph1
1 2 3 [root@ceph1 ceph]# ceph-deploy new ceph1 ceph2 ceph3 [root@ceph1 ceph]# ls ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
如遇到报错: 1 2 3 4 5 6 7 8 9 [root@ceph1 ceph]# ceph-deploy new ceph usage: ceph-deploy new [-h] [--no-ssh-copykey] [--fsid FSID] [--cluster-network CLUSTER_NETWORK] [--public-network PUBLIC_NETWORK] MON [MON ...] ceph-deploy new: error: hostname: ceph is not resolvable 故障原因及解决:1.hosts本地解析未添加,添加本地解析 2.命令拷贝出错,手动输入命令,多执行几次解决
修改配置文件 1 2 3 4 5 6 7 8 9 10 11 12 [root@ceph1 ceph]# vi ceph.conf [global] fsid = df10a8e8-6610-4ab1-bc56-707e34f5530a mon_initial_members = ceph1, ceph2, ceph3 mon_host = 172.16.1.12,172.16.1.13,172.16.1.14 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx rbd_default_features = 1 mon clock drift allowed = 2 mon clock drift warn backoff = 30 public_network = 172.16.1.0/24 # 可选
部分操作系统kernel只支持layering,所以最好直接在配置文件指明创建rbd时默认支持的特性 rbd_default_features = 1
由于ceph分布式对时钟的同步要求很高,可以将同步误差范围调大; mon clock drift allowed = 2 mon clock drift warn backoff = 30
网络添加,用于ceph内部通信
public_network = 172.16.1.0/24
官网建议:一般来说,我们不建议用单网卡 OSD 主机部署两个网络。然而这事可以实现,把 public addr 选项配在 [osd.n] 段下即可强制 OSD 主机运行在公共网,其中 n 是其 OSD 号。另外,公共网和集群网必须互通,考虑到安全因素我们不建议这样做
安装Ceph软件包
初始化monitor(s),并收集密钥 1 2 3 4 [root@ceph1 ceph] [root@ceph1 ceph] ceph.bootstrap-mds.keyring ceph.bootstrap-osd.keyring ceph.client.admin.keyring ceph-deploy-ceph.log ceph.bootstrap-mgr.keyring ceph.bootstrap-rgw.keyring ceph.conf ceph.mon.keyring
使用ceph-deploy把配置文件和admin密钥拷贝到所有节点 如果只允许一个节点来管理ceph就不用执行
以便您每次执行Ceph命令行时就无需指定monitor地址和ceph.client.admin.keyringceph.client.admin.keyring
检查集群状态 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@ceph1 ceph] cluster: id: 4c05498b-9d83-42b4-af56-4d75a62d7422 health: HEALTH_OK OSD count 1 < osd_pool_default_size 3 services: mon: 1 daemons, quorum ceph1 mgr: ceph1(active) osd: 3 osds: 3 up, 3 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0B usage: 0B used, 0B / 0B avail pgs:
创建OSD 各节点新增一块硬盘
新增磁盘无需格式化,如果有分区需要制定具体分区
1 2 3 4 5 6 7 8 9 [root@ceph1 ceph] [root@ceph1 ceph] [root@ceph1 ceph] [root@ceph1 ceph] [root@ceph1 ceph] [root@ceph1 ceph] [root@ceph1 ceph]
注:如果要在LVM卷上创建OSD,则参数 –data 必须是 volume_group/lv_name ,而不是卷的 块设备的路径
检查集群状态 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@ceph1 ceph] cluster: id: 4c05498b-9d83-42b4-af56-4d75a62d7422 health: HEALTH_OK services: mon: 1 daemons, quorum ceph1 mgr: ceph1(active) osd: 3 osds: 3 up, 3 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0B usage: 1.00GiB used, 59.0GiB / 60.0GiB avail pgs:
开启dashboard模块 用于UI查看
1 2 3 4 5 6 7 8 [root@ceph1 ceph] [root@ceph1 ceph] { "dashboard" : "http://ceph1:7000/" } [root@ceph1 ceph] tcp6 0 0 :::7000 :::* LISTEN 206997/ceph-mgr
查看osd状态 1 2 3 4 5 [root@ceph1 ceph] ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.01949 root default -3 0.01949 host ceph1 0 hdd 0.01949 osd.0 up 1.00000 1.00000
配置客户端使用 使用rbd块存储
创建块设备之前需要创建存储池,存储池相关命令需要在mon节点执行–也就是规划好的node1节点
创建存储池 1 sudo ceph osd pool create rbd 128 128
初始化存储池