centos7 安装配置ceph

前期准备:

规划:8台机器
IP               hostname         role

192.168.2.20     mon              mon.mon
192.168.2.21     osd1             osd.0,mon.osd1
192.168.2.22     osd2             osd.1,mds.b(standby)
192.168.2.23     osd3             osd.2
192.168.2.24     osd4             osd.3
192.168.2.27     client           mds.a,mon.client
192.168.2.28     osd5             osd.4
192.168.2.29     osd6             osd.5

关闭 SELINUX
[root@admin ceph]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config
[root@admin ceph]# setenforce 0

打开 Ceph 需要的端口
[root@admin ceph]# firewall-cmd --zone=public --add-port=6789/tcp --permanent
[root@admin ceph]# firewall-cmd --zone=public --add-port=6800-7100/tcp --permanent
[root@admin ceph]# firewall-cmd --reload

安装 ntp 同步时间
[[email protected] ceph]# yum -y install ntp ntpdate ntp-doc
[[email protected] ceph]# ntpdate 0.us.pool.ntp.org
[[email protected] ceph]# hwclock --systohc
[[email protected] ceph]# systemctl enable ntpd.service
[[email protected] ceph]# systemctl start ntpd.service

ssh无密码访问:
[[email protected] ceph]#ssh-keygen
[[email protected] ceph]#ssh-copy-id {username}@node1

安装:
安装ceph(需要在每个节点上面做)

前面要安装依赖包,大概20个左右,也可以边做边装(比较麻烦,不推荐)

[[email protected] ceph]#yum install -y make automake autoconf  boost-devel fuse-devel gcc-c++ libtool libuuid-devel  libblkid-devel  keyutils-libs-devel  cryptopp-devel  fcgi-devel  libcurl-devel expat-devel gperftools-devel                                   libedit-devel libatomic_ops-devel snappy-devel leveldb-devel libaio-devel xfsprogs-devel git libudev-devel btrfs-progs

使用yum 安装ceph,要配置yum源,配置方式参考官网,http://ceph.com/docs/master/install/get-packages/
[[email protected] ceph]#yum install -y ceph-deploy ceph

如果安装不了,可以直接去ceph官网下载要安装的ceph版本,然后手动安装

集群配置(手动,不推荐)

mon安装:

1.给集群分配惟一 ID (即 fsid )
[[email protected] ceph]# uuidgen
d437c823-9d58-43dc-b586-6b36cf286d4f

2.创建 Ceph 配置文件, Ceph 默认使用 ceph.conf ,其中的 ceph 是集群名字。
[[email protected] ceph]#sudo vi /etc/ceph/ceph.conf
将上面创建的fsid放到ceph.conf
fsid = d437c823-9d58-43dc-b586-6b36cf286d4f

3.把初始监视器及初始监视器的 IP 地址写入 Ceph 配置文件,多个用逗号隔开
mon initial members =mon
mon host =192.168.2.20

4.为此集群创建密钥环、并生成监视器密钥。
[[email protected] ceph]#ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon ‘allow *‘

5.生成管理员密钥环,生成 client.admin 用户并加入密钥环。
[[email protected] ceph]#ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon ‘allow *‘ --cap osd ‘allow *‘ --cap mds ‘allow‘

6.把 client.admin 密钥加入 ceph.mon.keyring 。

[[email protected] ceph]#ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

7.用规划好的主机名、对应 IP 地址、和 FSID 生成一个监视器图,并保存为 /tmp/monmap
[[email protected] ceph]#monmaptool --create --add mon 192.168.2.20 --fsid d437c823-9d58-43dc-b586-6b36cf286d4f /tmp/monmap

8.在监视器主机上分别创建数据目录
 [[email protected] ceph]# mkdir /var/lib/ceph/mon/ceph-mon

9.用监视器图和密钥环组装守护进程所需的初始数据。
[[email protected] ceph]#ceph-mon --mkfs -i mon --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

