如何使用ubuntu快速部署ceph集群

本文主要根据官方文档使用ubuntu14.04部署ceph集群,并且简单介绍其基本操作。 2017-03-22 10:06:40 ubuntuceph集群 译文:关于Docker数据容器(data only container) 数据容器就是本身只创建一个volume供其他容器共享,创建完后即退出,不执行任何任务。比如通过以下方式创建一个postgres容器。 2017-03-22 09:39:09 Docker数据容器 一个bug到底价值几何?谈bug赏金的方方面面 译文 “一个bug到底价值几何?”这无疑是众包安全测试当中最为常见的问题所在,公司通常是如何确定他们的bug赏金计划额度的? 2017-03-22 09:11:45 bugbug赏金计划众包项目 唯品会敏捷Scrum实践历程总结(三) Gitflow 通常有个理念是任何变更都是一个分支,无论是一个feature还是一个hotfix,都应该以分支的方式进行。这种方式也受到不少人推崇。包括很多工具如Sourcetree也是直接内嵌支持。这个方式从管理上似乎是比较干净的,但是实际上容易进入一个误区从而造成代码merge的麻烦更多。 2017-03-22 09:04:21 敏捷Scrum实践 DevOps 是什么不是什么 DevOps 到底是不是一个职位,还是像敏捷、精益一样是一种思想、最佳实践?下面,我们就来分析一下。 2017-03-21 23:29:44 DevOps运维开发 在癌症治疗这件事上,要不要相信人工智能? 随深度学习技术的应用与成熟,人工智能也在不断拓展疆界。也许在药物开发和药物选择这样的「重」领域上,人工智能同样能发挥不俗的作用。 2017-03-21 23:10:22 人工智能医疗深度学习 使用Enzyme测试React(Native)组件 我们非常享受Enzyme为React.js应用提供的快速组件级UI测试功能。与许多其他基于快照的测试框架不同,Enzyme允许开发者在不进行设备渲染的情况下做测试,从而实现速度更快、粒度更小的测试。 2017-03-21 21:37:06 组件UI测试架构 虚拟机、Docker和Hyper技术比较 本文首先介绍了操作系统,然后引出容器技术以及虚拟机技术,最后介绍了Docker和Hyper技术。通过本文可以清楚地对三者有了感性认识。 2017-03-21 15:30:02 虚拟机DockerHyper 2016-我的技术之路:编程知识体系结构 学习一门语言最痛苦的反而是大量的细节语法,譬如字符串截取、数组或者字典类型的索引之类的。下面要进行讨论的一些语法特性是目前流行的一些语言的总结,可能有些语言尚不支持部分特性,但是要么有些第三方库进行辅助,要么会在未来的版本中添加如下特性。 2017-03-21 14:16:43 编程体系结构 不要再天天写表单了,淘宝大牛教你零基础写PHP扩展 信海龙老师于2013年加入阿里巴巴,拥有十年互联网开发经验。为帮助写PHP的小伙伴提高提高业务能力,特意在知加创建圈子『零基础学习PHP扩展开发』,用于与PHP扩展开发初学者分享、交流。 2017-03-21 13:03:28 编程体系结构 基础深度学习概念备忘录 深度学习可能对于很多初学者是一头雾水,在高速发展的同时有很多新的概念名词被抛出,而本文则是对一些常见名词的备忘介绍。

本文主要根据官方文档使用ubuntu14.04部署ceph集群,并且简单介绍其基本操作。

[[186140]]

一、安装环境

本文主要根据官方文档使用ubuntu14.04部署ceph集群,并且简单介绍其基本操作。整个集群包括一个admin节点(admin node,主机名为node0)和3个存储节点(主机名分别为node1,node2,node3),所有节点均安装了ubuntu 14.04操作系统,除了admin节点,其余三个节点除了根磁盘,还额外配置一个磁盘作为单独的osd:

  1. lsblk

输出结果:

  1. NAMEMAJ:MINRMSIZEROTYPEMOUNTPOINT
  2. sr011:01422K0rom
  3. vda253:0020G0disk
  4. ├─vda1253:1019G0part/
  5. ├─vda2253:201K0part
  6. └─vda5253:501022M0part[SWAP]
  7. vdb253:16050G0disk

由于使用ustack公有云申请的云主机,因此磁盘是虚拟的,根磁盘为vda,第二块磁盘为vdb。 所有主机在192.168.0.0/24这个网络,ip为:

  1. 192.168.0.2node0
  2. 192.168.0.5node1
  3. 192.168.0.7node2
  4. 192.168.0.6node3

我们先设置一个mon节点,两个osd节点,后续我们再增加节点,其架构如图所示:

如何使用ubuntu快速部署ceph集群

其中node1作为mon节点,其余node2,node3作为osd节点。

