文档库 最新最全的文档下载
当前位置:文档库 › CEPH分布式存储部署要点

CEPH分布式存储部署要点

CEPH分布式存储部署要点
CEPH分布式存储部署要点

CEPH分布式存储部署

PS:本文的所有操作均在mon节点的主机进行,如有变动另有注释

作者:网络技术部徐志权

日期:2014年2月10日

VERSION 1.0 更新历史:

2014.2.10:首次完成ceph部署文档,块设备及对象存储的配置随后添加。

一、部署前网络规划

1.1 环境部署

主机名公网IP(eth0)私网IP(eth1)操作系统运行服务node1 192.168.100.101 172.16.100.101 CentOS6.5 mon、mds node2 192.168.100.102 172.16.100.102 CentOS6.5 osd

node3 192.168.100.103 172.16.100.103 CentOS6.5 osd

◆操作系统使用CentOS6.5,因为系统已经包含xfs的支持可以直接使用不需要再次

编译。

◆由于CentOS6.5系统的内核为2.6.32,因此要关闭硬盘的写入缓存,若高于此版本

不需要关闭。

#hdparm -W 0 /dev/sdb 0

◆本次部署一共有一个监控节点、一个元数据节点、两个数据节点,每个数据节点拥

有两个硬盘作为数据盘。

1.2 网络拓扑

1.3 配置服务器、安装ceph

●添加ceph的rpm库key

#rpm --import

'https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc'

#rpm --import

'https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc'

●添加ceph-extras库

#vi /etc/yum.repos.d/ceph-extras

[ceph-extras]

name=Ceph Extras Packages

baseurl=https://www.wendangku.net/doc/619537338.html,/packages/ceph-extras/rpm/centos6/$basearch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

[ceph-extras-noarch]

name=Ceph Extras noarch

baseurl=https://www.wendangku.net/doc/619537338.html,/packages/ceph-extras/rpm/centos6/noarch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

[ceph-extras-source]

name=Ceph Extras Sources

baseurl=https://www.wendangku.net/doc/619537338.html,/packages/ceph-extras/rpm/centos6/SRPMS

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

●添加ceph库

#rpm -Uvh https://www.wendangku.net/doc/619537338.html,/rpms/el6/noarch/ceph-release-1-0.el6.noarch.rpm

●添加epel库

#rpm -Uvh

https://www.wendangku.net/doc/619537338.html,/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

●安装ceph

#yum update -y && yum install ceph -y

二、部署ceph

2.1创建一个集群

创建一个集群,集群名为ceph,在mon节点,这里是主机node1,执行以下操作

2.1.1获取一个uuid

#uuidgen

2.1.2编辑配置文件

#vi /etc/ceph/ceph.conf

[global]

auth_service_required = cephx

#filestore_xattr_use_omap = true #该选项只针对ext4文件系统格式auth_client_required = cephx

auth_cluster_required = cephx

auth supported = none

fsid = a500528d-fc02-464e-b944-bddacbb5c3d1 #填入刚才获取到的uuid public network = 192.168.100.0/24

cluster network = 172.16.100.0/24

osd pool default size = 2

osd pool default min size = 1

max open files = 65535

mon osd full ratio = .95

mon osd nearfull ratio = .85

[mon]

mon data = /data/$cluster-$id

[osd]

osd journal size = 1024

osd journal = /data/$name/journal

osd data = /data/$name

2.2创建一个mon

2.2.1编辑配置文件,添加mon参数

#vi /etc/ceph/ceph.conf

[mon.node1]

host = node1

mon addr = 192.168.100.101:6789

2.2.2创建一个mon keyring

#ceph-authtool /etc/ceph/ceph.mon.keyring --create-keyring --gen-key -n mon.

2.2.3创建mon数据目录

#mkdir -p /data/ceph-node1

#ceph-mon -i node1 --mkfs --keyring /etc/ceph/ceph.mon.keyring

2.2.4启动并查看集群状态

#/etc/init.d/ceph start mon.node1

#ceph –s

出现以下提示,启动成功:

[root@node1 ~]# ceph -s

cluster a500528d-fc02-464e-b944-bddacbb5c3d1

health HEALTH_ERR 192 pgs stuck inactive; 192 pgs stuck unclean; no osds monmap e1: 1 mons at {node1=192.168.100.101:6789/0}, election epoch 2, quorum 0 node1

osdmap e1: 0 osds: 0 up, 0 in

pgmap v2: 192 pgs, 3 pools, 0 bytes data, 0 objects

0 kB used, 0 kB / 0 kB avail

192 creating

2.3创建一个osd

首先为节点添加一块硬盘(这里是主机node2)

PS:硬件支持热插拔的情况下可以使用以下命令,在线检测新增硬盘

# echo "- - -" > /sys/class/scsi_host/host2/scan