10.修改Ceph 配置文件,目前配置应包括这些
[global]
fsid = d437c823-9d58-43dc-b586-6b36cf286d4f
mon initial members = mon
mon host = 192.168.2.20
public network = 192.168.2.0/24
cluster network = 192.168.2.0/24
auth_cluster_required = cephx
auth_service _equired = cephx
auth_client_required = cephx
auth supported = none
osd journal size = 1024
#filestore xattr use omap = true
osd pool default size = 2
osd pool default min size = 1
osd pool default pg num = 333
osd pool default pgp num = 333
osd crush chooseleaf type = 1

[mon]
mon data = /var/lib/ceph/mon/$name

[mon.mon]

host=admin
mon addr=192.168.2.20:6789

11.建一个空文件 done ,表示监视器已创建、可以启动了:
 [[email protected] ceph]#touch /var/lib/ceph/mon/ceph-mon/done

12.启动监视器
[[email protected] ceph]#/etc/init.d/ceph start mon.mon

13.查看状态
[[email protected] ceph]# ceph -s

添加MON

一台主机上只能有一个mon,现在在其他节点中添加Mon
1.在新监视器主机上创建默认目录:
[[email protected] ceph]# mkdir /var/lib/ceph/mon/ceph-{mon-id}
如:mkdir /var/lib/ceph/mon/ceph-osd1

2.获取监视器密钥环。
[[email protected] ceph]# ceph auth get mon. -o /tmp/ceph.mon.keyring
如果这一步做不成功,可以直接复制其他mon节点上的到相应目录。

3.获取监视器运行图
[[email protected] ceph]# ceph mon getmap -o /tmp/ceph.mon.map

4.准备第一步创建的监视器数据目录。必须指定监视器运行图路径,这样才能获得监视器法定人数和它们 fsid 的信息;还要指定监视器密钥环路径。
[[email protected] ceph]# ceph-mon -i {mon-id} --mkfs --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyring
如:[[email protected] ceph]# ceph-mon -i osd1 --mkfs --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyring

5.把新监视器添加到集群的监视器列表里(运行时),这允许其它节点开始启动时使用这个节点
[[email protected] ceph]# ceph mon add <mon-id> <ip>[:<port>]
如:[[email protected] ceph]#ceph mon add osd1 192.168.2.21:6789

6.启动新监视器,它会自动加入机器。守护进程需知道绑定到哪个地址,通过 --public-addr {ip:port} 或在 ceph.conf 里的相应段设置 mon addr 可以指定。
[[email protected] ceph]#ceph-mon -i {mon-id} --public-addr {ip:port}
如:[[email protected] ceph]#ceph-mon -i osd1 --public-addr 192.168.2.21:6789

删除mon:

[[email protected] ceph]#ceph mon remove node1

添加OSD
1.修改mon节点/etc/ceph/ceph.conf文件,如下所示:

[global]
fsid = d437c823-9d58-43dc-b586-6b36cf286d4f
mon initial members =mon
mon host =192.168.2.20
public network = 192.168.2.0/24
cluster network = 192.168.2.0/24
auth_cluster_required = cephx
auth_service _equired = cephx
auth_client_required = cephx
auth supported = none
osd journal size = 1024
#filestore xattr use omap = true
osd pool default size = 2
osd pool default min size = 1
osd pool default pg num = 333
osd pool default pgp num = 333
osd crush chooseleaf type = 1

[mon]
mon data = /data/mon/$name

[mon.mon]

host=mon
mon addr=192.168.2.20:6789

[osd]
osd journal size = 1024
osd journal = /data/$name/journal
osd data = /data/$name

[osd.0]
host = osd1
devs = /dev/sda2

[osd.1]
host = osd2
devs = /dev/sda2

[osd.2]
host = osd3
devs = /dev/sda2

