本文主要根据官方文档使用ubuntu14.04部署ceph集群,并且简单介绍其基本操作。
一、安装环境
本文主要根据官方文档使用ubuntu14.04部署ceph集群,并且简单介绍其基本操作。整个集群包括一个admin节点(admin node,主机名为node0)和3个存储节点(主机名分别为node1,node2,node3),所有节点均安装了ubuntu 14.04操作系统,除了admin节点,其余三个节点除了根磁盘,还额外配置一个磁盘作为单独的osd:
- lsblk
输出结果:
- NAMEMAJ:MINRMSIZEROTYPEMOUNTPOINT
- sr011:01422K0rom
- vda253:0020G0disk
- ├─vda1253:1019G0part/
- ├─vda2253:201K0part
- └─vda5253:501022M0part[SWAP]
- vdb253:16050G0disk
由于使用ustack公有云申请的云主机,因此磁盘是虚拟的,根磁盘为vda,第二块磁盘为vdb。 所有主机在192.168.0.0/24这个网络,ip为:
- 192.168.0.2node0
- 192.168.0.5node1
- 192.168.0.7node2
- 192.168.0.6node3
我们先设置一个mon节点,两个osd节点,后续我们再增加节点,其架构如图所示:
其中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目录,然后使用管理员账号操作:
- catid_rsa.pub|sudotee-a/root/.ssh/authorized_keys
在node0节点分别测试,是否可以免密码登录其他节点:
- sshnode0uptime
- sshnode1uptime
- sshnode2uptime
- sshnode3uptime
结果应该不需要输入密码。
2.安装并行ssh命令
在admin节点安装pssh包:
- apt-getinstall-ypssh
设置以下别名:
- aliaspssh='parallel-ssh'
- aliaspscp='parallel-scp'
创建host文件列表hosts.txt:
- node0
- node1
- node2
- node3
测试下pssh是否工作:
- pssh-hhosts.txtuptime
如果全部结果都为SUCCESS,则说明正常工作。
3.使用国内镜像源
为了提高访问速度,建议修改为国内镜像源,我们使用的是阿里云镜像源:
- root@node0:~#cat/etc/apt/sources.list
- debhttp://mirrors.aliyun.com/ubuntu/trustymainrestricteduniversemultiverse
- debhttp://mirrors.aliyun.com/ubuntu/trusty-securitymainrestricteduniversemultiverse
- debhttp://mirrors.aliyun.com/ubuntu/trusty-updatesmainrestricteduniversemultiverse
- debhttp://mirrors.aliyun.com/ubuntu/trusty-proposedmainrestricteduniversemultiverse
- debhttp://mirrors.aliyun.com/ubuntu/trusty-backportsmainrestricteduniversemultiverse
- deb-srchttp://mirrors.aliyun.com/ubuntu/trustymainrestricteduniversemultiverse
- deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-securitymainrestricteduniversemultiverse
- deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-updatesmainrestricteduniversemultiverse
- deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-proposedmainrestricteduniversemultiverse
- deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-backportsmainrestricteduniversemultiverse
拷贝该文件到所有的节点:
- pscp-h~/hosts.txt/etc/apt/sources.list/etc/apt/
更新源:
- pssh-h~/hosts.txt'apt-getupdate-y'
4.安装ceph-deploy
以下操作只需要在admin节点执行,首先需要增加ceph源:
- wget-q-O-'https://download.ceph.com/keys/release.asc'|sudoapt-keyadd-
- echodebhttp://download.ceph.com/debian-{ceph-stable-release}/$(lsb_release-sc)main|sudotee/etc/apt/sources.list.d/ceph.list
- #注意:ceph-stable-release是选择安装的版本,我部署时选择的是jewel!
# 注意: ceph-stable-release是选择安装的版本,我部署时选择的是jewel!
安装ceph-deploy:
- sudoapt-getupdate&&sudoapt-getinstallceph-deploy
生产环境还需要安装ntp服务,保证集群的时钟一致,这次只是为了测试,故省略这一步。另外由于ubuntu默认防火墙是关的,SELinux也没有安装,故不需要任何操作。使用centos安装时需要打开必要端口。
三、开始安装ceph集群
我们使用ceph-deploy部署,后续操作均在admin节点操作。 首先需要创建工作环境,该环境会保存所有的配置文件:
- mkdirmy-cluster
- cdmy-cluster
接下分别执行以下步骤:
1.创建集群
- ceph-deploynewnode1
其中node1是mon节点,执行该命令会生成ceph配置文件、monitor密钥文件以及日志文件。
2.修改默认冗余份数
由于我们目前只有两个osd节点,而默认的冗余份数是3,因此我们需要设置为2,如果osd节点大于2,则此步骤省略。
修改ceph.conf文件,在[global]下增加以下内容:
- osdpooldefaultsize=2
3.配置网卡和网络
如果主机有多余一个网卡,需要设置使用的网卡和网络地址,由于我们主机只有一张网卡,此步骤省略。
4.开始安装ceph
- ceph-deployinstallnode0node1node2node3
5.初始化mon节点和收集密钥信息
- ceph-deploymoncreate-initial
执行完毕,目录应该有以下文件:
- {cluster-name}.client.admin.keyring
- {cluster-name}.bootstrap-osd.keyring
- {cluster-name}.bootstrap-mds.keyring
- {cluster-name}.bootstrap-rgw.keyring
完成以上步骤,安装完成,但还没有配置osd节点。
6.配置osd节点
首先格式化磁盘,注意我们使用的是/dev/vdb:
- ceph-deploydiskzapnode2:vdb
- ceph-deploydiskzapnode3:vdb
以上步骤会清空磁盘的所有数据。 接下来创建osd,注意由于我们只是测试,故没有使用单独的磁盘作为journal,实际在生产环境下,需要配备SSD分区作为journal,能够***化IO吞吐量。
- ceph-deployosdcreatenode2:vdb
- ceph-deployosdcreatenode3:vdb
7.配置admin节点
admin节点同时也作为我们的client节点,需要拷贝其他节点的配置文件以及密钥,使得不需要指定mon地址以及用户信息就可以直接管理我们的ceph集群,执行以下命令即可:
- ceph-deployadminnode0node1node2node3
- sudochmod+r/etc/ceph/ceph.client.admin.keyring#保证具有读取的密钥的权限
8.测试结果运行以下命令:
- cephhealth
结果若返回active + clean状态,则说明部署成功!
四、扩展节点
增加node1也作为osd节点:
- ceph-deploydiskzapnode1:vdb
- ceph-deployosdcreatenode1:vdb
- ceph-deployosdcreatenode1:vdb
若需要cephFS支持,即需要提供文件系统支持,需要部署metadata server:
- ceph-deploymdscreatenode1
若需要Ceph Object Gateway支持,即对象存储节点,需要部署一个RGW实例,
- ceph-deployrgwcreatenode1
ceph集群至少需要一个mon节点,为了实现高可用,通常需要设置多个(一般设置为3个)mon节点,我们把node2,node3也作为mon节点:
- ceph-deploymonaddnode2node3
当有多个mon节点时,ceph将使用quorum算法进行同步,查看状态:
- cephquorum_status--formatjson-pretty
五、块存储rbd使用
我们使用默认的rbd池,首先创建一个新的块设备(cinder称为volume,ceph称为image):
- rbdcreatefoo--size4096
查看刚刚创建的实例:
- rbdls
- #foo
映射实例到虚拟设备中:
- rbdmapfoo
- #/dev/rbd1
创建文件系统并挂载到/mnt:
- mkfs.ext4/dev/rbd1
- mount/dev/rbd1/mnt
- df-h
- Filesystem1K-blocksUsedAvailableUse%Mountedon
- udev10140721210140601%/dev
- tmpfs2049888082041801%/run
- /dev/vda11947820419360881652963611%/
- none4040%/sys/fs/cgroup
- none5120051200%/run/lock
- none1024932010249320%/run/shm
- none10240001024000%/run/user
- /dev/rbd13997376818437630961%/mnt
把实例扩容到8GB:
- rbdresizefoo--size8192
- resize2fs/dev/rbd1
- df-h
- FilesystemSizeUsedAvailUse%Mountedon
- udev991M12K991M1%/dev
- tmpfs201M808K200M1%/run
- /dev/vda119G1.9G16G11%/
- none4.0K04.0K0%/sys/fs/cgroup
- none5.0M05.0M0%/run/lock
- none1001M01001M0%/run/shm
- none100M0100M0%/run/user
- /dev/rbd17.8G9.0M7.4G1%/mnt
创建实例快照:
- rbdsnapcreatetest@test-snap
六、分布式文件系统使用
创建一个文件系统:
- cephosdpoolcreatecephfs_data128
- cephosdpoolcreatecephfs_metadata128
- cephfsnewtest_fscephfs_metadatacephfs_data
- cephfsls
- #name:test_fs,metadatapool:cephfs_metadata,datapools:[cephfs_data]
创建secret文件:
- catceph.client.admin.keyring
输出结果:
- [client.admin]
- key=AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
把key值拷贝到secret文件:
- echo"AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==">admin.secret
安装mount ceph插件:
- apt-getinstallceph-fs-common
挂载到本地文件系统/mnt:
- sudomount-tceph192.168.0.5:6789://mnt-oname=admin,secretfile=admin.secret
其中192.168.0.5是node1 ip,也即mon节点ip地址。
运行df命令查看是否挂载成功,成功即可像本地文件系统一样操作。
七、对象存储省略。。。
【本文是清一色专栏作者“付广平”的原创文章,如需转载请通过清一色获得联系】
©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经