ceph分布式集群搭建(企业)

        Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中,通常会采用 ceph 作为openstack 的唯一后端存储来提高数据转发效率。
       Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。

分布式ceph集群搭建

1,首先配置hosts实现免密登陆

vi  /etc/hosts
10.99.8.68  主机名
10.99.8.69  主机名
.....依次类推

配置写入完成后,在每台设备上面互ping一下主机名

2,创建用户

Useradd  ceph
Passwd  ceph

密码根据自己想法编写

3,赋予新用户sudo权限(重要)

Vi  /etc/sudoers
root      ALL=(ALL)   ALL
ceph        ALL+(root)   NOPASSWD:ALL
此文件为只读文件,所以修改完保存退出要用wq!

4,配置master控制节点ssh密钥,在master上操作

ssh-keygen

一直回车

ssh-copy-id ceph@主机名

将密钥依次传递给各个机器

5,在admin设备上用root用户添加.ssh/config配置文件,这样ceph-deploy 就能用所建的用户名登录ceph节点了

Mkdir  ~/.ssh
Vi  ~/.ssh/config
Host  主机名
Hostname 主机名
User  ceph
依次类推,沿着向下写把集群所有集群写完

6,安装ceph-deploy

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
yum clean all
yum makecache
vim /etc/yum.conf
keepcache=1

yum安装ceph-deploy

yum install ceph-deploy -y

如果是生产环境无法连接外网,可以在虚拟机按照此步骤添加源,然后使用yumdownloader下载为rpm包,再去生产跑,之后所有要下载的都这么整,结果一样成功,本人已在生产环境测试

7,时间同步

vi  /etc/ntp.conf     #有4行server的位置,把那4行server注释掉,填写一下两行
Server 127.127.1.0  #local clock
Fudge 127.127.1.0  stratum 10
Systemctl start ntpd
Systemctl enable ntpd

给全部节点安装ntpd

yum -y install ntpdate

ntpdate  时间服务器ip

即可同步时间至时间服务器相同时间

8,Ceph集群部署

Su - ceph
Sudo  mkdir  cluster
sudo wget -c
https://files.pythonhosted.org/packages/5f/ad/1fde06877a8d7d5c9b60eff7de2d452f639916ae1d48f0b8f97bf97e570a/distribute-0.7.3.zip
sudo unzip distribute-0.7.3.zip
cd distribute-0.7.3.zip

sudo  python  setup.py  install
cd cluster/
sudo  ceph-deploy  new 主机名
ls (会看到ceph的配置文件和密钥的生成)

9,在各个设备上均操作

安装ceph和ceph-radosgw

sudo yum -y install epel-release
sudo 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
sudo yum clean all
sudo yum makecache
sudo yum install ceph ceph-radosgw  -y(所有设备)

如果是生产环境将依赖和ceph,打包安装完成之后可能会少依赖

pip -V

看看有无回显有的话跳过此步骤,没有的活安装依赖

yum -y install pip

如果不行的活,在网上搜索pip的tar包进行安装

unzip setuptools-36.4.0.zip
cd setuptools-36.4.0
python setup.py  build
python setup.py  install
         
tar -zxf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install

此时使用pip -v即可查看到信息,下一步结束

如果出现此问题,找不到包的话,可以私信我给你发

10,集群初始化操作

在admin设备上面用ceph用户执行,初始化mon

su - ceph
cd cluster/
sudo ceph-deploy mon create-initial
赋予各个节点使用命令免用户权限
sudo ceph-deploy admin 所有主机名
安装ceph-mgr:只有luminous才有,为使用dashboard做准备
sudo ceph-deploy mgr create 主机名
创建osd
注意用来做osd的磁盘需要格式化
sudo ceph-deploy osd create --data /dev/磁盘 主机名
创建完成之后使用ceph -s查看状态



创建管理密钥
sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
创建管理域密钥
sudo ceph-mgr -i 主机名
查看ceph状态,确认mgr的状态为active
sudo ceph status

打开dashboard模块

sudo ceph mgr module enable dashboard
绑定开启dashboard模块的ceph-mgr节点的ip地址
sudo ceph config-key set mgr/dashboard/主机名/server_addr  IP地址

激活mds组件
ceph-deploy  mds  create 主机名(可以多个)
ceph mds stat
回显为3up:standby

11,创建存储池

ceph fs ls			#查看ceph文件系统为未启用状态
ceph mgr module enable pg_autoscaler        #开启pg自动调整模块

ceph osd pool create  cephfs_data1  512   #创建ceph存储池,512为pg数量,cephfs_data1为存储池名称,可自定义;pg值也可以不选,直接选自动调整参数,系统会自动调整;
autoscaler是按每个池配置的,可以在以下几种模式下运行:
**警告(warn)**模式:如果建议的pg_num值与当前值相差太大,则会发出健康警告。 这是新池和现有池的默认设置。
**启用(on)**模式:无需任何管理员交互即可自动调整池pg_num。
**禁用(off)**模式:还可以为任何给定池关闭autoscaler,让管理员像以前一样手动管理pg_num。
pool 'cephfs_data' created
             (OSDs * 100) / max replication count												#(osd数*100) / 副本数
Total PGs =  ------------------------------------												#pg计算公式
              			pool size																#pool数量


ceph osd pool create cephfs_data2 512 --autoscale-mode=<on,off,warn>



#创建第二个存储池,cephfs必须要有两个存储池才能进行创建,一个作为元数据存储池,一个作为数据存储池
Ceph集群中的PG总数:
PG总数 = (OSD总数 * 100) / 最大副本数
** 结果必须舍入到最接近的2的N次方幂的值。
Ceph集群中每个pool中的PG总数:
存储池PG总数 = (OSD总数 * 100 / 最大副本数) / 池数

其中:<pg_num> = 128 ,
关于创建存储池
确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:
  *少于 5 个 OSD 时可把 pg_num 设置为 128
  *OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512
  *OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096
  *OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值
  *自己计算 pg_num 取值时可借助 pgcalc 工具
随着 OSD 数量的增加,正确的 pg_num 取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。
PG是指定存储池存储对象的目录有多少个,PGP是存储池PG的OSD分布组合个数
PG的增加会引起PG内的数据进行分裂,分裂到相同的OSD上新生成的PG当中
PGP的增加会引起部分PG的分布进行变化,但是不会引起PG内对象的变动

12,创建ceph文件系统

eph fs new cephfs cephfs_data1 cephfs_data2       #创建ceph文件系统,cephfs_data1作为元数据存储池,cephfs_data2为数据存储池,其中cephfs可自定义
ceph fs ls  #再查看一下ceph文件系统
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
[root@ceph-1 ceph]# ceph mds stat										#查看mds状态
cephfs:1 {0=ceph-3=up:active} 2 up:standby

13,ceph磁盘挂载

下载挂载工具ceph-fuse

yun -y install ceph-fuse
ceph-fuse -m 10.99.8.68:6789,10.99.8.78:6789,10.99.8.79:6789  /cephmount

#挂载到/cephmount目录

Ceph分布式集群搭建完毕

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值