Ceph初体验之环境搭建

新浪微博 QQ空间

想了解一个开源组件,最好的办法就是实际搭建环境,用一下。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秒钟,这里可以配置小数点。

新浪微博 QQ空间

| 1 分2 分3 分4 分5 分 (5.00- 12票) Loading ... Loading ... | 这篇文章归档在:Ceph, 云计算/云存储, 存储技术 | 标签: , , . | 永久链接:链接 | 评论(0) |

评论

邮箱地址不会被泄露, 标记为 * 的项目必填。

8 - 2 = *



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <img alt="" src="" class=""> <pre class=""> <q cite=""> <s> <strike> <strong>

返回顶部