并复制到要创建osd的节点/etc/ceph目录下
[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf
[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf
[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf
[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf

2.分别在osd节点上面创建数据目录并挂载

[[email protected] ~]#mkdir /data/osd.0
[[email protected] ~]#mount /dev/sda2 /data/osd.0
文件系统使用xfs的,具体如何分区参考其他资料。

3.创建 OSD 。如果没有指定 UUID ,将会在 OSD 首次启动时分配一个。下列命令执行完成后将输出 OSD 号,在后续步骤里还会用到这个号。
[[email protected] ~]#uuidgen
8c907505-be2b-49ce-b30e-587d992fceec
[[email protected] ~]#ceph osd create 8c907505-be2b-49ce-b30e-587d992fceec

4.初始化 OSD 数据目录
[[email protected] ~]#ceph-osd -i 0 --mkfs --mkkey --osd-uuid 8c907505-be2b-49ce-b30e-587d992fceec

5.注册此 OSD 的密钥。
[[email protected] ~]#ceph auth add osd.0 osd ‘allow *‘ mon ‘allow profile osd‘ -i /data/osd.0/keyring

6.把此节点加入 CRUSH 图。
[[email protected] ~]#ceph osd crush add-bucket osd1 host

7.把此 Ceph 节点放入 default 根下。
[[email protected] ~]#ceph osd crush move osd1 root=default

8.把此 OSD 加入 CRUSH 图之后,它就能接收数据了。
[[email protected] ~]#ceph osd crush add osd.0 1.0 host=osd1

9.启动osd
[[email protected] ~]#ceph-osd -i 0

10.查看状态,三个osd都添加成功之后,下面会显示如下内容
[[email protected] osd.1]# ceph -s
    cluster d437c823-9d58-43dc-b586-6b36cf286d4f
     health HEALTH_OK
     monmap e1: 1 mons at {mon=192.168.2.20:6789/0}, election epoch 2, quorum 0 mon
     osdmap e22: 3 osds: 3 up, 3 in
      pgmap v58: 192 pgs, 3 pools, 0 bytes data, 0 objects
            3175 MB used, 5550 GB / 5553 GB avail
                 192 active+clean

如果在添加osd时遇到Error EINVAL: entity osd.0 exists but key does not match错误,执行:
[[email protected] ~]#  ceph auth del osd.0
再重新装

删除osd

1.down掉一个osd硬盘
[[email protected] ~]# ceph osd down 0
#down掉osd.0节点

2. 在集群中删除一个osd硬盘
[[email protected] ~]# ceph osd rm 0
removed osd.0

3. 在集群中删除一个osd 硬盘 crush map
[[email protected] ~]# ceph osd crush rm osd.0

4. 在集群中删除一个osd的host节点
[[email protected] ~]# ceph osd crush rm node1
removed item id -2 name ‘node1‘ from crush map
5. ceph osd tree 检测

添加MDS服务器及client配置

添加MDS服务器
方法1:
1.在mon节点/etc/ceph/ceph.conf中添加mds配置,并复制到其他节点。
[[email protected] ceph]# vi ceph.conf
[mds.0]
host=client

[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf
[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf
[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf
[[email protected] ceph]#scp /etc/ceph/ceph.conf [email protected]:/etc/ceph/ceph.conf

2.为mds元数据服务器创建一个目录
[[email protected] ceph]#mkdir -p /var/lib/ceph/mds/ceph-a

3.为bootstrap-mds客户端创建一个密钥
[[email protected] ceph]#ceph-authtool --create-keyring /var/lib/ceph/bootstrap-mds/ceph.keyring --gen-key -n client.bootstrap-mds

4. 在ceph auth库中创建bootstrap-mds客户端,赋予权限添加之前创建的密钥
[[email protected] ceph]#ceph auth add client.bootstrap-mds mon ‘allow profile bootstrap-mds‘ -i /var/lib/ceph/bootstrap-mds/ceph.keyring

5. 在ceph auth库中创建mds.0用户,并赋予权限和创建密钥,密钥保存在/var/lib/ceph/mds/ceph-0/keyring文件里
[[email protected] ceph]#ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/ceph.keyring auth get-or-create mds.a osd ‘allow rwx‘ mds ‘allow‘ mon ‘allow profile mds‘ -o /var/lib/ceph/mds/ceph-a/keyring

6.启动mds服务进程
[[email protected] ceph]#ceph-mds -i a
或[[email protected] ceph]# service ceph start mds.a

7.查看集群状态
[[email protected] ceph]# ceph -s
    cluster d437c823-9d58-43dc-b586-6b36cf286d4f
     health HEALTH_OK
     monmap e1: 1 mons at {mon=192.168.2.20:6789/0}, election epoch 2, quorum 0 mon
     mdsmap e4: 1/1/1 up {0=0=up:active}
     osdmap e22: 3 osds: 3 up, 3 in
      pgmap v60: 192 pgs, 3 pools, 1884 bytes data, 20 objects
            3175 MB used, 5550 GB / 5553 GB avail
                 192 active+clean
  client io 2 B/s wr, 0 op/s

方法2:
或直接执行
[[email protected] ceph]#ceph-mds -i client -n mds.0 -c /etc/ceph/ceph.conf -m 192.168.2.20:6789

[[email protected] ceph]#ceph mds stat

8.客户端挂载cephfs(需要mds服务)
客户端要首先安装ceph-fuse包
[[email protected] ceph]# yum install ceph-fuse –y
创建目录
[[email protected] ceph]# mkdir /data/mycephfs
挂载
[[email protected] ceph]# ceph-fuse -m 192.168.2.20:6789 /data/mycephfs
查看
[[email protected] ceph]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        940M     0  940M    0% /dev
tmpfs           948M     0  948M    0% /dev/shm
tmpfs           948M  8.5M  940M    1% /run
tmpfs           948M     0  948M    0% /sys/fs/cgroup
/dev/sda3       7.8G  1.7G  5.8G   22% /
/dev/sda1      1022M  9.8M 1013M    1% /boot/efi
/dev/sda2       1.9T   33M  1.9T    1% /data
ceph-fuse       5.5T  3.2G  5.5T    1% /data/mycephfs

rbd方式挂载(不需要mds服务)

1.新建一个ceph pool
ceph osd pool create {pool-name} {pg-num} [{pgp-num}]
如:
[[email protected] ceph]#ceph osd pool create rbdpool 100 100

2.在pool中新建一个镜像
[[email protected] ceph]#rbd create rbdpoolimages --size 1048576 -p rbdpool
或者
[[email protected] ceph]#rbd create rbdpool/rbdpoolimages --size 102400
大小自己控制

3.列出块设备在一个特定的池
rbd ls {POOLNAME}
[[email protected] ceph]#rbd ls rbdpool

4.查询一个池内的镜像信息
rbd --image {image-name} -p {pool-name} info
如:
[[email protected] ceph]#rbd --image rbdpoolimages -p rbdpool info

5.把镜像映射到pool块设备中
[[email protected] ceph]#rbd map rbdpoolimages -p rbdpool

(如果要取消映射块设备使用命令:rbd unmap /dev/rbd1)

6.查看镜像映射map
[[email protected] ceph]#rbd showmapped

7.格式化映射的设备块
[[email protected] ceph]#mkfs.xfs /dev/rbd1

8.挂载新建的分区
[[email protected] ceph]#mkdir  /data/rbddir
[[email protected] ceph]#mount /dev/rbd1 /data/rbddir

9.修改/etc/fstab文件,将挂载信息添加进去。
/dev/rbd1   /data/rbddir1  xfs    defaults      0 0

10.查看
[[email protected] ceph]#df -Th

对象文件上传方式(这种方式使用不是很方便,不建议使用)

1:创建一个pool
#rados mkpool

2:上传rados put {object-name} {file-path} --pool=putdir

示例

rados put zabbix_client_install.tar.gz ./zabbix_client_install.tar.gz --pool=putdir

3:查看上传内容:

rados -p putdir ls

zabbix_client_install.tar.gz

4:下载对象文件

下载 rados get {object-name} {file-path} --pool=putdir

rados get zabbix_client_install.tar.gz  /workspace/zabbix_client_install.tar.gz -p putdir

时间: 2024-11-07 08:25:41

centos7 安装配置ceph的相关文章

Centos7 安装配置OpenLdap服务及OpenLdap管理工具

我们上一篇文章中介绍了,Centos7+Openvpn使用Windows AD(LDAP)验证登录的配置介绍.说到LDAP服务,我们知道不止windows有,linux下也有,比如openldap,sambaLDAP服务,具体就不多介绍了,我们今天主要介绍一下Centos7 安装配置OpenLdap及Ldap管理工具等操作,为后面的Centos7+Openvpn+openldap验证登录做好基础. 我们首先配置一个指定源,我们源地址指向了阿里云的仓库源 cd /etc/yum.repos.d v

Centos7安装配置Apache+PHP+Mysql+phpmyadmin

转载自: Centos7安装配置Apache+PHP+Mysql+phpmyadmin 一.安装Apache yum install httpd 安装成功后,Apache操作命令: systemctl start httpd //启动apache systemctl stop httpd //停止apache systemctl restart httpd //重启apache systemctl enable httpd //设置apache开机启动 异常处理我再阿里云上配置并出现启动Apac

CentOS7安装配置redis-3.0.0

清园 沉没的Atlantis CentOS7安装配置redis-3.0.0 一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar zxvf redis-3.0.0.tar.gz cd redis-3.0.0 #如果不加参数,linux下会报错 make MALLOC=libc  安装好之后,启动文件 #启动redis src/redis-server

Centos7安装配置gitlab

Centos7安装配置gitlab 这篇文字我会介绍在Centos7上安装gitlab,配置gitlab的smtp,并且创建项目demo. sudo yum install openssh-server sudo yum install postfix sudo yum install cronie sudo service postfix start sudo chkconfig postfix on sudo lokkit -s http -s ssh 使用清华大学gitlab的镜像http

CentOS7安装配置DNS服务器

准备工作(假设名称为bigcloud.local) #更改主机名称 #vi /etc/sysconfig/network # Created by anaconda NETWORKING=yes HOSTNAME=bigcloud.local #修改文件/etc/hosts,内容如下: 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost local

在 CentOS 7.0 上安装配置 Ceph 存储

来自: https://linux.cn/article-6624-1.html Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台.当你计划构建一个云时,你首先需要决定如何实现你的存储.开源的 Ceph 是红帽原生技术之一,它基于称为 RADOS 的对象存储系统,用一组网关 API 表示块.文件.和对象模式中的数据.由于它自身开源的特性,这种便携存储平台能在公有云和私有云上安装和使用.Ceph 集群的拓扑结构是按照备份和信息分布设计的,这种内在设计能提供数据完整性.它的设计目标就

开发人员学Linux(10):CentOS7安装配置代码质量管理平台SonarQube6.4

1.前言上一章讲述了如何配置使用源代码管理工具SVN并使之与Apache集成,从而实现代码的变更可追溯,虽然在大多数团队里强调代码提交之前必须找团队中经验丰富的人来审核通过后方可提交,但这一条有时候不是所有时候都能得到满足,有没有依赖于机制而不是人来保证代码质量呢,我们知道计算机的缺点也是优点之一就是可以忠实执行指令.答案是有的,那就是SonarQube,其官方网址为:https://www.sonarqube.org/,目前最新版本为6.4.SonarQube是一个开源平台,用于管理源代码的质

Centos7安装配置二

Centos7 Minimal Install 安装完成后是不支持上网的,并且大部分常用的软件也未安装,首先要解决的问题就是网络配置.当网络配通后,即可通过Xshell或其它工具来远程进行操作与管理,推荐工具 XShell (可在window下远程操作和控制linux主机).winSCP(windows与linux系统之间文件上传与下载), 虽然也可以在xshell中执行xz.rz命令完成上面的操作,但对于比较大的文件,winSCP工具传送的速度比较快. 配置步骤: 网络配置 常用软件安装 配置

centos7安装配置jdk、tomcat

centos7安装jdk1.8 1.新建文件夹java,上传文件jdk-8u111-linux-x64.tar.gz到java文件夹 2.解压tar包: tar -zxvf jdk-8u111-linux-x64.tar.gz 3.将文件夹重命名: mv jdk1.8.0_111 jdk1.8 4.配置环境变量: vi ~/.bash_profile export JAVA_HOME=/home/tjh/application/jdk1.8 export PATH=.:$JAVA_HOME/bi