2.3.1获取osd的ID

##ceph osd create //记录得到的编号,该编号是下面创建的osd的ID 2.3.2编辑配置文件

#vi /etc/ceph/ceph.conf

添加

[osd.0]

public addr = 192.168.100.102

cluster addr = 172.16.100.102

2.3.3同步配置文档到节点node2

#scp -r root@192.168.100.101:/etc/ceph/ root@192.168.100.102:/etc/

2.3.4部署osd节点

#ssh root@192.168.100.102

#parted /dev/sdb mktable gpt

#parted /dev/sdb mkpart osd.0 1 20g //新加的硬盘为20g,并将所有空间划分为一个分区#mkfs -t xfs /dev/sdb1

#mkdir /data/osd.0

#mount /dev/sdb1 /data/osd.0

#ceph-osd -i 0 --mkfs --mkkey

#ceph auth add osd.0 osd 'allow *' mon 'allow rwx' -i /data/osd.0/keyring

#ceph osd crush add osd.0 0.2 root=default host=node2

2.3.5启动osd进程

#ceph-osd -i 0

2.3.6查看进程

#ps -ef|grep ceph-osd

以下提示启动成功

[root@node2 ~]# ps -ef|grep ceph-osd

root 1364 1 0 08:42 ? 00:00:07 ceph-osd -i 0

2.3.7查看osd状态

#exit

#ceph osd stat

osd添加成功

[root@node1 ~]# ceph osd stat

osdmap e41: 1 osds: 1 up, 1 in

2.3.8开机自动启动

#vi /etc/fstab

添加

/dev/sdb1 /data/osd.0 xfs defaults 0 0

# echo "ceph-osd -i 0" >> /etc/rc.local

2.4创建一个mds

创建mds

# ceph-mds -i node1 -n mds.node1 -c /etc/ceph/ceph.conf -m 192.168.100.101:6789

检查mds状态,成功启动如下

[root@node1 ~]# ceph mds stat

e19: 1/1/1 up {0=node1=up:active}

三、配置ceph客户端

3.1确定操作系统内核

3.1.1查看内核版本

#uname -r

若内核版本低于2.6.32时,建议升级到2.6.34或以上

3.1.2更新内核,编译ceph模块

这里以升级到3.10.29为例

#wget https://https://www.wendangku.net/doc/619537338.html,/pub/linux/kernel/v3.x/linux-3.10.29.tar.xz

#tar -Jxvf linux-3.10.29.tar.xz

#cd linux-3.10.29

#cp /boot/config-2.6.32-431.3.1.el6.x86_64 ./.config //将当前系统内核的配置文件复制到kernel源文件的目录内

#make menuconfig

依次选择下面选项,ceph必须编译为模块M

File systems-->Network File Systems--> Ceph distributed file system

保存并退出

#make

#make modules_install

#make install

确定boot木有下存在以下文件

[root@node1 linux-3.10.29]# ll /boot/|grep 3.10

initramfs-3.10.29.img

System.map -> /boot/System.map-3.10.29

System.map-3.10.29

vmlinuz -> /boot/vmlinuz-3.10.29

vmlinuz-3.10.29

更改grub.conf

#vi /etc/grub.conf

添加

title CentOS (3.10.29)

root (hd0,0)

kernel /vmlinuz-3.10.29 ro root=/dev/mapper/V olGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=V olGroup/lv_swap

SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

initrd /initramfs-3.10.29.img

3.1配置文件目录共享客户端

PS:确定已经运行一个ceph集群,并且集群包含至少一个或以上mds节点

挂载ceph分布式存储文件目录共享

以下在客户端上操作

#yum install ceph-fuse -y

#ceph-fuse -m 192.168.100.101:6789 /mnt

测试写入1G文件

#dd if=/dev/zero of=/mnt/test.1g bs=8192 count=125000

四、ceph扩容

4.1增加osd节点(以下操作在node1执行,即mon节点)

根据第一章在新的节点node3服务器安装ceph,并配置好环境

4.1.1获取osd的ID

##ceph osd create //记录得到的编号,该编号是下面创建的osd的ID

4.1.2编辑配置文件

#vi /etc/ceph/ceph.conf

添加

[osd.1]

public addr = 192.168.100.103

cluster addr = 172.16.100.103

4.1.3同步配置文档到节点node3

#scp -r root@192.168.100.101:/etc/ceph/ root@192.168.100.103:/etc/

4.1.4部署osd节点

#ssh root@192.168.100.103

#parted /dev/sdb mktable gpt

#parted /dev/sdb mkpart osd.1 1 20g //新加的硬盘为20g,并将所有空间划分为一个分区#mkfs -t xfs /dev/sdb1

#mkdir -p /data/osd.1

#mount /dev/sdb1 /data/osd.1

#ceph-osd -i 1 --mkfs --mkkey

