前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安装Ceph集群(二)

安装Ceph集群(二)

作者头像
用户8639654
修改2021-08-18 17:54:09
2660
修改2021-08-18 17:54:09
举报
文章被收录于专栏:云计算运维

注 意: 版本更新非常快,有问题要看官方文档

官方文档: http://docs.ceph.com

代码语言:javascript
复制
 准备环境
 系统版本:centos7.4 x86_64 server
 硬件配置:5台vm,1核1G内存,每台node角色的机器至少挂载1块不低于5个G的空闲盘为osd存储
 ​
     主机名                 ip                       role
     admin            192.168.153.130               admin--安装ceph-deploy
     node1            192.168.153.131               mon / mgr / osd 
     node2            192.168.153.132               osd
     node3            192.168.153.133               osd
     ceph-client      192.168.153.134
     
 1.给三台node节点添加一块大小5G以上的磁盘。
 2.所有节点修改主机名并相互解析
 3.关闭所有机器的防火墙和selinux
 4.所有节点创建普通用户并设置密码--所有节点都操作
 [root@admin ~]# useradd cephu
 [root@admin ~]# passwd cephu
 ​
 5.确保各 Ceph 节点上新创建的用户都有 sudo 权限--所有节点操作
 [root@admin ~]# visudo  ----在root ALL=(ALL) ALL下面添加:
 cephu ALL=(root) NOPASSWD:ALL
 
代码语言:javascript
复制
 6.实现ssh无密码登录(admin节点操作)
 [root@admin ~]# su - cephu
 [cephu@admin ~]$ ssh-keygen
 ​
 7.将admin节点cephu用户生成的密钥拷贝到各Ceph节点:
 [cephu@admin ~]$ ssh-copy-id cephu@node1
 [cephu@admin ~]$ ssh-copy-id cephu@node2
 [cephu@admin ~]$ ssh-copy-id cephu@node3
 [cephu@admin ~]$ ssh-copy-id cephu@ceph-client
 ​
 8.在admin节点用root用户添加~/.ssh/config配置文件,并进行如下设置,这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了
 [root@admin ~]# mkdir ~/.ssh
 [root@admin ~]# vim ~/.ssh/config
 Host node1
 Hostname node1
 User cephu
 ​
 Host node2
 Hostname node2
 User cephu
 ​
 Host node3
 Hostname node3
 User cephu
代码语言:javascript
复制
 9.添加下载源,安装ceph-deploy(admin节点,root用户)
 [root@admin ~]# vim /etc/yum.repos.d/ceph.repo
 [ceph-noarch]
 name=Ceph noarch packages
 baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
 enabled=1
 gpgcheck=1
 type=rpm-md
 gpgkey=https://download.ceph.com/keys/release.asc
 ​
 更新源,安装ceph-deploy:
 [root@admin ~]# yum makecache
 [root@admin ~]# yum update
 开启yum缓存
 [root@admin ~]# vim /etc/yum.conf
 keepcache=1
 安装
 [root@admin ~]# yum install ceph-deploy vim wget unzip -y
 ​
 10.安装ntp(所有节点)
 #注意!!选择任何一台机器当ntp时间服务器,其他的节点当时间服务器的客户端跟服务器同步时间
 我选择的是admin上:
 [root@admin ~]# yum install -y ntp
 [root@admin ~]# vim /etc/ntp.conf  #有4行server的位置,把那4行server行注释掉,填写以下两行
 server 127.127.1.0 # local clock
 fudge  127.127.1.0 stratum 10