注意:后续操作均使用root账号,如果不使用root账号登录,需要创建一个新的账号,该账号必须具有免密码sudo权限,否则后续使用ceph-deploy时会失败!

二、安装前工作

1.设置admin节点root免密码登录其他节点

首先使用ssh-keygen生成密钥,位于~/.ssh/id_rsa.pub,拷贝id_rsa.pub文件到所有节点中,若没有设置root密码,可以先拷贝到管理员账号(安装操作系统时使用的用户,具有sudo权限)home目录,然后使用管理员账号操作:

  1. catid_rsa.pub|sudotee-a/root/.ssh/authorized_keys

在node0节点分别测试,是否可以免密码登录其他节点:

  1. sshnode0uptime
  2. sshnode1uptime
  3. sshnode2uptime
  4. sshnode3uptime

结果应该不需要输入密码。

2.安装并行ssh命令

在admin节点安装pssh包:

  1. apt-getinstall-ypssh

设置以下别名:

  1. aliaspssh='parallel-ssh'
  2. aliaspscp='parallel-scp'

创建host文件列表hosts.txt:

  1. node0
  2. node1
  3. node2
  4. node3

测试下pssh是否工作:

  1. pssh-hhosts.txtuptime

如果全部结果都为SUCCESS,则说明正常工作。

3.使用国内镜像源

为了提高访问速度,建议修改为国内镜像源,我们使用的是阿里云镜像源:

  1. root@node0:~#cat/etc/apt/sources.list
  2. debhttp://mirrors.aliyun.com/ubuntu/trustymainrestricteduniversemultiverse
  3. debhttp://mirrors.aliyun.com/ubuntu/trusty-securitymainrestricteduniversemultiverse
  4. debhttp://mirrors.aliyun.com/ubuntu/trusty-updatesmainrestricteduniversemultiverse
  5. debhttp://mirrors.aliyun.com/ubuntu/trusty-proposedmainrestricteduniversemultiverse
  6. debhttp://mirrors.aliyun.com/ubuntu/trusty-backportsmainrestricteduniversemultiverse
  7. deb-srchttp://mirrors.aliyun.com/ubuntu/trustymainrestricteduniversemultiverse
  8. deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-securitymainrestricteduniversemultiverse
  9. deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-updatesmainrestricteduniversemultiverse
  10. deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-proposedmainrestricteduniversemultiverse
  11. deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-backportsmainrestricteduniversemultiverse

拷贝该文件到所有的节点:

  1. pscp-h~/hosts.txt/etc/apt/sources.list/etc/apt/

更新源:

  1. pssh-h~/hosts.txt'apt-getupdate-y'

4.安装ceph-deploy

以下操作只需要在admin节点执行,首先需要增加ceph源:

  1. wget-q-O-'https://download.ceph.com/keys/release.asc'|sudoapt-keyadd-
  2. echodebhttp://download.ceph.com/debian-{ceph-stable-release}/$(lsb_release-sc)main|sudotee/etc/apt/sources.list.d/ceph.list
  3. #注意:ceph-stable-release是选择安装的版本,我部署时选择的是jewel!

# 注意: ceph-stable-release是选择安装的版本,我部署时选择的是jewel!

安装ceph-deploy:

  1. sudoapt-getupdate&&sudoapt-getinstallceph-deploy

生产环境还需要安装ntp服务,保证集群的时钟一致,这次只是为了测试,故省略这一步。另外由于ubuntu默认防火墙是关的,SELinux也没有安装,故不需要任何操作。使用centos安装时需要打开必要端口。

三、开始安装ceph集群

我们使用ceph-deploy部署,后续操作均在admin节点操作。 首先需要创建工作环境,该环境会保存所有的配置文件:

  1. mkdirmy-cluster
  2. cdmy-cluster

接下分别执行以下步骤:

1.创建集群

  1. ceph-deploynewnode1

其中node1是mon节点,执行该命令会生成ceph配置文件、monitor密钥文件以及日志文件。

2.修改默认冗余份数

由于我们目前只有两个osd节点,而默认的冗余份数是3,因此我们需要设置为2,如果osd节点大于2,则此步骤省略。

修改ceph.conf文件,在[global]下增加以下内容:

  1. osdpooldefaultsize=2

3.配置网卡和网络

如果主机有多余一个网卡,需要设置使用的网卡和网络地址,由于我们主机只有一张网卡,此步骤省略。

4.开始安装ceph

  1. ceph-deployinstallnode0node1node2node3

5.初始化mon节点和收集密钥信息

  1. ceph-deploymoncreate-initial

执行完毕,目录应该有以下文件:

  1. {cluster-name}.client.admin.keyring
  2. {cluster-name}.bootstrap-osd.keyring
  3. {cluster-name}.bootstrap-mds.keyring
  4. {cluster-name}.bootstrap-rgw.keyring