#ceph auth add osd.1 osd 'allow *' mon 'allow rwx' -i /data/osd.1/keyring

#ceph osd crush add osd.1 0.2 root=default host=node2

4.1.5启动osd进程

#ceph-osd -i 1

4.1.6查看进程

#ps -ef|grep ceph-osd

以下提示启动成功

[root@node3 ~]# ps -ef|grep ceph-osd

root 1364 1 0 08:42 ? 00:00:07 ceph-osd -i 0

4.1.7查看osd状态

#exit

#ceph osd stat

osd添加成功

[root@node1 ~]# ceph osd stat

osdmap e41: 2 osds: 2 up, 2 in

4.2增加mon(以下操作在主机node2执行)

PS:每台主机只能为ceph集群启动一个mon进程

PS2:集群中只有两个mon节点时,其中一个断开会导致集群不能访问,建议mon总数3个或以上。

本次mon将部署在主机node2

4.2.3创建新的monitor数据目录

#mkdir /data/ceph-node2

4.2.4部署新的mon

#ceph auth get mon. -o /data/ceph-node2/ceph.mon.keyring

#ceph mon getmap -o /data/ceph-node2/ceph.mon.map

#ceph-mon -i node2 --mkfs --monmap /data/ceph-node2/ceph.mon.map --keyring\

/data/ceph-node2/ceph.mon.keyring

#ceph mon add node2 192.168.100.102:6789

4.2.1启动新的mon

#ceph-mon -i node2 --public-addr 192.168.100.102:6789

五、检查ceph集群状态

#ceph health //ceph健康状态

#ceph status //ceph当前全部状态

#ceph -w //实时监控ceph状态及变化#ceph osd dump //所有osd详细状态

#ceph osd tree //osd所在位置,及状态

#ceph quorum_status //mon优先级状态

#ceph mon dump //mon节点状态

#ceph mds dump //mds详细状态

六、Openstack与Ceph整合

6.1整合openstack与ceph

6.1.1创建池

#ceph osd pool create volumes 128

#ceph osd pool create images 128

#ceph osd pool create backups 128

6.1.2获取ceph配置文件PS:应用于openstack所有节点

#scp -r 192.168.4.43:/etc/ceph /etc

6.1.3所有openstack节点安装ceph库文件

#yum install -y python-ceph ceph

6.1.4创建ceph用户

#ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix

rbd_children, allow rwx pool=volumes, allow rx pool=images'

#ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix

rbd_children, allow rwx pool=images'

#ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups'

6.1.5获取ceph用户的key加入到ceph配置文件中PS:应用于openstack所有节点

#ceph auth get-or-create client.glance |tee /etc/ceph/ceph.client.glance.keyring

#chown glance:glance /etc/ceph/ceph.client.glance.keyring

#ceph auth get-or-create client.cinder |tee /etc/ceph/ceph.client.cinder.keyring

#chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring

#ceph auth get-or-create client.cinder-backup |tee /etc/ceph/ceph.client.cinder-backup.keyring #chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring

6.1.6配置计算节点的nova-compute使用ceph PS:应用于所有计算节点

#ceph auth get-key client.cinder | tee client.cinder.key

#uuidgen

3a37c634-3b97-698c-c0b0-cb6f01fa4533

#cat > secret.xml <

3a37c634-3b97-698c-c0b0-cb6f01fa4533

client.cinder secret

EOF

#virsh secret-define --file secret.xml

Secret 3a37c634-3b97-698c-c0b0-cb6f01fa4533 created

将上述所得uuid值保存至/etc/nova/nova.conf

rbd_secret_uuid=3a37c634-3b97-698c-c0b0-cb6f01fa4533

#virsh secret-set-value --secret 3a37c634-3b97-698c-c0b0-cb6f01fa4533 --base64 $(cat client.cinder.key)

6.1.7glance、cinder、nova的ceph配置

Glance:

default_store=rbd

rbd_store_user=glance

rbd_store_pool=images

show_image_direct_url=True

Cinder:

volume_driver=cinder.volume.drivers.rbd.RBDDriver

rbd_pool=volumes

rbd_ceph_conf=/etc/ceph/ceph.conf

rbd_flatten_volume_from_snapshot=false

rbd_max_clone_depth=5

glance_api_version=2

rbd_user=cinder

rbd_secret_uuid=457eb676-33da-42ec-9a8c-9293d545c337

Cinder-backup

backup_driver=cinder.backup.drivers.ceph

backup_ceph_conf=/etc/ceph/ceph.conf

backup_ceph_user=cinder-backup

backup_ceph_chunk_size=134217728

backup_ceph_pool=backups

backup_ceph_stripe_unit=0

backup_ceph_stripe_count=0

restore_discard_excess_bytes=true

Nova:

libvirt_images_type=rbd

