Centos6.5下一个Ceph存储集群结构
简单的介绍
硬件的选择
CPU
RAM
Metadata servers 以及Monitors 必须可以高速的提供数据。因此必须有充足的内存(e.g., 1GB of RAM per daemon instance).
Data Storage
规划数据存储时要考虑成本和性能的权衡。同一时候OS操作。同一时候多个后台程序对单个驱动器进行读写操作会显着减少性能。
也有文件系统的限制考虑:BTRFS对于生产环境来说不是非常稳定。但有能力记录journal和并行的写入数据,而XFS和EXT4会好一点。
其它注意事项
您能够在每台主机上执行多个OSD进程。但你应该确保OSD硬盘的吞吐量总和不超过client读取或写入数据所需的网络带宽。你也应该考虑在每一个主机上数据的存储率。假设一个特定的主机上的百分比較大,它可能会导致问题:为了防止数据丢失,会导致Ceph停止操作。
当您执行每台主机上执行多个OSD进程时。你还须要保证内核是最新的。当您执行每台主机上执行多个OSD进程时(如>20)会产生非常多的线程,特别是进行recovery和relalancing操作。很多Linux内核默认线程限最大数量比較小(比如,32k的)。假设您遇到这方面的问题,能够考虑把kernel.pid_max设置的高一点。理论上的最大值为4,194,303。
Networks
我们建议至少两个NIC一个作为公共的网络和一个作为集群的网络。
部署
| IP | hostname | 描写叙述 |
| 192.168.40.106 | dataprovider | 部署管理节点 |
|
192.168.40.107
|
mdsnode | MDS。MON节点 |
|
192.168.40.108
|
osdnode1 | OSD节点 |
|
192.168.40.148
|
osdnode2 |
OSD节点
|
Ceph 部署节点
编辑repo文件
sudo vim /etc/yum.repos.d/ceph.repo[ceph-noarch] name=Ceph noarch packages baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
安装ceph-deploy
sudo yum install ceph-deploy
编辑/etc/hosts
在/etc/hosts文件里改成例如以下内容#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 dataprovider 192.168.40.107 mdsnode 192.168.40.108 osdnode1 192.168.40.148 osdnode2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Ceph Node Setup
每一个节点都运行以下的命令yum install -y ntp ntpdate ntp-doc
yum install -y openssh-server
创建专用的用户
为了使用简单。在每一个节点上都创建leadorceph用户,而且password都设置为leadorceph
sudo useradd -d /home/leadorceph -m leadorceph sudo passwd leadorceph
在每一个Ceph节点中为用户添加 root 权限
echo "leadorceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/leadorceph
sudo chmod 0440 /etc/sudoers.d/leadorceph
配置正确会出现例如以下截图
Enable Password-less SSH
在deploy节点上切换到leadorceph用户,生成 无password的SSH key,并复制到每一个节点上
[leadorceph@dataprovider root]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/leadorceph/.ssh/id_rsa): Created directory '/home/leadorceph/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/leadorceph/.ssh/id_rsa. Your public key has been saved in /home/leadorceph/.ssh/id_rsa.pub. The key fingerprint is: a8:fb:b8:3a:bb:62:dc:25:a6:58:7b:9d:97:00:30:ec leadorceph@dataprovider The key's randomart image is: +--[ RSA 2048]----+ | . | | + | | . o | | E . . | | .. S | | .o o. | |o.+.+. o . | |o+o..oo o | |..+*+o.. | +-----------------+复制到每一个节点ssh-copy-id leadorceph@mdsnode
ssh-copy-id leadorceph@osdnode1
ssh-copy-id leadorceph@osdnode2
存储集群
创建集群
在deploy节点上创建配置文件夹,以下的全部deploy节点上的操作都在该文件夹进行
mkdir my-cluster
cd my-cluster
部署失败
假设部署失败了能够用以下的命令恢复
假设要是整个环境又一次安装的话,dataprovider也要进行purge操作ceph-deploy purge {ceph-node} [{ceph-node}]ceph-deploy purgedata {ceph-node} [{ceph-node}]ceph-deploy forgetkeys假设删除的是osd节点。还须要删除osd的数据文件夹。然后再又一次创建相应的文件夹
创建一个集群
在admin node 上用ceph-deploy创建集群。new后面跟的是mds节点的hostnameceph-deploy new mdsnode
运行成功后该文件夹下会添加三个文件
改动默认的副本数为2
改动ceph.conf。使osd_pool_default_size的值为2
開始安装
ceph-deploy install deploynode mdsnode osdnode1 osdnode2
成功安装:
创建 Ceph MON 集群监视器
在deploy上依次运行以下的命令ceph-deploy mon create-initial ceph-deploy mon create mdsnode ceph-deploy gatherkeys mdsnode运行成功后会出现以下的文件![]()
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZXJpY19zdW5haA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
- 创建OSD节点
为了达到高速演示的效果。OSD后台进程使用文件夹而非独立的磁盘,分别在两个osd节点上创建文件夹ssh osdnode1 sudo mkdir /var/local/osd0 exit ssh osdnode2 sudo mkdir /var/local/osd1 exit
准备osd节点
ceph-deploy osd prepare osdnode1:/var/local/osd0 osdnode2:/var/local/osd1
ceph-deploy osd activate osdnode1:/var/local/osd0 osdnode2:/var/local/osd1
拷贝配置文件以及key文件
ceph-deploy admin dataprovider mdsnode osdnode1 osdnode2
确保ceph.client.admin.keyring.有正确的权限
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
查看集群状态
问题总结
问题1
问题描写叙述:[ceph_deploy][ERROR ] RuntimeError: remote connection got closed, ensure ``requiretty`` is disabled for mdsnode解决方法: 须要在mdsnode,osdnode1,osdnode2三个节点中使用leadorceph用户的身份运行sudo visudo命令,然后改动Defaults requiretty 为Defaults:ceph !requiretty
问题2
运行ceph-deploy admin命令的时候出现以下的异常
解决的方法1 改动/usr/lib/python2.6/site-packages/ceph_deploy/hosts/centos/install.py 文件取消install的运行。改动方式例如以下:
2 运行的时候加上--repo參号码
版权声明:本文博主原创文章。博客,未经同意不得转载。
Centos6.5下一个Ceph存储集群结构的更多相关文章
- Ceph 存储集群 - 搭建存储集群
目录 一.准备机器 二.ceph节点安装 三.搭建集群 四.扩展集群(扩容) 一.准备机器 本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER). 一共4 ...
- Ceph 存储集群 - 搭建存储集群---教程走到osd激活这一步执行不下去了,报错
目录 一.准备机器 [1. 修改主机名](所有节点)(https://www.cnblogs.com/zengzhihua/p/9829472.html#1-修改主机名) [2. 修改hosts文件] ...
- 002.RHCS-配置Ceph存储集群
一 前期准备 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 [ceph@serverc ~]$ ceph health #确保集群状态正常 H ...
- Ceph 存储集群搭建
前言 Ceph 分布式存储系统,在企业中应用面较广 初步了解并学会使用很有必要 一.简介 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统.它具有高可靠性.安装方便.管理简便.能够 ...
- Ceph 存储集群5-数据归置
一.数据归置概览 Ceph 通过 RADOS 集群动态地存储.复制和重新均衡数据对象.很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些 ...
- Ceph 存储集群4-高级运维:
一.高级运维 高级集群操作主要包括用 ceph 服务管理脚本启动.停止.重启集群,和集群健康状态检查.监控和操作集群. 操纵集群 运行 Ceph 每次用命令启动.重启.停止Ceph 守护进程(或整个集 ...
- Ceph 存储集群2-配置:心跳选项、OSD选项、存储池、归置组和 CRUSH 选项
一.心跳选项 完成基本配置后就可以部署.运行 Ceph 了.执行 ceph health 或 ceph -s 命令时,监视器会报告 Ceph 存储集群的当前状态.监视器通过让各 OSD 自己报告.并接 ...
- Ceph 存储集群1-配置:硬盘和文件系统、配置 Ceph、网络选项、认证选项和监控器选项
所有 Ceph 部署都始于 Ceph 存储集群.基于 RADOS 的 Ceph 对象存储集群包括两类守护进程: 1.对象存储守护进程( OSD )把存储节点上的数据存储为对象: 2.Ceph 监视器( ...
- Ceph 存储集群第一部分:配置和部署
内容来源于官方,经过个人实践操作整理,官方地址:http://docs.ceph.org.cn/rados/ 所有 Ceph 部署都始于 Ceph 存储集群. 基于 RADOS 的 Ceph 对象存储 ...
随机推荐
- tomcat实现多端口、多域名访问
tomcat实现多端口访问 tomcat可以实现:多个端口访问同一个web应用.不同的应用通过不同的域名进行访问. 本文介绍的都是只启动一个tomcat服务的情况下,当然,实现这些功能也可以通过启动多 ...
- 面对多个互斥量的加锁策略:"试加锁-回退"算法/固定加锁层次
有时一个互斥量是不够的: 比如: 当多个线程同时访问一个队列结构时,你需要2个互斥量,一个用来保护队列头,一个用来保护队列元素内的数据. 当为多线程建立一个树结构时,你可能需要为每个节点设置一个互斥量 ...
- hdu1507--二分图最大匹配
题意:你大爷.哦不! 你大叔继承了一块地什么的都是废话..,这里说说题意,和怎么建图. 题意:这里有一块N*M的地,可是有 K 个地方.是池塘,然后输入K行(x,y),OK,如今能够出售的地必须是 1 ...
- Failed to load libGL.so问题解决
Ubuntu 14.04下启动模拟设备Android 4.2.2的时候报错: failed to load libgl.so 先用locate 命令定位libGL库, 然后加入�一个链接就可以: de ...
- CI控制器调用内部方法并加载对应模板的做法
当我打开链接:http://localhost/3g/index/open/a/b? from=timeline后,推断链接中的from是否等于timeline,假设等于timeline.那么就调用控 ...
- android旋转动画和平移动画具体解释,补充说一下假设制作gif动画放到csdn博客上
先上效果图: 我这里用的是GifCam来制作的gif动画,能够在http://download.csdn.net/detail/baidu_nod/7628461下载, 制作过程是先起一个模拟器,然后 ...
- hunnu-11546--Sum of f(x)
Sum of f(x) Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB Total submit users: ...
- WPF弹性模拟动画
原文:WPF弹性模拟动画 我们此次将要制作模拟物理中的弹性现象的交互动画,我们让一个小球向鼠标点击位置移动,这个移动的轨迹不是简单的位移,而是根据胡克定律计算得出的. 胡克定律:F=-kd F代表弹性 ...
- Welcome Docker to SUSE Linux Enterprise Server【水平有限,中英对比,求纠错】
原文:Welcome Docker to SUSE Linux Enterprise Server Lightweight virtualization is a hot topic these ...
- Android 关于资源适配
一. 关于图片资源 图片宽高 不要固定大小,在小屏幕和大屏幕,不同分频率上 ,採用不同的图片,这个要美工切图的. 不同的分辨率,界面的长宽比不一致,须要不同规格的图片 在drawable-hdpi,d ...