最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

CEPH分布式存储部署要点

来源:动视网 责编:小OO 时间:2025-09-30 01:19:56
文档

CEPH分布式存储部署要点

CEPH分布式存储部署PS:本文的所有操作均在mon节点的主机进行,如有变动另有注释作者:网络技术部徐志权日期:2014年2月10日VERSION1.0更新历史:2014.2.10:首次完成ceph部署文档,块设备及对象存储的配置随后添加。一、部署前网络规划1.1环境部署主机名公网IP(eth0)私网IP(eth1)操作系统运行服务node1192.168.100.101172.16.100.101CentOS6.5mon、mdsnode2192.168.100.102172.16.100.1
推荐度:
导读CEPH分布式存储部署PS:本文的所有操作均在mon节点的主机进行,如有变动另有注释作者:网络技术部徐志权日期:2014年2月10日VERSION1.0更新历史:2014.2.10:首次完成ceph部署文档,块设备及对象存储的配置随后添加。一、部署前网络规划1.1环境部署主机名公网IP(eth0)私网IP(eth1)操作系统运行服务node1192.168.100.101172.16.100.101CentOS6.5mon、mdsnode2192.168.100.102172.16.100.1
CEPH分布式存储部署

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

作者:网络技术部 徐志权

日期:2014年2月10日

VERSION 1.0

更新历史:

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

一、部署前网络规划

1.1 环境部署

主机名公网IP(eth0)

私网IP(eth1)

操作系统运行服务
node1192.168.100.101172.16.100.101CentOS6.5mon、mds

node2192.168.100.102172.16.100.102CentOS6.5osd
node3192.168.100.103172.16.100.103CentOS6.5osd
◆操作系统使用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://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc'

#rpm --import 'https://ceph.com/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=http://ceph.com/packages/ceph-extras/rpm/centos6/$basearch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

[ceph-extras-noarch]

name=Ceph Extras noarch

baseurl=http://ceph.com/packages/ceph-extras/rpm/centos6/noarch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

[ceph-extras-source]

name=Ceph Extras Sources

baseurl=http://ceph.com/packages/ceph-extras/rpm/centos6/SRPMS

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
●添加ceph库

#rpm -Uvh http://ceph.com/rpms/el6/noarch/ceph-release-1-0.el6.noarch.rpm

●添加epel库

#rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_/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-4e-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:67

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-4e-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:67/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      13     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:67

检查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://www.kernel.org/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_ ./.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/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/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:67 /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      13     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:67

4.2.1启动新的mon

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

五、检查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 --base $(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分布式存储部署PS:本文的所有操作均在mon节点的主机进行,如有变动另有注释作者:网络技术部徐志权日期:2014年2月10日VERSION1.0更新历史:2014.2.10:首次完成ceph部署文档,块设备及对象存储的配置随后添加。一、部署前网络规划1.1环境部署主机名公网IP(eth0)私网IP(eth1)操作系统运行服务node1192.168.100.101172.16.100.101CentOS6.5mon、mdsnode2192.168.100.102172.16.100.1
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top