libvirt_images_rbd_pool=volumes

libvirt_images_rbd_ceph_conf=/etc/ceph/ceph.conf

rbd_user=cinder

rbd_secret_uuid=457eb676-33da-42ec-9a8c-9293d545c337

libvirt_inject_password=false

libvirt_inject_key=false

libvirt_inject_partition=-2

6.1.8重启openstack服务

#service openstack-glance-api restart

#service openstack-nova-compute restart #service openstack-cinder-volume restart #service openstack-cinder-backup restart #

ceph分布式存储介绍

Ceph分布式存储 1Ceph存储概述 Ceph 最初是一项关于存储系统的PhD 研究项目,由Sage Weil 在University of California, Santa Cruz(UCSC)实施。 Ceph 是开源分布式存储,也是主线Linux 内核(2.6.34)的一部分。1.1Ceph 架构 Ceph 生态系统可以大致划分为四部分(见图1):客户端(数据用户),元数据服务器(缓存和同步分布式元数据),一个对象存储集群(将数据和元数据作为对象存储,执行其他关键职能),以及最后的集群监视器(执行监视功能)。 图1 Ceph 生态系统 如图1 所示,客户使用元数据服务器,执行元数据操作(来确定数据位置)。元数据服务器管理数据位置,以及在何处存储新数据。值得注意的是,元数据存储在一个存储集群(标为―元数据I/O‖)。实际的文件I/O 发生在客户和对象存储集群之间。这样一来,更高层次的POSIX 功能(例如,打开、关闭、重命名)就由元数据服务器管理,不过POSIX 功能(例如读和

写)则直接由对象存储集群管理。 另一个架构视图由图2 提供。一系列服务器通过一个客户界面访问Ceph 生态系统,这就明白了元数据服务器和对象级存储器之间的关系。分布式存储系统可以在一些层中查看,包括一个存储设备的格式(Extent and B-tree-based Object File System [EBOFS] 或者一个备选),还有一个设计用于管理数据复制,故障检测,恢复,以及随后的数据迁移的覆盖管理层,叫做Reliable Autonomic Distributed Object Storage(RADOS)。最后,监视器用于识别组件故障,包括随后的通知。 图2 ceph架构视图 1.2Ceph 组件 了解了Ceph 的概念架构之后,您可以挖掘到另一个层次,了解在Ceph 中实现的主要组件。Ceph 和传统的文件系统之间的重要差异之一就是,它将智能都用在了生态环境而不是文件系统本身。 图3 显示了一个简单的Ceph 生态系统。Ceph Client 是Ceph 文件系统的用户。Ceph Metadata Daemon 提供了元数据服务器,而Ceph Object Storage Daemon 提供了实际存储(对数据和元数据两者)。最后,Ceph Monitor 提供了集群管理。要注意的是,Ceph 客户,对象存储端点,元数据服务器(根据文件系统的容量)可以有许多,而且至少有一对冗余的监视器。那么,这个文件系统是如何分布的呢?

ceph源码分析之读写操作流程(2)

ceph源码分析之读写操作流程(2) 上一篇介绍了ceph存储在上两层的消息逻辑,这一篇主要介绍一下读写操作在底两层的流程。下图是上一篇消息流程的一个总结。上在ceph中,读写操作由于分布式存储的原因,故走了不同流程。 对于读操作而言: 1.客户端直接计算出存储数据所属于的主osd,直接给主osd 上发送消息。 2.主osd收到消息后,可以调用Filestore直接读取处在底层文件系统中的主pg里面的内容然后返回给客户端。具体调用函数在ReplicatedPG::do_osd_ops中实现。读操作代码流程如图:如我们之前说的,当确定读操作为主osd的消息时(CEPH_MSG_OSD_OP类型),会调用到ReplicatePG::do_osd_op函数,该函数对类型做进一步判断,当发现为读类型(CEPH_OSD_OP_READ)时,会调用FileStore中的函数对磁盘上数据进行读。 [cpp] view plain copy int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops) { …… switch (op.op) { …… case CEPH_OSD_OP_READ: ++ctx->num_read; { // read into a buffer bufferlist

bl; int r = osd->store->read(coll, soid, op.extent.offset, op.extent.length, bl); // 调用FileStore::read从底层文件系统读 取……} case CEPH_OSD_OP_WRITE: ++ctx->num_write; { ……//写操作只是做准备工作,并不实际的 写} ……} } FileStore::read 函数是底层具体的实现,会通过调用系统函数 如::open,::pread,::close等函数来完成具体的操作。[cpp] view plain copy int FileStore::read( coll_t cid, const ghobject_t& oid, uint64_t offset, size_t len, bufferlist& bl, bool allow_eio) { …… int r = lfn_open(cid, oid, false, &fd); …… got = safe_pread(**fd, bptr.c_str(), len, offset); //FileStore::safe_pread中调用了::pread …… lfn_close(fd); ……} 而对于写操作而言,由于要保证数据写入的同步性就会复杂很多: 1.首先客户端会将数据发送给主osd, 2.主osd同样要先进行写操作预处理,完成后它要发送写消息给其他的从osd,让他们对副本pg进行更改, 3.从osd通过FileJournal完成写操作到Journal中后发送消息

7种分布式文件系统介绍

FastDFS (7) Fastdfs简介 (7) Fastdfs系统结构图 (7) FastDFS和mogileFS的对比 (8) MogileFS (10) Mogilefs简介 (10) Mogilefs组成部分 (10) 0)数据库(MySQL)部分 (10) 1)存储节点 (11) 2)trackers(跟踪器) (11) 3)工具 (11) 4)Client (11) Mogilefs的特点 (12) 1. 应用层——没有特殊的组件要求 (12) 2. 无单点失败 (12) 3. 自动的文件复制 (12) 4. “比RAID好多了” (12) 5. 传输中立,无特殊协议 (13) 6.简单的命名空间 (13) 7.不用共享任何东西 (13) 8.不需要RAID (13)

9.不会碰到文件系统本身的不可知情况 (13) HDFS (14) HDFS简介 (14) 特点和目标 (14) 1. 硬件故障 (14) 2. 流式的数据访问 (14) 3. 简单一致性模型 (15) 4. 通信协议 (15) 基本概念 (15) 1. 数据块(block) (15) 2. 元数据节点(Namenode)和数据节点(datanode) . 16 2.1这些结点的用途 (16) 2.2元数据节点文件夹结构 (17) 2.3文件系统命名空间映像文件及修改日志 (18) 2.4从元数据节点的目录结构 (21) 2.5数据节点的目录结构 (21) 文件读写 (22) 1.读取文件 (22) 1.1 读取文件示意图 (22) 1.2 文件读取的过程 (23) 2.写入文件 (24) 2.1 写入文件示意图 (24)

CEPH分布式存储部署要点

CEPH分布式存储部署 PS:本文的所有操作均在mon节点的主机进行,如有变动另有注释 作者:网络技术部徐志权 日期:2014年2月10日 VERSION 1.0 更新历史: 2014.2.10:首次完成ceph部署文档,块设备及对象存储的配置随后添加。

一、部署前网络规划 1.1 环境部署 主机名公网IP(eth0)私网IP(eth1)操作系统运行服务node1 192.168.100.101 172.16.100.101 CentOS6.5 mon、mds node2 192.168.100.102 172.16.100.102 CentOS6.5 osd node3 192.168.100.103 172.16.100.103 CentOS6.5 osd ◆操作系统使用CentOS6.5,因为系统已经包含xfs的支持可以直接使用不需要再次 编译。 ◆由于CentOS6.5系统的内核为2.6.32,因此要关闭硬盘的写入缓存,若高于此版本 不需要关闭。 #hdparm -W 0 /dev/sdb 0 ◆本次部署一共有一个监控节点、一个元数据节点、两个数据节点,每个数据节点拥 有两个硬盘作为数据盘。 1.2 网络拓扑

1.3 配置服务器、安装ceph ●添加ceph的rpm库key #rpm --import 'https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' #rpm --import 'https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc' ●添加ceph-extras库 #vi /etc/yum.repos.d/ceph-extras [ceph-extras] name=Ceph Extras Packages baseurl=https://www.wendangku.net/doc/619537338.html,/packages/ceph-extras/rpm/centos6/$basearch enabled=1 priority=2 gpgcheck=1 type=rpm-md gpgkey=https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc [ceph-extras-noarch] name=Ceph Extras noarch baseurl=https://www.wendangku.net/doc/619537338.html,/packages/ceph-extras/rpm/centos6/noarch enabled=1 priority=2 gpgcheck=1 type=rpm-md gpgkey=https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc [ceph-extras-source] name=Ceph Extras Sources baseurl=https://www.wendangku.net/doc/619537338.html,/packages/ceph-extras/rpm/centos6/SRPMS enabled=1 priority=2 gpgcheck=1 type=rpm-md gpgkey=https://https://www.wendangku.net/doc/619537338.html,/git/?p=ceph.git;a=blob_plain;f=keys/release.asc ●添加ceph库 #rpm -Uvh https://www.wendangku.net/doc/619537338.html,/rpms/el6/noarch/ceph-release-1-0.el6.noarch.rpm ●添加epel库 #rpm -Uvh https://www.wendangku.net/doc/619537338.html,/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm ●安装ceph #yum update -y && yum install ceph -y

(完整版)Ceph分布式存储

