ceph实践: 搭建环境
作者:吴香伟 发表于 2014/09/26
版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明
本节主要参考官网的ADDING/REMOVING OSDS章节。
同步节点的时间
安装ntp:apt-get install ntp
NTP服务器:/etc/init.d/ntp start
NTP客户端:ntpdate -d snode01
安装MON
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
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'
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
monmaptool --create --add snode01 192.168.7.101 --fsid 7f8f00ac-c059-46a6-b656-4a1ce781607b /tmp/monmap
mkdir /var/lib/ceph/mon/ceph-snode01
ceph-mon --mkfs -i snode01 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
准备配置文件ceph.conf,并scp到集群的所有节点。
root@snode01:~# cat /etc/ceph/ceph.conf
[global]
fsid = 7f8f00ac-c059-46a6-b656-4a1ce781607b
mon initial members = snode01
mon host = 192.168.7.101
public network = 192.168.0.0/16
auth cluster required = none
auth service required = none
auth client required = none
osd journal size = 1024
filestore xattr use omap = ture
osd pool default size = 2
osd pool default pg num = 333
osd pool default pgp num = 333
osd crush chooseleaf type = 1
运行mon
start ceph-mon id=snode01
安装OSD
使用UUID创建OSD
root@snode01:~# uuidgen
b9b0cbf7-0313-4481-81e4-fd63b97af36c
root@snode01:~# ceph osd create b9b0cbf7-0313-4481-81e4-fd63b97af36c
0
创建OSD目录,并把磁盘挂载到该目录。注意,如果OSD编号为0,则OSD的目录为ceph-0;如果编号为1,则目录为ceph-1,以此类推。
root@snode02:~# mkdir /var/lib/ceph/osd/ceph-0
root@snode02:~# mkfs.ext4 /dev/sda5
root@snode02:~# mount /dev/sda5 /var/lib/ceph/osd/ceph-0/
root@snode02:~# mount | egrep sda5
/dev/sda5 on /var/lib/ceph/osd/ceph-0 type ext4 (rw)
初始化OSD的数据目录
root@snode02:~# ceph-osd -i 0 --mkfs --mkkey --osd-uuid b9b0cbf7-0313-4481-81e4-fd63b97af36
注册OSD的key权限
root@snode02:~# ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring
added key for osd.0
添加OSD节点到CRUSH MAP中
root@snode01:~# ceph osd crush add-bucket snode02 host
added bucket snode02 type host to crush map
root@snode01:~# ceph osd crush move snode02 root=default
moved item id -2 name 'snode02' to location {root=default} in crush map
root@snode01:~# ceph osd crush add osd.0 1.0 host=snode02
add item id 0 name 'osd.0' weight 1 at location {host=snode02} to crush map
启动OSD
root@snode02:~# start ceph-osd id=0
ceph-osd (ceph/0) start/running, process 4542
移除OSD节点
OSD节点存在两个维度的状态,第一个维度代表OSD是否正常运行,它包含up和down两种状态;第二个维度代表OSD是否在集群内部,它也有两个状态,分别是in和out。移除OSD节点时,先将OSD移出集群,这样集群就会开始数据迁移。
root@snode02:~# ceph osd out 0
osd.0 is already out.
停止OSD节点,让它变成down状态
root@snode02:~# /etc/init.d/ceph stop osd.0
从CRUSH MAP中删除OSD节点,可以通过ceph osd crush dump命令查看CRUSH MAP的变动。
root@snode02:~# ceph osd crush remove osd.0
removed item id 0 name 'osd.0' from crush map
root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd crush remove snode02
removed item id -2 name 'snode02' from crush map
删除OSD的Key权限
ceph auth del osd.0
移除OSD
root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd rm 0
removed osd.0
查看OSD是否已经移除
root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd tree
# id weight type name up/down reweight
-1 1 root default
-3 1 host snode03
1 1 osd.1 up 1
root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd ls
root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd dump
最后删除/var/lib/ceph/osd/ceph-{osd-num}目录,格式化挂载的磁盘。
ceph实践: 搭建环境的更多相关文章
- 从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建
一.Overview 最近的一段时间,在公司里我都在进行基于 Jenkins 和 SonarQube 配合已有的 Gitlab 搭建部门的持续集成环境的工作,虽然之前有使用过 GitHub Actio ...
- Python 搭建环境踩过的那些坑
实践出真知,学习 Python 第六天,准备开始尝试写一些 Python 的实例.之前学习过程主要是参照的 廖雪峰老师的教程.搭建环境的过程,被很多坑围绕着. 版本选择 版本选择 Python 3.5 ...
- SOFARPC源码解析-搭建环境
文档地址:https://www.sofastack.tech 简介摘要 SOFA 是蚂蚁金服自主研发的金融级分布式中间件,包含构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服 ...
- Xamarin 跨移动端开发系列(01) -- 搭建环境、编译、调试、部署、运行
如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!好了,废话不多说,就开始吧, ...
- AspectJ基础学习之二搭建环境(转载)
AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...
- app整体搭建环境:tabBar切换不同控制器的封装(自定义导航+自定义uiviewcontroler+系统自带tabbar+自定义tabbarController)
首先,一个app的搭建环境非常重要.既要实现基本功能,又要考虑后期优化的性能. 现在很多应用不仅仅是系统自带的控制器,由于需求复杂,基本上需要自定义多控制器来管理. 新建一个BasicNavigati ...
- [转]phonegap 2.9 IOS Xcode 搭建环境
phonegap 2.9 IOS Xcode 搭建环境 一:下载phoneGap2.9和安装Xcode5(目前最新版) 选择2.9是因为3.0以上坑爹版本编译神马的要在有网络情况. 二: 下载ph ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.7. 配置资源与参数
2.7.配置资源与参数 2.7.1. 修改主机名称 [root@linuxrac1 ~]# cd /etc/sysconfig [root@linuxrac1 sysconfig]# vi netwo ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.6. 安装Oracle所依赖的必要包
2.6. 安装Oracle所依赖的必要包 2.6.1. 检查Oracle所依赖的必要rpm包 [root@localhost /]#rpm -q binutils compat-libstdc elf ...
随机推荐
- 执行Python "/bin/usr/python: bad interpreter: No such file or directory" 错误
今天在电脑上写了一个Python脚本,写好之后用ftp传上去,然后执行/var/www/cron.py,结果报错,/bin/usr/python: bad interpreter: No such f ...
- java静态和动态代理原理
一.代理概念 为某个对象提供一个代理,以控制对这个对象的访问. 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代.代理类负责请求的预处理.过滤.将请求分派给委托类 ...
- 在linux下写一只优雅的爬虫---优雅的获取沈航所有学生的个人信息
一:ubuntu下安装python集成环境pycharm以及免费激活 安装 首先去下载最新的pycharm 2016.2.3,进行安装.可以直接在官网下载.选择自己所对应的版本 PyCharm 的激活 ...
- IP转换hash以及返回
InetAddress address = InetAddress.getByName("127.0.0.1"); System.out.println(address); int ...
- SCN
SCN 一.SCN的引入 众所周知,当oracle实例崩溃时,oracle通过检查点队列使用CKPT进程,周期性的将LRBA记入控制文件,以记录读取REDO LOG的范围.确定范围之后,oracle首 ...
- VC++ 解决在鼠标移动时,光标闪烁的问题。其实本质是 ON_SETCURSOR的用法
在调用Windows API函数SetCursor设置光标时,可能会碰到闪烁的问题:移动鼠标,光标在Class Cursor(即注册窗口类时指定的Cursor)与预设Cursor之间闪烁. 在MSDN ...
- ios AFNetworking 3.0 报错 : *** Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:],
AFNetWorking[:] *** Assertion failure -- :::] *** Terminating app due to uncaught exception 'NSInter ...
- sharepoint webpart
SharePoint开发中,不仅仅是WebPart,我们都经常会使用的几个关键位置,如下: GAC: C:\Windows\assembly,也就是部署的位置: ISAPI位置,SharePoint ...
- java:关于文件下载
开发中遇到的问题 一. 场景描述:用户先指定下载路径,服务器将资源文件下载到指定的路径. 首先:该系统采用的是B/S架构,即浏览器.服务器(.数据库). 单纯通过B/S架构,就想要在服务器中去操 ...
- 转载:centos7下使用yum安装mysql
转自:http://www.cnblogs.com/hwd-cnblogs/p/5213337.html CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql ...