ceph集群部署

部署环境

系统版本:centos7.5 x86_64 server
ceph版本:ceph 12.2.10(luminous)
硬件配置:5台虚拟机,1核1G内存,每台node角色的机器至少挂载1块为osd准备的空闲盘
IP 主机名 role
192.168.0.102 admin admin
192.168.0.105 node1 mon / mgr / osd
192.168.0.107 node2 osd
192.168.0.109 node3 osd
192.168.0.108 client
三个node节点要有两个磁盘

image.png

1、准备工作

1.1关闭防火墙和SELinux(五台虚拟机都要做)

[root@localhost ~]# systemctl stop firewalld && setenforce 0

1.2修改主机名并设置互相解析(五台虚拟机都要做)

#修改主机名(所有虚拟机)
[root@localhost ~]# hostnamectl set-hostname admin
[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# hostnamectl set-hostname node3
[root@client ~]#  hostnamectl set-hostname client
#设置互相解析(所有虚拟机)
# vim /etc/hosts       添加解析
192.168.0.102 admin
192.168.0.105 node1
192.168.0.107 node2
192.168.0.109 node3
192.168.0.108 client

1.3创建用户(五台虚拟机都要做)

(1)创建用户并设置密码
# useradd cephu
# echo 123 | passwd --stdin cephu
(2)修改visudo文件,否则提示cephu不再sudoer列表中的错误。
# visudo
image.png
(3)切换至cephu用户,为该用户增加root权限:
# su - cephu
$ echo "cephu ALL=(root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephu
$ sudo  chmod 0440 /etc/sudoers.d/cephu
image.png

1.4实现免密登录(admin)

cephu用户下

#生成密钥
[cephu@admin ~]$ ssh-keygen
#把生成的密钥拷贝到node节点
[cephu@admin ~]$ ssh-copy-id cephu@node1
[cephu@admin ~]$ ssh-copy-id cephu@node2
[cephu@admin ~]$ ssh-copy-id cephu@node3

root用户下:

#添加~/.ssh/config配置文件,并进行如下设置
[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

1.5 添加下载源,安装ceph-deploy(admin节点,root用户)

#添加ceph源
[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 clean all    清理缓存
[root@admin ~]# yum makecache fast
[root@admin ~]# yum update
[root@admin ~]# vim /etc/yum.conf
image.png
[root@admin ~]# yum install ceph-deploy -y

1.6 安装ntp

选择任何一台机器当ntp时间服务器,其他的节点当时间服务器的客户端跟服务器同步时间
admin上:

[root@admin ~]# yum -y install ntp
[root@admin ~]# vim /etc/ntp.conf
server 127.127.1.0
fudge  127.127.1.0 stratum 10
image.png
[root@admin ~]# systemctl start ntpd
[root@admin ~]# systemctl status ntpd    #看ntp服务是否启动

其他虚拟机:

[root@client ~]# yum -y install ntpdate
[root@client ~]# ntpdate admin
16 Apr 21:41:18 ntpdate[10777]: adjust time server 192.168.0.102 offset 0.355461 sec

2、部署ceph集群

没有特别说明以下所有操作均是在admin节点,cephu用户下执行

2.1 创建ceph操作目录

[root@admin ~]# su - cephu
[cephu@admin ~]$ mkdir my-cluster     //切记不可用sudo创建
[cephu@admin ~]$ cd my-cluster       //之后,所有ceph-deploy命令操作必须在该目录下执行

2.2 创建集群

[cephu@admin my-cluster]$ ceph-deploy new node1
image.png

这时候我们要重新安装python的distribution:

[cephu@admin distribute-0.7.3]$ wget https://files.pythonhosted.org/packages/5f/ad/1fde06877a8d7d5c9b60eff7de2d452f639916ae1d48f0b8f97bf97e570a/distribute-0.7.3.zip
[cephu@admin distribute-0.7.3]$ unzip distribute-0.7.3.zip
[cephu@admin my-cluster]$ cd distribute-0.7.3
[cephu@admin distribute-0.7.3]$ sudo python setup.py install

然后

[cephu@admin distribute-0.7.3]$ cd ..
[cephu@admin my-cluster]$ ceph-deploy new node1
image.png
[cephu@admin my-cluster]$ ls
ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring  distribute-0.7.3  distribute-0.7.3.zip
创建成功会有三个文件:ceph.conf, ceph.mon.keyring, and a log file

2.3 安装luminous(12.2.13)

目标:在node1,node2,node3三个节点上安装ceph和ceph-radosgw主包

方法1:
[cephu@admin my-cluster]$ sudo yum -y install epel-release     #安装epel源
[cephu@admin my-cluster]$ ceph-deploy install --release luminous node1 node2 node3
#这一步实际上是给3个节点安装两个软件:如果ceph和ceph-radosgw安装不上,则采用方法2

测试是否安装完成:分别在node1 node2 node3中确认安装版本
$ ceph --version

方法2:手动部署安装

在三个节点上:

  • 安装epel源
  • 创建Ceph源,内容如下:
[root@node3 ~]# 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
  • 分别在node1,node2,node3节点执行下面命令安装软件
    可以完全手动安装,但需要yum的ceph缓存目录结构
    [root@node3 ~]# yum install ceph ceph-radosgw -y
    如果因为速度慢导致安装失败可以按ctrl+c,利用它创建的yum缓存目录,手动把安装包下载下来保存到缓存目录/var/cache/yum/x86_64/Ceph/packages目录下

再次执行安装命令:
[root@node3 ~]# yum install ceph ceph-radosgw -y

分别在node1 node2 node3中确认安装版本为12.2.13:

$ ceph --version
ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)

2.4 初始化mon

[cephu@admin my-cluster]$ ceph-deploy mon create-initial

2.5 赋予各个节点使用命令免用户名权限

[cephu@admin my-cluster]$ ceph-deploy admin node1 node2 node3

2.6 安装ceph-mgr:只在node1上面装,为使用dashboard做准备

[cephu@admin my-cluster]$ ceph-deploy mgr create node1

2.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

image.png

注:命令中/dev/sdb是在各个节点上为osd准备的空闲磁盘
通过如下命令查看:
[cephu@admin my-cluster]$ ssh node1 lsblk -f 在admin上
或:
[cephu@node1 ~]$ lsblk 在node1上

查看集群状态:
[cephu@admin my-cluster]$ ssh node1 sudo ceph -s

image.png

3 Dashboard的配置:在node1的cephu上用户操作

把ceph-mgr和ceph-mon安装在同一个主机上,最好只有一个ceph-mgr

3.1 创建管理域秘钥

[cephu@node1 ~]$ sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'

image.png

3.2 开启 ceph-mgr 管理域:

[cephu@node1 ~]$ sudo ceph-mgr -i node1

3.3 查看ceph的状态:

[cephu@node1 ~]$ sudo ceph status

image.png

确认mgr的状态为active

3.4 打开dashboard模块:

[cephu@node1 ~]$ sudo ceph mgr module enable dashboard

3.5 绑定开启dashboard模块的ceph-mgr节点的ip地址

[cephu@node1 ~]$ sudo ceph config-key set mgr/dashboard/node1/server_addr 192.168.0.105     #ip地址为mgr节点的ip地址
set mgr/dashboard/node1/server_addr

3.6 web登录:

浏览器访问192.168.0.105:7000

image.png

4 配置客户端使用rbd:

创建块设备之前需要创建存储池,存储池相关命令需要在mon节点执行

4.1 创建存储池:

[cephu@node1 ~]$ sudo ceph osd pool create rbd 128 128
pool 'rbd' created

4.2 初始化存储池:

[cephu@node1 ~]$ sudo rbd pool init rbd

4.3 客户端client(192.168.0.108),cephu用户:

(1)升级client内核到4.x

更新前,内核版本为:

[cephu@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
image.png
#安装内核
[cephu@client ~]$ sudo yum --enablerepo=elrepo-kernel install  kernel-lt-devel kernel-lt
image.png
#查看默认启动顺序
[cephu@client ~]$ sudo awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.4.219-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-a2fd5fc957c44536a3fbf4e4894b0e36) 7 (Core)
#虽然4.4内核在0的位置,但是系统会默认使用上次启动使用的内核来启动,所以我们需要把4.4内核设置为默认
[cephu@client ~]$ sudo grub2-set-default 0

重启client

#查看重启后的内核版本
[cephu@client ~]$ uname -r
4.4.219-1.el7.elrepo.x86_64
#删除旧的内核
[cephu@client ~]$ sudo yum remove kernel
(2)为client安装ceph:
[root@client ~]# yum  -y install python-setuptools

安装luminous,参考2.3

(3)关闭防火墙和SELinux
(4)在admin节点赋予client使用命令免用户名权限:

[cephu@admin my-cluster]$ ceph-deploy admin client

(5)修改client下该文件的读权限:

[cephu@client ~]$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring

(6)修改client下的ceph配置文件:这一步是为了解决映射镜像时出错问题
[cephu@client ~]$ sudo vim /etc/ceph/ceph.conf     #在global部分下添加:
rbd_default_features = 1
image.png

4.4 client节点创建块设备镜像:单位是M,这里是3个G

[cephu@client ~]$ rbd create foo --size 3072

4.5 client节点映射镜像到主机:

[cephu@client ~]$ sudo rbd map foo --name client.admin
如果出现如下错误:

image.png

[cephu@client ~]$ sudo ceph osd crush tunables hammer
adjusted tunables profile to hammer
然后重新执行映射命令
[cephu@client ~]$ sudo rbd map foo --name client.admin
/dev/rbd0

4.6 client节点格式化块设备:

[cephu@client ~]$ sudo mkfs.ext4 -m 0 /dev/rbd/rbd/foo

image.png

[cephu@client ~]$ lsblk
image.png

4.7 client节点mount块设备:

[cephu@client ~]$ sudo mkdir /mnt/ceph-block-device
[cephu@client ~]$ sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
[cephu@client ~]$ cd /mnt/ceph-block-device
接下来就可以使用这块磁盘啦

客户端重起之后,设备需要重新作映射,不然可能会卡死

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容