Ceph分布式存储系统 Ceph是根据加州大学Santa Cruz分校的Sage Weil的博士论文所设计开发的新一代自由软件分布式文件系统,其设计目标是良好的可扩展性(PB级别以上)、高性能及高可靠性。Ceph其命名和UCSC(Ceph 的诞生地)的吉祥物有关,这个吉祥物是“Sammy”,一个香蕉色的蛞蝓,就是头足类中无壳的软体动物。这些有多触角的头足类动物,是对一个分布式文件系统高度并行的形象比喻。 其设计遵循了三个原则:数据与元数据的分离,动态的分布式的元数据管理,可靠统一的分布式对象存储机制。本文将从Ceph的架构出发,综合性的介绍Ceph分布式文件系统特点及其实现方式。 一、Ceph基本架构 Ceph是一个高可用、易于管理、开源的分布式存储系统,可以在一套系统中同时提供对象存储、块存储以及文件存储服务。其主要由Ceph存储系统的核心RADOS以及块存取接口、对象存取接口和文件系统接口组成,如图所示 Ceph的底层是RADOS,它的意思是“A reliable,autonomous, distributed object storage”。 RADOS作为Ceph分布式文件系统的一个子项目,是为了满足Ceph的需求

而设计的,但是,其也可以单独作为一种分布式数据存储系统,给其他的有类似需求的分布式文件系统提供数据存储服务。Ceph文件系统, Ceph对象存储和Ceph块设备从RADOS的存储集群中读去和写入数据。 Ceph作为一个分布式存储系统,其对外提供的接口,决定了其通用性以及扩展性。如上图架构图中所示的那样,Ceph对外提供了丰富多样的服务接口,包括多种编程语言接口LIBRADOS(备注,上图来自Ceph中文社区,社区人员在翻译的过程中将字母L遗失掉了)、对象存储接口(RADOSGW)、块存储接口(RBD)以及文件系统接口(Ceph FS)。其中LIBRADOS编程接口是其他各种客户端接口的基础,其他接口都是基于LIBRADOS 来进行扩展实现的。 1.1. RADOS Ceph中RADOS(Reliable Autonomic Distributed Object Store)存储集群是所有其他客户端接口使用和部署的基础。RADOS由两个组件组成: ?OSD: Object StorageDevice,提供存储资源。 ?Monitor:维护整个Ceph集群的全局状态。 典型的RADOS部署架构由少量的Monitor监控器以及大量的OSD存储设备组成,它能够在动态变化的基于异质结构的存储设备集群之上提供一种稳定的、可扩展的、高性能的单一逻辑对象存储接口。 RADOS系统的架构如图所示: 我们看到,RADOS不是某种组件,而是由OSD(Object Storage Device)集群和Monitor集群组成。通常,一个RADOS系统中,OSD集群是由大量的智能化的OSD节点组成;Monitor集群是由少量的Monitor节点组成。OSD集群负责存储所有对象的数据。Monitors集群负责管理Ceph集群中所有成员、关系、属性以及数据分发等信息。

ceph学习资料

Ceph分布式存储 1. ceph概念 Ceph作为分布式存储,它有如下特点: ?高扩展性:普通的x86服务器组成的ceph集群,最多支持1000台以上的服务器扩展,并且可以在线扩展。 ?高可靠性:数据容错性高,没有因为单点故障造成的数据丢失;多副本技术,数据安全性更加可靠;自动修复,数据丢失或者部分磁盘故障对全局没影响,不会影响上层的应用,对用户全透明。 ?高性能:数据是均匀分布到每个磁盘上的,读写数据都是有多个osd并发完成的,集群性能理论上来说随着集群节点数和osd的增长而线性增长。 2. ceph架构 2.1 组件

Ceph的底层是RADOS,它的意思是“A reliable, autonomous, distributed object storage”(一个可靠的自治的分布式存储,字面意思哈)。 RADOS系统逻辑架构图: RADOS主要由两个部分组成。一种是大量的、负责完成数据存储和维护功能的OSD(Object Storage Device),另一种则是若干个负责完成系统状态检测和维护的monitor。osd和monitor之间相互传输节点状态信息。 而ceph集群主要包括mon、mds、osd组件 其中,mon负责维护整个集群的状态以及包括crushmap、pgmap、osdmap等一系列map 信息记录与变更。 Osd负责提供数据存储,数据的恢复均衡。 Mds(元数据服务器)主要是使用文件系统存储的时候需要,它主要负责文件数据的inode 信息,并让客户端通过该inode信息快速找到数据实际所在地。 2.2 数据映射流程 在Ceph中,文件都是以object(对象)的方式存放在众多osd上。 一个file(数据)的写入顺序: 首先mon根据map信息将file(数据)切分成多个的object;再通过hash算法决定这些个object对象分别会存放在那些pg(放置组)里面;接下来在通过crushmap再决定将pg放在底层的那些osd上,pg与osd的关系属于一对多的关系。一个osd可以包括多