代码语言:javascript
复制
 [root@admin ~]# systemctl start ntpd
 [root@admin ~]# systemctl status ntpd
 其他所有节点:
 # yum install ntpdate  -y
 # ntpdate  时间服务器ip
 部署ceph集群
 #注意!!没有特别说明以下所有操作均是在admin节点,cephu用户下执行
 1.创建cephu操作的目录:
 [root@qfedu.com-admin ~]# su - cephu
 [cephu@admin ~]$ mkdir my-cluster   #之后,所有ceph-deploy命令操作必须在该目录下执行
 ​
 2.创建集群---这里报错查看后面的错误整理
 首先在这里需要先下载一个包并安装否则会报错,然后在创建集群
 [cephu@admin ~]$ wget https://files.pythonhosted.org/packages/5f/ad/1fde06877a8d7d5c9b60eff7de2d452f639916ae1d48f0b8f97bf97e570a/distribute-0.7.3.zip
 [cephu@admin ~]$ unzip distribute-0.7.3.zip
 [cephu@admin ~]$ cd distribute-0.7.3
 [cephu@admin distribute-0.7.3]$ sudo python setup.py install
 创建集群
 [cephu@admin ~]$ cd my-cluster/
 [cephu@admin my-cluster]$ ceph-deploy new node1
 [cephu@admin my-cluster]$ ls
 ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring
 创建成功会有三个文件:ceph.conf, ceph.mon.keyring, and a log file
 ​
 3.安装luminous-12.2.13在(脚本方式在admin节点)
 目标:在node1,node2,node3三个节点上安装ceph和ceph-radosgw主包
 ​
 方法1:利用官方脚本全自动安装
 #脚本会帮助node1,node2,node3创建epel源和ceph源,并且自动安装ceph和ceph-radosgw主包
 [cephu@admin my-cluster]$ ceph-deploy install --release luminous node1 node2 node3
 #这一步时间很长,容易超时,可以利用手动安装
 ​
 ​
 ​
 如果ceph和ceph-radosgw安装不上,则采用方法2,这里我们采用此方法
 在千锋做实验要注意epel的源(切记)
 测试是否安装完成:分别在node1 node2 node3中确认安装版本为12.2.13
  [cephu@node1 ~]$ ceph --version 
 ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
 ​
 ​
 方法2:手动部署安装三台机器分别创建:三台node节点相同操作
     1)安装epel源
     # yum install -y epel-release
     2)创建Ceph源,内容如下:官方源
     # vim /etc/yum.repos.d/ceph.repo
 [Ceph]
 name=Ceph packages for $basearch
 baseurl=http://download.ceph.com/rpm-luminous/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-luminous/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-luminous/el7/SRPMS
 enabled=1
 gpgcheck=1
 type=rpm-md
 gpgkey=https://download.ceph.com/keys/release.asc
 priority=1
 ​
 #下面的是阿里云的ceph源
 # vim /etc/yum.repos.d/ceph.repo
 [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
 ​
     3)分别在node1,node2,node3节点执行下面命令安装软件,可以完全手动安装,但需要yum的ceph缓存目录结构
     $sudo yum install ceph ceph-radosgw  -y    
     如果因为速度慢导致安装失败可以按ctrl+c,利用它创建的yum缓存目录,手动把安装包下载下来保存到缓存目录/var/cache/yum/x86_64/Ceph/packages目录下
     再次执行安装命令:
     $sudo yum install ceph ceph-radosgw  -y
 ​
 测试是否安装完成:分别在node1 node2 node3中确认安装版本为12.2.13    
 [cephu@node1 ~]$ ceph --version 
 ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
 4.初始化mon:admin节点--cephu用户执行
 [cephu@admin my-cluster]$ ceph-deploy mon create-initial
 ​
 5.赋予各个节点使用命令免用户名权限:
 [cephu@admin my-cluster]$ ceph-deploy admin node1 node2 node3
 ​
 6.安装ceph-mgr:只有luminous才有,为使用dashboard做准备
 [cephu@admin my-cluster]$ ceph-deploy mgr create node1
 ​
 7.添加osd:
 注意:各个节点上提供存储空间的磁盘大小不能太小,最好5G以上,注意检查你的磁盘名字
 [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
 [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
 [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
 命令中/dev/sdb是在各个节点上为osd准备的空闲磁盘(无需分区格式化,如果有分区需要指定具体分区)。
 最后通过如下命令查看集群状态:
 [cephu@admin my-cluster]$ ssh node1 sudo ceph -s
 如果显示health_ok,3个osd up就成功了
 

Dashboard的配置

代码语言:javascript
复制
 在node1上操作
 把ceph-mgr和ceph-mon安装在同一个主机上,最好只有一个ceph-mgr
 [root@node1 ~]# su - cephu
 ​
 1.创建管理域秘钥:
 [cephu@node1 ~]$ sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
 [mgr.node1]
     key = AQAePadeYsvJLxAA9Pnmib3S+0Kj1jAeuSQcKw==
 ​
 2.开启 ceph-mgr 管理域
 [cephu@node1 ~]$ sudo ceph-mgr -i node1
 ​
 3.查看ceph的状态:确认mgr的状态为active
 [cephu@node1 ~]$ sudo ceph status
   cluster:
     id:     aec06bc6-428c-49ff-a2c1-2d84808bcb54
     health: HEALTH_OK
  
   services:
     mon: 1 daemons, quorum node1
     mgr: node1(active, starting)
     osd: 3 osds: 3 up, 3 in
  
   data:
     pools:   0 pools, 0 pgs
     objects: 0 objects, 0B
     usage:   3.01GiB used, 12.0GiB / 15.0GiB avail
     pgs:
     
 4.打开dashboard模块:加载dashboard模块到内存里面
 [cephu@node1 ~]$ sudo ceph mgr module enable dashboard
 ​
 5.绑定开启dashboard模块的ceph-mgr节点的ip地址:
 [cephu@node1 ~]$ sudo ceph config-key set mgr/dashboard/node1/server_addr 192.168.153.136
 set mgr/dashboard/node1/server_addr
 # ip地址为mgr节点的ip地址,也就是node1的ip地址
 ​
 5.web登录:浏览器地址栏输入:
  mgr地址:7000
  
  

到这里Ceph分布式集群完成!

配置客户端使用rbd

代码语言:javascript
复制
 创建块设备之前需要创建存储池,存储池相关命令需要在mon节点执行--也就是规划好的node1节点
 创建存储池:
 [cephu@node1 ~]$ sudo ceph osd pool create rbd 128 128
 pool 'rbd' created
 ​
 注释:
 创建pool
 # 若少于5个OSD, 设置pg_num为128。
 # 5~10个OSD,设置pg_num为512。
 # 10~50个OSD,设置pg_num为4096。
 ​
 ​
 ​
 初始化存储池
 [cephu@node1 ~]$ sudo rbd pool init rbd
 ​
 准备客户端client(客户端操作):
 升级client内核到最新版本
 更新前,内核版本为:
 [root@ceph-client ~]# uname -r 
 3.10.0-693.el7.x86_64
 ​
 升级方法
 导入key
 [root@client ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
 ​
 安装elrepo的yum源
 [root@client ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
 ​
 查看可用的系统内核包
 [root@client ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
 ​
 安装内核
 [root@client ~]# yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y
 ​
 查看内核默认启动顺序
 [root@client ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg 
 CentOS Linux (5.7.8-1.el7.elrepo.x86_64) 7 (Core)
 CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)
 CentOS Linux (0-rescue-f0079ffdc1064b91b9f525935ca9c3e7) 7 (Core)
 ​
 选择处于0位置的新内核为默认启动内核
 [root@client ~]# grub2-set-default 0
 [root@client ~]# reboot
 ​
 重启后的内核版本:
 [root@client ~]# uname -r 
 5.7.8-1.el7.elrepo.x86_64
 ​
 删除旧内核
 [root@client ~]# yum remove kernel -y
 ​
 client安装ceph:
 环境准备参考部署ceph文档开头环境准备的2-5步
 ​
 安装依赖包、epel、配置ceph源
 [root@client ~]# yum install -y  python-setuptools  epel-release
 [root@client ~]# vim /etc/yum.repos.d/ceph.repo
 [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
 ​
 [root@client ~]# yum install ceph ceph-radosgw  -y
 [root@client ~]# ceph --version
 ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
 ​
 在admin节点赋予client使用命令免用户名权限:
 [cephu@admin my-cluster]# ceph-deploy admin client
 ​
 修改client下该文件的读权限:
 [root@client ~]# chmod +r /etc/ceph/ceph.client.admin.keyring
 ​
 修改client下的ceph配置文件:这一步是为了解决映射镜像时出错问题
 [root@client ~]# vi /etc/ceph/ceph.conf #在global section下添加:
 rbd_default_features = 1
 ​
 client节点创建块设备镜像:单位是M,这里是4个G
 [root@client ~]# rbd create foo --size 4096
 ​
 client节点映射镜像到主机:
 [root@client ~]# rbd map foo --name client.admin
 /dev/rbd0
 ​
 client节点格式化块设备:
 [root@client ~]# mkfs.ext4 -m 0 /dev/rbd/rbd/foo
 ​
 client节点mount块设备:
 [root@client ~]# mkdir /mnt/ceph-block-device #创建挂载点
 [root@client ~]# mount /dev/rbd/rbd/foo /mnt/ceph-block-device #挂载
 ​
 客户端重起之后,设备需要重新作映射,不然可能会卡死
 

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注 意: 版本更新非常快,有问题要看官方文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档