完成以上步骤,安装完成,但还没有配置osd节点。

6.配置osd节点

首先格式化磁盘,注意我们使用的是/dev/vdb:

  1. ceph-deploydiskzapnode2:vdb
  2. ceph-deploydiskzapnode3:vdb

以上步骤会清空磁盘的所有数据。 接下来创建osd,注意由于我们只是测试,故没有使用单独的磁盘作为journal,实际在生产环境下,需要配备SSD分区作为journal,能够***化IO吞吐量。

  1. ceph-deployosdcreatenode2:vdb
  2. ceph-deployosdcreatenode3:vdb

7.配置admin节点

admin节点同时也作为我们的client节点,需要拷贝其他节点的配置文件以及密钥,使得不需要指定mon地址以及用户信息就可以直接管理我们的ceph集群,执行以下命令即可:

  1. ceph-deployadminnode0node1node2node3
  2. sudochmod+r/etc/ceph/ceph.client.admin.keyring#保证具有读取的密钥的权限

8.测试结果运行以下命令:

  1. cephhealth

结果若返回active + clean状态,则说明部署成功!

四、扩展节点

增加node1也作为osd节点:

  1. ceph-deploydiskzapnode1:vdb
  2. ceph-deployosdcreatenode1:vdb
  3. ceph-deployosdcreatenode1:vdb

若需要cephFS支持,即需要提供文件系统支持,需要部署metadata server:

  1. ceph-deploymdscreatenode1

若需要Ceph Object Gateway支持,即对象存储节点,需要部署一个RGW实例,

  1. ceph-deployrgwcreatenode1

ceph集群至少需要一个mon节点,为了实现高可用,通常需要设置多个(一般设置为3个)mon节点,我们把node2,node3也作为mon节点:

  1. ceph-deploymonaddnode2node3

当有多个mon节点时,ceph将使用quorum算法进行同步,查看状态:

  1. cephquorum_status--formatjson-pretty

五、块存储rbd使用

我们使用默认的rbd池,首先创建一个新的块设备(cinder称为volume,ceph称为image):

  1. rbdcreatefoo--size4096

查看刚刚创建的实例:

  1. rbdls
  2. #foo

映射实例到虚拟设备中:

  1. rbdmapfoo
  2. #/dev/rbd1

创建文件系统并挂载到/mnt:

  1. mkfs.ext4/dev/rbd1
  2. mount/dev/rbd1/mnt
  3. df-h
  4. Filesystem1K-blocksUsedAvailableUse%Mountedon
  5. udev10140721210140601%/dev
  6. tmpfs2049888082041801%/run
  7. /dev/vda11947820419360881652963611%/
  8. none4040%/sys/fs/cgroup
  9. none5120051200%/run/lock
  10. none1024932010249320%/run/shm
  11. none10240001024000%/run/user
  12. /dev/rbd13997376818437630961%/mnt

把实例扩容到8GB:

  1. rbdresizefoo--size8192
  2. resize2fs/dev/rbd1
  3. df-h
  4. FilesystemSizeUsedAvailUse%Mountedon
  5. udev991M12K991M1%/dev
  6. tmpfs201M808K200M1%/run
  7. /dev/vda119G1.9G16G11%/
  8. none4.0K04.0K0%/sys/fs/cgroup
  9. none5.0M05.0M0%/run/lock
  10. none1001M01001M0%/run/shm
  11. none100M0100M0%/run/user
  12. /dev/rbd17.8G9.0M7.4G1%/mnt

创建实例快照:

  1. rbdsnapcreatetest@test-snap

六、分布式文件系统使用

创建一个文件系统:

  1. cephosdpoolcreatecephfs_data128
  2. cephosdpoolcreatecephfs_metadata128
  3. cephfsnewtest_fscephfs_metadatacephfs_data
  4. cephfsls
  5. #name:test_fs,metadatapool:cephfs_metadata,datapools:[cephfs_data]

创建secret文件:

  1. catceph.client.admin.keyring

输出结果:

  1. [client.admin]
  2. key=AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==

把key值拷贝到secret文件:

  1. echo"AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==">admin.secret

安装mount ceph插件:

  1. apt-getinstallceph-fs-common

挂载到本地文件系统/mnt:

  1. sudomount-tceph192.168.0.5:6789://mnt-oname=admin,secretfile=admin.secret

其中192.168.0.5是node1 ip,也即mon节点ip地址。

运行df命令查看是否挂载成功,成功即可像本地文件系统一样操作。

七、对象存储省略。。。

【本文是清一色专栏作者“付广平”的原创文章,如需转载请通过清一色获得联系】

戳这里,看该作者更多好文

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月4日 22:21
下一篇 2023年5月4日 22:21

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信