分布式存储基础、Ceph、cinder及华为软件定义的存储方案

块存储与分布式存储 块存储,简单来说就是提供了块设备存储的接口。通过向内核注册块设备信息,在Linux 中通过lsblk可以得到当前主机上块设备信息列表。 本文包括了单机块存储介绍、分布式存储技术Ceph介绍,云中的块存储Cinder,以及华为软件定义的存储解决方案。 单机块存储 一个硬盘是一个块设备,内核检测到硬盘然后在/dev/下会看到/dev/sda/。因为需要利用一个硬盘来得到不同的分区来做不同的事,通过fdisk工具得到/dev/sda1, /dev/sda2等,这种方式通过直接写入分区表来规定和切分硬盘,是最死板的分区方式。 分布式块存储 在面对极具弹性的存储需求和性能要求下,单机或者独立的SAN越来越不能满足企业的需要。如同数据库系统一样,块存储在scale up的瓶颈下也面临着scale out的需要。 分布式块存储系统具有以下特性: 分布式块存储可以为任何物理机或者虚拟机提供持久化的块存储设备; 分布式块存储系统管理块设备的创建、删除和attach/detach; 分布式块存储支持强大的快照功能,快照可以用来恢复或者创建新的块设备; 分布式存储系统能够提供不同IO性能要求的块设备。 现下主流的分布式块存储有Ceph、AMS ESB、阿里云磁盘与sheepdog等。 1Ceph 1.1Ceph概述 Ceph目前是OpenStack支持的开源块存储实现系统(即Cinder项目backend driver之一) 。Ceph是一种统一的、分布式的存储系统。“统一的”意味着Ceph可以一套存储系统同时提供对象存储、块存储和文件系统存储三种功能,以便在满足不同应用需求的前提下简化部署

RedHat Ceph分布式存储指南-块设备模块

Red Hat Customer Content Services Red Hat Ceph Storage 1.3Ceph Block Device Red Hat Ceph Storage Block Device

Red Hat Ceph Storage 1.3 Ceph Block Device Red Hat Ceph Storage Block Device

Legal Notice Copyright ? 2015 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at https://www.wendangku.net/doc/619537338.html,/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ? is the registered trademark of Linus Torvalds in the United States and other countries. Java ? is a registered trademark of Oracle and/or its affiliates. XFS ? is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ? is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ? is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. The OpenStack ? Word Mark and OpenStack Logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community. All other trademarks are the property of their respective owners. Abstract This document describes how to manage create, configure and use Red Hat Ceph Storage block devices.

Ceph分布式存储平台部署手册

Ceph分布式存储平台 部署手册

目录 1.CEPH的架构介绍 (5) 2.CEPH在OPENSTACK中应用的云存储的整体规划 (6) 3.CEPH集群安装在UBUNTU 12.04 (7) 3.1.配置ceph源7 3.2.依需求修改ceph.conf配置文件7 3.3.设置主机的hosts 9 3.4.设置集群节点之间无密钥访问9 3.5.创建目录10 3.6.创建分区与挂载10 3.7.执行初始化11 3.8.启动ceph 11 3.9.ceph健康检查11 4.CEPH集群安装在CENTOS6.4 (12) 4.1.安装更新源12 4.2.使用rpm安装ceph0.67.4 12 4.3.依需求修改ceph.conf配置文件13 4.4.设置主机的hosts 21 4.5.设置集群节点之间无密钥访问21 4.6.创建目录22 4.7.执行初始化22 4.8.启动ceph 22 4.9.ceph健康检查23

5.OPENSTACK GLANCE 使用CEPH集群的配置 (24) 5.1.创建卷池和图像池24 5.2.增加两个池的复制水平24 5.3.为池创建 Ceph 客户端和密钥环24 5.4.在计算节点应用密钥环24 5.4.1.创建libvirt密钥24 5.4.2.计算节点ceph安装25 5.5.更新你的 glance-api 配置文件25 6.OPENSTACK VOLUMES使用CEPH集群的配置 (27) 6.1.计算节点ceph安装27 6.2.创建临时的 secret.xml 文件27 6.3.设定 libvirt 使用上面的密钥28 6.4.更新 cinder 配置28 6.4.1.cinder.conf文件更改28 6.4.2.更改 cinder 启动脚本配置文件29 6.4.3.更改/etc/nova/nova.conf配置29 6.4.4.重启 cinder 服务29 6.5.验证cinder-volume 29 6.6.验证rdb创建volume 30 7.挂载CEPHFS (31) 7.1.配置/etc/fstab 31 7.2.挂载vm实例目录31 8.FQA (32)

SKY 分布式存储解决方案

XSKY统一存储解决方案 2017.5

