关于
我的项目
相关阅读
热度排行
- [转] 宫崎骏用动漫教给我们的人生哲理,每一句都能说到心里! - (日期:[八月 24, 2013] 点击:[53,219])
- Google 网页爬虫报告无法连接站点解决办法 - (日期:[七月 20, 2014] 点击:[38,641])
- 架设Tiny Tiny RSS(TTRSS)阅读器,找回Google Reader! - (日期:[九月 27, 2013] 点击:[27,768])
- SkyDrive、DropBox和Google Drive三大公有云存储服务对比 - (日期:[六月 25, 2013] 点击:[25,573])
- 升级到至强E5440后,与i5 CPU笔记本性能对比 - (日期:[二月 18, 2014] 点击:[23,713])
- 公钥私钥加密解密数字证书数字签名详解 - (日期:[四月 19, 2014] 点击:[22,959])
- 本站建站技术合集 - (日期:[九月 20, 2013] 点击:[22,490])
- 使用OpenerDNS解决无法访问Google的问题 - (日期:[七月 5, 2014] 点击:[21,789])
- WordPress博客添加“返回顶部”按钮 - (日期:[七月 14, 2013] 点击:[21,203])
- Linux文件系统基础之inode和dentry - (日期:[三月 13, 2015] 点击:[20,167])
- 云存储中的HTTP鉴权算法分析 - (日期:[二月 7, 2014] 点击:[18,639])
- 存储基础知识之——磁盘阵列原理及操作实战 - (日期:[二月 9, 2014] 点击:[17,491])
- 精选37条强大的常用linux shell命令组合 - (日期:[九月 4, 2013] 点击:[17,428])
- DNS原理、架构和配置详解 - (日期:[九月 6, 2013] 点击:[16,802])
- Netty和Jetty的Java NIO 网络框架模型分析 - (日期:[七月 13, 2013] 点击:[16,333])
- CoreOS 初识之安装 - (日期:[十一月 16, 2014] 点击:[16,170])
- Windows与Linux文件系统互访的几种方法 - (日期:[八月 21, 2014] 点击:[15,733])
- Dijkstra算法求解最短路径分析 - (日期:[七月 12, 2014] 点击:[14,924])
- NAS解决方案实现多媒体文件共享播放 - (日期:[十二月 21, 2014] 点击:[13,915])
- 简介 - (日期:[九月 1, 2012] 点击:[13,757])
- 如何编程实现 2 + 2 = 5? - (日期:[六月 2, 2014] 点击:[13,269])
- 搭建了一个iNews程序 - (日期:[十月 15, 2013] 点击:[13,236])
- 2014年9月曝出的Bash ShellShock漏洞简析 - (日期:[九月 26, 2014] 点击:[13,138])
- 彻底解决WordPress博客垃圾评论的问题 - (日期:[八月 5, 2013] 点击:[13,086])
- 如何使用1M的内存排序100万个8位数 - (日期:[三月 27, 2014] 点击:[12,552])
- 全部日志列表 - (日期:[十一月 11, 2012] 点击:[12,328])
- 关于回调函数和this指针探讨 - (日期:[八月 24, 2014] 点击:[12,208])
- 给定一个long型常量,其值为x,给定long型变量a,要求a & x 的取值集合 - (日期:[九月 8, 2012] 点击:[11,703])
- WordPress建站必备实用插件 - (日期:[八月 7, 2014] 点击:[11,360])
- Amazon 云计算业务全面介绍 - (日期:[三月 9, 2014] 点击:[11,268])
分类目录
文章归档
- 2024年四月 (1)
- 2024年二月 (1)
- 2023年九月 (1)
- 2023年一月 (1)
- 2022年十月 (1)
- 2022年八月 (2)
- 2022年四月 (1)
- 2022年三月 (1)
- 2021年十二月 (2)
- 2021年十月 (2)
- 2021年九月 (1)
- 2021年八月 (1)
- 2021年五月 (1)
- 2021年三月 (2)
- 2021年一月 (2)
- 2020年十二月 (5)
- 2020年十一月 (2)
- 2020年十月 (2)
- 2020年九月 (1)
- 2020年八月 (5)
- 2020年七月 (2)
- 2019年九月 (1)
- 2018年八月 (1)
- 2018年七月 (1)
- 2018年六月 (1)
- 2018年五月 (1)
- 2018年三月 (1)
- 2018年二月 (1)
- 2018年一月 (2)
- 2017年十二月 (3)
- 2017年十月 (4)
- 2017年九月 (1)
- 2017年七月 (1)
- 2017年六月 (1)
- 2016年十二月 (1)
- 2016年十月 (1)
- 2016年九月 (1)
- 2016年七月 (2)
- 2016年六月 (1)
- 2016年二月 (3)
- 2015年十二月 (3)
- 2015年十一月 (2)
- 2015年十月 (1)
- 2015年八月 (2)
- 2015年七月 (4)
- 2015年六月 (1)
- 2015年三月 (2)
- 2015年二月 (1)
- 2015年一月 (4)
- 2014年十二月 (2)
- 2014年十一月 (2)
- 2014年十月 (5)
- 2014年九月 (8)
- 2014年八月 (11)
- 2014年七月 (17)
- 2014年六月 (7)
- 2014年五月 (15)
- 2014年四月 (16)
- 2014年三月 (14)
- 2014年二月 (5)
- 2013年十二月 (5)
- 2013年十一月 (3)
- 2013年十月 (13)
- 2013年九月 (13)
- 2013年八月 (13)
- 2013年七月 (9)
- 2013年六月 (8)
- 2013年五月 (1)
- 2013年三月 (3)
- 2013年一月 (1)
- 2012年十一月 (1)
- 2012年九月 (12)
- 2012年八月 (3)
- 2011年二月 (1)
- 2009年三月 (1)
- 2009年二月 (1)
- 2008年十一月 (1)
- 2008年六月 (1)
- 2008年四月 (1)
- 2008年三月 (1)
Ceph初体验之环境搭建
想了解一个开源组件,最好的办法就是实际搭建环境,用一下。ceph绝对是现今存储领域的热门开源解决方案。断断续续地看过一些ceph的资料,了解了其基本架构和使用方法。花了一上午的时间,将ceph的环境搭建了起来。这里把搭建过程详细记录一下。
有了ceph-deploy工具后,搭建环境还是非常容易的事情。主要是想了解ceph集群的场景,因此搭建的是集群版本,网上也有介绍单机演示版本的搭建方法,就不做介绍了。
进入正题,分如下步骤:
一、准备工作
节点规划:4个MON节点,2个MDS(一主一备),4个OSD。OSD节点需要额外准备一个数据盘。使用虚拟机的话,添加一个新的硬盘即可,这里添加20GB的新硬盘,系统识别为/dev/sdb
节点名称 | IP地址 | 部署进程 | 数据盘 |
ceph1 | 172.16.0.114 | 1MON+1MDS+1OSD | /dev/sdb |
ceph2 | 172.16.0.115 | 1MON+1MDS+1OSD | /dev/sdb |
ceph3 | 172.16.0.116 | 1MON+1OSD | /dev/sdb |
ceph4 | 172.16.0.113 | 1MON+1OSD | /dev/sdb |
每个节点都安装Ubuntu 14.04.1 LTS Server版本,确保系统能够联网。如果是使用虚拟机的话,可以先安装一个节点,然后使用虚拟机的克隆命令克隆出4个节点,再修改节点名和节点IP地址即可。
修改系统的host文件:
root@ceph1:~/ceph# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 ceph1 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.16.0.113 ceph4 172.16.0.114 ceph1 172.16.0.115 ceph2 172.16.0.116 ceph3
将如上hosts文件复盖到其他3个节点,修改其中的第二行为本机名字即可。
配置信任关系,配置节点ceph2,ceph3,ceph4允许ceph1免密码登录。配置信任关系比较简单,这里不详述。原则就是将其他节点的ssh使用的密钥对中的公钥复制到ceph1节点的/root/.ssh/authorized_keys文件中,让ceph1使用这些公钥登录目标节点。效果为:
root@ceph1:~/ceph# cat /root/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eX7F9i2BpYp//fAHPbcXTswMYYHlTBOMTR2UDxKPuODGPebgy0bU1fl9rwVlwqPd0rC3USgENvbZCEH4bVYre/qXw+RYu7ccDIPprMhE6zG3KVqDRKqSej+IwS4cLkJTmVA50DH84iilN77m6etIC1lYrHAv1nAG8ItzcaZFhDR6ZeI2qAqV9kw5QOAYYg470f42QZJXVxpQerL7wy91YWpYfZ04s6oeSdIjmgCp9JnRDRoFXoHGtbrlHvDbqujrsFhsg9lznLtQyn69yS6HO96Qzos59e3gclo+EnKb14dSnQ11PvU8khRAD6NoHHLnI1U+4oI7+PNb+kTgRavt root@ceph1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDozC9hBJvr0qF2ahoi3wJYjZXO9ICo65caQBhhGef10lPu44L/56rG92vLe2xbdukhE0+2J9kKbVJgFBOk+nKIKODAISArvsSNdGdBrRAoeI2azj6q62Xai4olAdQytuteX5t8UQeTowx9ln9mTA1JBmK+gzysW6vOMh17FySqJ727p6MwmeWsG/oizNqcNY8TS7wC8IG2FuyYS0puUAJOWLa097ZEt7HsXiNlUtMYXOQU4FLgXUE3kklbH3du6BcgJxVaCoSsM+rqXsdQ6U66pVz1xUTvW/JjoNTscGlfzSWEzdlWphwMp0WbDX7o9nNl6D35MyMFZPdg0bRwhZIz root@ceph2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ0MOXDWBGMjmOm6Cnp0S0pq9o5xE+WdlEZ3zMuhpLzwO0kd+/JAZmlmhBDvtREBh2VXdA+Xh0v7LXUKEs3Am4flGoeARkkVhOst5oGHrQvibDNGO13P8Bzl65VSDRouQpqcD7qktvp4h8DmM3WUC4YgN8EmYlXsuExJ719CFNmsEurkzDsUK8Jv+9L6cR7xsCPhjjzK/SmfbMmuaSqIWDGHzI/3xkXfnPwLkrbwD61SWoNJOCVFsInZJZxNXqQG8fIkjeMGtn0ltQ5jklszARKRa+xCzqsKPY5D+AFWcbHxWhtaTW9wl6pf0foYgdqWCCUESUELCqDrupHreiyb5l root@ceph3 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ4qLNprm/Vo9aPvClcO+mjE/0xLOUzgZIBmXxyXxP2jqhZRyDODmuGYFrkjOgUu2k+4VM+2+WfKvFs16UIApG8ChTp54nyOMhhPfFToz1YSxx2EsfPf0PTbrbjyPqnblxHFEsCSpql+qZ+t3QJ03PMcZtsnlTBCOM/HMk6nN3uF5YvrWYBaqbCA8awV+S0W2vceFf9qi1CdotUoAsjdnVN0mTypiXySIzN3Z1M4POVZcgMgQHQ3/mkHMmUowmpNu7F5+jmRuB3uKxawIIeE/pkVmnJmR71czgA51G5jsxqywwgNyf7k413Yn+cdJEiaCB8YJj72LEOg3oy3OwIw31 root@ceph4
ceph1节点安装ceph-deploy工具:
apt-get install ceph-deploy
给1、2、3、4节点各添加一个20GB的独立硬盘,用于后续存储OSD数据使用。
关闭所有节点的防火墙和selinux。
到此准备工作全部完成。
二、安装Ceph
登录ceph1节点,新建一个工作目录ceph,后面所有操作都在此目录下进行,ceph-deploy工具会在此目录产生各个配置文件,并对所有节点进行安装配置。
执行如下命令在各个节点安装ceph软件:
root@ceph1:~/ceph# ceph-deploy install ceph{1,2,3,4}
1、组建mon集群:
root@ceph1:~/ceph# ceph-deploy mon create ceph{1,2,3,4}
启动mon进程:
ceph-deploy mon create-initial
在4个节点上面使用ps命令,可以看到各个节点都启动了一个mon进程。
2、安装OSD
在每一个节点新建空白目录:/data/osd
ceph-deploy --overwrite-conf osd prepare ceph1:/data/osd:/dev/sdb ceph2:/data/osd:/dev/sdb ceph3:/data/osd:/dev/sdb ceph4:/data/osd:/dev/sdb ceph-deploy --overwrite-conf osd activate ceph1:/data/osd:/dev/sdb ceph2:/data/osd:/dev/sdb ceph3:/data/osd:/dev/sdb ceph4:/data/osd:/dev/sdb
在ceph1的ceph目录下,依次执行如上两行命令。
注意,在执行如上命令之前,不要对/dev/sdb设备做任何的格式化和分区动作。deploy命令会自动格式化该硬盘设备。
上述步骤执行完成后,就可以看到在该目录下已经建立了很多文件:
root@ceph1:~/ceph# ls -l /data/osd 总用量 48 -rw-r--r-- 1 root root 626 3Ղ 14 15:24 activate.monmap -rw-r--r-- 1 root root 3 3Ղ 14 15:24 active -rw-r--r-- 1 root root 37 3Ղ 14 15:23 ceph_fsid drwxr-xr-x 136 root root 4096 3Ղ 14 15:30 current -rw-r--r-- 1 root root 37 3Ղ 14 15:23 fsid lrwxrwxrwx 1 root root 58 3Ղ 14 15:23 journal ->;;; /dev/disk/by-partuuid/c1195388-2c15-410a-b9f8-8de90357d6c5 -rw-r--r-- 1 root root 37 3Ղ 14 15:23 journal_uuid -rw------- 1 root root 56 3Ղ 14 15:24 keyring -rw-r--r-- 1 root root 21 3Ղ 14 15:23 magic -rw-r--r-- 1 root root 6 3Ղ 14 15:24 ready -rw-r--r-- 1 root root 4 3Ղ 14 15:24 store_version -rw-r--r-- 1 root root 42 3Ղ 14 15:24 superblock -rw-r--r-- 1 root root 0 3Ղ 14 15:30 upstart -rw-r--r-- 1 root root 2 3Ղ 14 15:24 whoami
3、复制ceph和key文件到各个节点。
ceph-deploy admin ceph1 ceph2 ceph3 ceph4
上述命令即可复制ceph目录下的配置文件和key信息到各个节点。
4、安装MDS
ceph-deploy mds create ceph1 ceph2
三、安装完成验证
经过第二步的安装过程,ceph集群已经准备就绪。可以使用如下命令检查集群运行状况:
ceph –s
查询结果为:
root@ceph1:~/ceph# ceph -s cluster 6febc939-2d26-4893-90ce-30fba30bc6cf health HEALTH_OK monmap e1: 4 mons at {ceph1=172.16.0.114:6789/0,ceph2=172.16.0.115:6789/0,ceph3=172.16.0.116:6789/0,ceph4=172.16.0.113:6789/0}, election epoch 10, quorum 0,1,2,3 ceph4,ceph1,ceph2,ceph3 mdsmap e11: 1/1/1 up {0=ceph1=up:active}, 1 up:standby osdmap e24: 4 osds: 4 up, 4 in pgmap v124: 192 pgs, 3 pools, 1884 bytes data, 20 objects 7529 MB used, 94294 MB / 104 GB avail 192 active+clean
如果出现:
ALTH_WARN clock skew detected on的字样,说明各个mon节点的时间不同步。解决的办法当然是让各个节点使用同一时间源,确保时间一致,虚拟机的话,可以使用类似vmtools同步宿主机器的时间,也可以配置ntp确保一致。实在没法解决也可以在ceph.conf中新增配置:
mon clock drift allowed = 1 // 1表示1秒钟,这里可以配置小数点。