研发核心?团队A :来自一线互联网,国内Ceph 社区贡献第一;?团队B :来自IT 领导厂商的存储产品研发。 关于XSKY | 星辰天合 ?总部位于北京,在上海、深圳等地有办事处和研发中心 ?启明创投、北极光创投和红点投资,A 轮前融资额¥7200万, B 轮融资额¥1亿2000万元; ?员工140+人,研发+服务~100+人; ?公司愿景:提供企业就绪的分布式软件定义存储产品,帮助客 户实现数据中心架构革新; ?产品:X-EBS 分布式块存储,X-EOS 分布式对象存储,X-EDP 统一数据平台。XSKY 公司和团队简介 Future Ready SDS 关于公司 ?Ceph 分布式存储技术中国领先者,2016年Ceph 社区中 国贡献率第一 ? 拥有近40个产品专利和软著? 中国开源云联盟理事会员?IDC 重点关注的软件定义存储创业公司

XSKY在ceph 社区的贡献度 3

XSKY如何为Ceph社区贡献源代码 XSKY开源贡献主要集中在NVMe, DPDK/SPDK/RDMA整合,BlueStore,网络 优化,OSD,MON性能优化等等方面。 XSKY为Ceph网络层AsyncMessanger的主 要贡献和维护者。 XSKY2016年10月将Ceph的 InfiniBand/RDMA互联共享给upstream。

产品以Ceph为引擎,构建企业级分布式存储产品 ?企业级接口,FC和iSCSI,多路径 ?高性能,低延时、百亿级文件对象 ?持续服务,高水平SLA和业务QoS保证 ?易运维,全图形化操作,0命令行运维 ?内置数据保护功能,一站式解决数据安全问题 ?完善的社区生态,高速增长的数据服务能力 ?成熟的数据分布算法(CRUSH) ?统一存储API,主流云平台接口 ?软件定义,硬件持续革新 5

Ceph安装部署与测试调优

Ceph安装部署及测试调优

目录 1.熟悉Ceph存储的基本原理与架构 2.掌握Ceph集群的安装部署方法 3.掌握Ceph常见的性能测试调优方法

目录 1.基本概念及架构 2.安装部署 3.测试调优

Ceph是一个统一的分布式存储系统,具有高扩展性、高可靠性、高性能,基于RADOS(reliable, autonomous, distributed object store ),可提供对象存储、块设备存储、文件系统存储三种接口 RADOS:是Ceph集群的精华,为用户实现 数据分配、Failover等集群操作。 LIBRADOS:Librados是RADOS的提供库, 上层的RBD、RGW和CephFS都是通过 LIBRADOS访问的,目前提供PHP、Ruby、 Java、Python、C和C++支持。 RBD:RBD全称RADOS block device,是 Ceph对外提供的块设备服务。 RGW:RGW全称RADOS gateway,是 Ceph对外提供的对象存储服务,接口与S3和 Swift兼容。 CephFS:CephFS全称Ceph File System, 是Ceph对外提供的文件系统服务

OSD :Ceph OSD 进程,功能是负责读写数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors 提供一些监控信息。 Monitor :集群的管理进程,维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组 (PG )图、和CRUSH 图。 MDS :Ceph 元数据服务器,为Ceph 文件系统存储元数据(也就是说,Ceph 块存储和Ceph 对象存储不使用MDS ) 。 Ceph 存储集群

Ceph分布式存储架构深度分析

Ceph分布式存储架构深度分析

本文主要讨论Ceph架构,同时对Ceph生态、特性和企业级存储进行对比分析。 Ceph使用C++语言开发,遵循LGPL协议开源。Sage Weil(Ceph论文发表者)于2011年创立了以Inktank公司主导Ceph的开发和社区维护。2014年Redhat收购inktank公司,并发布InktankCeph 企业版(ICE)软件,业务场景聚焦云、备份和归档,支持对象和块存储应用。从此出现Ceph开源社区版本和Redhat企业版。 Cehp的基础服务架构 Cehp的基础服务架构主要包括了Object Storage Device(OSD),Monitor和MDS。基于此,Ceph提供了Librados原生对象基础库、Librbd块存储库、Librgw基于S3和Swift兼容的对象库和Libceph文件系统库。 OSD(Object Storage Device)负责存储数据,处理数据复制、数据恢复、数据再均衡以及通过心跳机制监测其它OSD状况并报告给Ceph Monitors。 Monitor负责监控集群状态,包括监控自身状态、集群OSD状态、Placement Group(存储组织和位置映射)状态、CRUSH状态(Controlled Replication Under Scalable Hashing,一种伪随机数据分布算法)。同时,Monitor还会记录它们的每一个历史状态改变版本信息,以确定集群该遵循哪个版本。 MDS负责文件系统的元数据存储和管理,也就是如前所说,块存储和对象存储服务是不需要这个模块的。MDS负责提供标准的POSIX文件访问接口。

相关文档
相关文档 最新文档