ceph节点2t硬盘如何分区合理较为合理

目前项目所用的ceph集群内部的一个节点, 一般需要管理大约十块硬盘左右的数据存储空间,外加一到两块ssd组成的journal空间。Ceph要求每个osd对应的数据盘挂载到特定的目录,对应的ssd的journal分区也不能加载错,否则osd 无法启动。
目前对于数据盘的挂载采用的是基于/etc/fstab的方式。
上图是某个节点的/etc/fstab的实例。/dev/slot* 是一个由diskctl_init.sh 脚本产生的从/dev/slot* 到/dev/sdx的映射。如下图所示。
Diskctl_init.sh的原理是生成的slot 与主板物理槽位磁盘接口形成固定映射,这样当盘符漂移的时候,/dev/slot* 始终对应物理槽位的磁盘。只要磁盘不插拔更换物理槽位,osd 就能加载正确的数据盘。
而对于ssd journal分区,则是直接采用的journalà盘符的裸映射。
存在的问题:
1.&&&&&&Ssd journal分区的盘符裸映射, 有时候会导致机器重启,ceph服务起不来。测试发现,正是由于盘符漂移,裸映射成为死链。
2.&&&&&&Diskctl_init.sh 生成的slot 映射, 据同事反映,也可能有潜在的问题。具体细节不详。
二,调研ceph-disk
Ceph-disk 是官方发布的一个用于部署osd 数据及journal分区或目录的工具。基于python.安装ceph rpm包将默认安装此工具,安装目录是/usr/sbin/ceph-disk。由于此工具涉及数据盘及journal盘的分区。需要root权限。
ceph-disk 是如何工作的?
通过ceph-disk 部署osd, 数据分区和journal 分区将自动挂载到正确的目录,机器重启也能保证工作。通过ceph-disk部署osd, 将大大提高ceph部署运维的自动化程度,并降低操作出错几率。
以新创建OSD为例,描述ceph-disk的工作机制。
分为两大步骤:prepare disk 和activate disk
假设/dev/sdg是OSD要使用的数据盘, /dev/sdk 是SSD, OSD要使用的journal分区在这里创建。则创建OSD 并上线的命令如下:
Ceph-disk prepare /dev/sdg /dev/sdk
Ceph-disk activate /dev/sdg1
下面详细深入其过程。
1.&&&&&&准备journal分区。
Prepare_journal_dev()调用分区工具sgdisk从/dev/sdk上划分一块journal分区。
有以下注意要点:
a.&&&&&&在调用sgdisk之前,prepare_journal_dev()会获取ceph.conf文件中指定的osd_journal_size大小,我们的ceph.conf指定大小如下:
b.&&&&&&实际部署环境中,由于作为journal的ssd分区并不需要很大空间,所以一个ssd很可能被多个osd共享来划分各自的journal分区,我们的环境是,一个300G的ssd 划分成5个(甚至更多的)20G的分区,挂载成5个osd的journal.
c.&&&&&&Ceph-disk 在部署journal分区的时候,能自动侦测SSD盘已有分区数,不破坏已有分区,分配不冲突的新分区号来创建分区。
d.&&&&&&如果不指定创建分区的uuid,ceph-disk会自动为journal分区生成一个,称之为journal_uuid.
e.&&&&&&在调用sgdisk的时候,还有一个重要的参数,--typecode. Ceph-disk 使用一个特殊的UUID 作为创建journal的typecode:
至于为何用此特殊UUID做typecode, 基本上此UUID可作为辨识分区为ceph journal的凭证,稍后深入解释。
至此,prepare_journal_dev()已经准备好了sgdisk所需的各个参数,下面给出一个实际发生的参数例子:
/usr/sbin/sgdisk --new=6:0:+20480M--change-name="6:ceph journal" --partition-guid=6:c0-f43c6cdd9fa--typecode=6:45b-4f30-b4c6-b4b80ceff106 --mbrtogpt -- /dev/sdk
2.&&&&&&在目录/dev/disk/by-partuuid/下为此journal分区创建link:
简单介绍一下这个link如何产生的。
在调用sgdisk 创建完journal分区后,ceph-disk 调用partx更新分区表,会触发一个块设备/分区udev event并通知到内核。Ceph编写了udev规则文件如下:
Udev daemon在收到由partx产生的udev event后,根据以上的ceph规则文件,将调用/usr/sbin/ceph-disk-udev脚本。正是在这个脚本里,在目录/dev/disk/by-partuuid/下为此journal分区创建了link。此脚本还有另外一个扫描OSD专属分区的功能,后文会提及。暂时不表。
这个link有什么用?
由于这个link是根据partition uuid生成的,可以把它看成是到特定journal分区的固定映射。后文会指出osd的journal将映射到此link:
由此图看出,位于osd 数据分区里的journal是一个link,指向一个固定的位置:/dev/disk/by-partuuid/c0-f43c6cdd9fa, 再由这个link指向真正的journal分区,由此解决的盘符漂移带来的问题。下文介绍的osd 数据分区的link也是基于此原理。
3.&&&&&&准备OSD数据分区。
这个过程跟准备journal分区大体一样。区别在于:
a.&&&&&&调用sgdisk 使用—largest-new来使用磁盘最大可能空间。所以/dev/sdg会有一个分区sdg1,它使用所有的空间。
b.&&&&&&格式化/dev/sdg1。这里对ceph-disk做了小的定制,默认使用了ext4分区格式。
c.&&&&&&将此分区mount到一个临时的目录,然后再其中创建一个名为journal的link,指向/dev/disk/by-partuuid/c0-f43c6cdd9fa。至此,OSD的journal分区映射完成。最后umount。
d.&&&&&&再次调用sgdisk,写入一个重要的参数,--typecode. Ceph-disk 使用一个特殊的UUID 作为创建OSD的typecode:
同JOURNAL_UUID, 为何用此特殊UUID做typecode, 是因为此UUID可作为辨识分区为ceph OSD数据分区的凭证,稍后深入解释。
4.&&&&&&在目录/dev/disk/by-partuuid/下为此OSD 数据分区创建link。
过程同journal的link创建过程。
5.&&&&&&Activate过程。
Activate的命令是 ceph-disk activate /dev/sdg1。
但其实并不需要显式的调用这个命令。原因是,准备好OSD 数据分区后,udev event 触发了ceph-disk-udev。而ceph-disk-udev会自动调用ceph-disk activate /dev/sdg1。
下面介绍这个过程是如何自动化的。详情参见ceph-disk-udev脚本。
新的OSD 数据分区的生成,触发udev event, 通过ceph udev rule,最终调用ceph-disk-udev,分析该分区的typecode,发现是OSD_UUID,即表明是ceph OSD的数据分区,于是触发ceph-disk activate /dev/sdg1:
Typecode 为JOURNAL_UUID的情况也一样,只不过是通过ceph-disk activate-journal 来启动OSD.
在介绍ceph-disk activate /dev/sdg1的具体流程。
a.&&&&&&将/dev/sdg1 挂载至临时目录,一般为var/lib/ceph/tmp/mnt.xxx
b.&&&&&&分配OSD id,及调用ceph osd create 产生 osd id
c.&&&&&&初始化OSD, 如ceph-osd –mkfs –osd-data –osd-journal
d.&&&&&&根据osd id 重新挂载到最终目录: var/lib/{cluster}/osd/ceph-{osd.id}
e.&&&&&&Service ceph start osd
对于osd id 已经存在,重启osd的case,也会用到ceph-disk activate,这种情况稍有不同,不需要产生新的osd id,只需要将/dev/sdg1挂载至临时目录,获取osd id后,重新挂载到最终目录。
Ceph-disk 支持的其他命令如下:
&&& prepare&&&&&&&&&&&& Prepare a directory or disk for aCeph OSD
&&& activate&&&&&&&&&&& Activate a Ceph OSD
&&& activate-journal&&& Activate an OSD via its journal device
&&& activate-all&&&&&&& Activate all tagged OSD partitions
&&& list&&&&&&&&&&&&&&& List disks, partitions, and CephOSDs
&&& suppress-activate&& Suppress activate on a device (prefix)
&&& unsuppress-activate
&&&&&&&&&&&&&&&&&&&&&&& Stop suppressingactivate on a device (prefix)
&&& zap&&&&&&&&&&&&&&&& Zap/erase/destroy a device'spartition table (and
&&&&&&&&&&&&&&& &&&&&&&&contents)
特别强调几点:
a.&&&&&&Suppress的字面意思就是抑制,用在这里的意图主要是,如果只想prepare各个分区,暂时不想activate OSD(创建osd 上线),可以使用此命令,等到所有的分区都prepare好了,unsuppress 一把,再activate-all.
b.&&&&&&Activate-journal 是通过制定journal 分区来启动osd, 如:ceph-diskactivate-journal /dev/sdk6. Ceph-disk 执行的流程为:
通过 ceph-osd -i 0 --get-journal-uuid --osd-journal /dev/sdk6 返回osd_uuid. 有了osd_uuid,就能找到osd 数据分区了,即定位/dev/disk/by-partuuid/$osd_uuid,这样就回到了使用osd 数据分区来activate的命令逻辑,即ceph-disk activate /dev/sdg1。
这里要解释 为什么是ceph-osd-i 0?在此条命令中, -i 后面可以跟任何一个整数,在get-journal-uuid中会被忽略。但问题是,不加-i, ceph-osd格式检查就会报错。
还有就是—get-journal-uuid,字面意思好像是获取journal分区的uuid,但实际上返回的一个叫journal.header 结构体里的fsid. 此fsid的值就是 osd 数据分区的uuid. 所以命令ceph-osd -i 0 --get-journal-uuid --osd-journal /dev/sdk6 返回值是osd_uuid。不得不抱怨一把,这个命令太容易让人产生混乱。理清逻辑是从源码中分析得来的。从这个小问题可以看出开源软件比起商业软件,细处略显粗糙,还需精细打磨。
c.&&&&&&如果prepare不显式指定 journal, 如 ceph-disk prepare /dev/sdg, 则处理逻辑为:
在sdg上划出两个分区,sdg2 为20G的journal分区,sdg1为剩下空间大小的osd 数据分区。
Ceph-disk的定制:
1.&&&&&&default fstype ext4
2.&&&&&&keyring的问题,由于目前的ceph部署没有enablekeyring,所以屏蔽了相关代码。
ceph-disk –v将打印更详细的log, 如果想深入理解ceph-disk命令的运行过程,此参数非常有效。
权限问题:
chmod -R 777/home/ceph/software/ceph/var/lib/ceph/osd/ceph-*
删除OSD产生的死链问题。
阅读(...) 评论()Ubuntu下Ceph单节点和多节点安装小结 - ubuntu-ceph- - ITkeyowrd
Ubuntu下Ceph单节点和多节点安装小结
推荐:http://www.openstack.org.cn/bbs/forum.phpmod=viewthread&tid=264 一、安装环境: 代理节点: Ubuntu 11.04 server hostname:proxy eht0:192.168.2.220 e
领取地址:
Ubuntu下Ceph单节点和多节点安装小结
1&&&&&&概述
Ceph是一个分布式文件系统,在维持POSIX兼容性的同时加入了复制和容错功能。Ceph最大的特点是分布式的元数据服务器,通过CRUSH(Controlled Replication Under Scalable Hashing)这种拟算法来分配文件的location。Ceph的核心是RADOS(ReliableAutonomic Distributed Object Store),一个对象集群存储,本身提供对象的高可用、错误检测和修复功能。
Ceph生态系统架构可以划分为四部分:
client:客户端(数据用户)。client向外export出一个POSIX文件系统接口,供应用程序调用,并连接mon/mds/osd,进行元数据及数据交互;最原始的client使用FUSE来实现的,现在写到内核里面了,需要编译一个ceph.ko内核模块才能使用。
mon:集群监视器,其对应的daemon程序为cmon(Ceph Monitor)。mon监视和管理整个集群,对客户端export出一个网络文件系统,客户端可以通过mount -t ceph monitor_ip:/ mount_point命令来挂载Ceph文件系统。根据官方的说法,3个mon可以保证集群的可靠性。
mds:元数据服务器,其对应的daemon程序为cmds(Ceph Metadata Server)。Ceph里可以有多个MDS组成分布式元数据服务器集群,就会涉及到Ceph中动态目录分割来进行负载均衡。
osd:对象存储集群,其对应的daemon程序为cosd(Ceph Object StorageDevice)。osd将本地文件系统封装一层,对外提供对象存储的接口,将数据和元数据作为对象存储。这里本地的文件系统可以是ext2/3,但Ceph认为这些文件系统并不能适应osd特殊的访问模式,它们之前自己实现了ebofs,而现在Ceph转用btrfs。
Ceph支持成百上千甚至更多的节点,以上四个部分最好分布在不同的节点上。当然,对于基本的测试,可以把mon和mds装在一个节点上,也可以把四个部分全都部署在同一个节点上。
2&&&&&& 环境准备
2.1&&&&&&&&版本
Linux系统版本:Ubuntu Server 12.04.1 LTS;
Ceph版本:0.72.2(稍后安装);
2.2&&&&&&&&更新source(可选步骤)
“网速较慢”或者“安装软件失败”的情况下,可以考虑替换成国内的镜像:
# sudo sed -i's#us.archive.ubuntu.com#mirrors.163.com#g' /etc/apt/sources.list
# sudo apt-get update
Ubuntu 12.04默认的Ceph版本为0.41,如果希望安装较新的Ceph版本,可以添加key到APT中,更新sources.list:
# sudo wget -q -O- 'https://ceph.com/git/?p=ceph.a=blob_f=keys/release.asc'| sudo apt-key add -
# sudo echo deb http://ceph.com/debian/ $(lsb_release -sc) main | sudo tee/etc/apt/sources.list.d/ceph.list
# sudo apt-get update
2.3&&&&&&&&系统时间
# date&# 查看系统时间是否正确,正确的话则忽略下面两步
# sudo date -s &5:05:57& # 设置系统时间
# sudo hwclock -w # 写入硬件时间
2.4&&&&&&&&关闭防火墙
请确保已关闭SELinux(Ubuntu默认未开启)。
另外,建议关闭防火墙:
# sudo ufw disable # 关闭防火墙
3&&&&&& Ceph单节点安装
3.1&&&&&&&&节点IP
192.168.73.129(hostname为ceph1,有两个分区/dev/sdb1和/dev/sdb2提供给osd,另外还安装了client/mon/mds);
3.2&&&&&&&&安装Ceph库
# apt-get install ceph ceph-common ceph-mds
# ceph -v # 将显示ceph的版本和key信息
3.3&&&&&&&&创建Ceph配置文件
# vim /etc/ceph/ceph.conf
&&& max open files = 131072
&&& #For version 0.55 and beyond, you must explicitly enable&
&&& #or disable authentication with &auth& entries in [global].
&&& auth cluster required = none
&&& auth service required = none
&&&auth client required = none
&&&osd journal size = 1000
&&&#The following assumes ext4 filesystem.
filestore xattruse omap = true
&&& #For Bobtail (v 0.56) and subsequent versions, you may&
&&& #add settings for mkcephfs so that it will create and mount
&&& #the file system on a particular OSD for you. Remove the comment `#`&
&&& #character for the following settings and replace the values&
&&& #in braces with appropriate values, or leave the following settings&
&&& #commented out to accept the default values. You must specify the&
&&& #--mkfs option with mkcephfs in order for the deployment script to&
&&& #utilize the following settings, and you must define the 'devs'
&&& #option f see below.
&&&osd mkfs type = xfs
&&&osd mkfs options xfs = -f&& #default for xfs is &-f&
&&&osd mount options xfs = rw,noatime # default mount option is&rw,noatime&
&&& #For example, for ext4, the mount option might look like this:
&&&#osd mkfs options ext4 = user_xattr,rw,noatime
&&& #Execute $ hostname to retrieve the name of your host,
&&& #and replace {hostname} with the name of your host.
&&& #For the monitor, replace {ip-address} with the IP
&&& #address of your host.
&&&host = ceph1
&& &mon addr = 192.168.73.129:6789
&&&host = ceph1
&&& #For Bobtail (v 0.56) and subsequent versions, you may&
&&& #add settings for mkcephfs so that it will create and mount
&&& #the file system on a particular OSD for you. Remove the comment `#`
&&& #character for the following setting for each OSD and specify
&&& #a path to the device if you use mkcephfs with the --mkfs option.
&&&devs = /dev/sdb1
&&& host= ceph1
&&& devs= /dev/sdb2
&&& host= ceph1
注意,对于较低的Ceph版本(例如0.42),需要在[mon]项下添加一行内容:mondata = /data/$name,以及在[osd]项下添加一行内容:osd data = /data/$name,以作为后续的数据目录;相应的,后续针对数据目录的步骤也需要调整。
3.4&&&&&&&&创建数据目录
# mkdir -p /var/lib/ceph/osd/ceph-0
# mkdir -p /var/lib/ceph/osd/ceph-1
# mkdir -p /var/lib/ceph/mon/ceph-a
# mkdir -p /var/lib/ceph/mds/ceph-a
3.5&&&&&&&&为osd创建分区和挂载
对新分区进行xfs或者btrfs的格式化:
# mkfs.xfs -f /dev/sdb1
# mkfs.xfs -f /dev/sdb2
第一次必须先挂载分区写入初始化数据:
# mount /dev/sdb1 /var/lib/ceph/osd/ceph-0
# mount /dev/sdb2 /var/lib/ceph/osd/ceph-1
3.6&&&&&&&&执行初始化
注意,每次执行初始化之前,都需要先停止Ceph服务,并清空原有数据目录:
# /etc/init.d/ceph stop
# rm -rf /var/lib/ceph/*/ceph-*/*
然后,就可以在mon所在的节点上执行初始化了:
# sudo mkcephfs -a -c /etc/ceph/ceph.conf -k /etc/ceph/ceph1.keyring
注意,一旦配置文件ceph.conf发生改变,初始化最好重新执行一遍。
3.7&&&&&&&&启动Ceph服务
在mon所在的节点上执行:
# sudo service ceph -a start
注意,执行上面这步时,可能会遇到如下提示:
=== osd.0 ===
Mounting xfs onceph4:/var/lib/ceph/osd/ceph-0
Error ENOENT: osd.0 does not exist.& create it before updating the crush map
执行如下命令后,再重复执行上面那条启动服务的命令,就可以解决:
# ceph osd create
3.8&&&&&&&&执行健康检查
# sudo ceph health # 也可以使用ceph -s命令查看状态
如果返回的是HEALTH_OK,则代表成功!
注意,如果遇到如下提示:
HEALTH_WARN 576 576 no osds
或者遇到如下提示:
HEALTH_WARN 178 178 429 recovery 2/24 objects degraded(8.333%)
执行如下命令,就可以解决:
# ceph pg dump_stuck stale && ceph pg dump_stuck inactive && ceph pg dump_stuck unclean
如果遇到如下提示:
HEALTH_WARN 384 384 recovery 21/42degraded (50.000%)
则说明osd数量不够,Ceph默认至少需要提供两个osd。
3.9&&&&&&&&Ceph测试
客户端挂载mon所在的节点:
# sudo mkdir /mnt/mycephfs
# sudo mount -t ceph 192.168.73.129:6789:/ /mnt/mycephfs
客户端验证:
# df -h #如果能查看到/mnt/mycephfs的使用情况,则说明Ceph安装成功。
4&&&&&& Ceph多节点安装
对于多节点的情况,Ceph有如下要求:
修改各自的hostname,并能够通过hostname来互相访问。
各节点能够ssh互相访问而不输入密码(通过ssh-keygen命令)。
4.1&&&&&&&&节点IP
192.168.73.129(hostname为ceph1,有一个分区/dev/sdb1提供给osd);
192.168.73.130(hostname为ceph2,有一个分区/dev/sdb1提供给osd);
192.168.73.131(hostname为ceph3,安装了client/mon/mds);
4.2&&&&&&&&配置主机名
在每个节点上设置相应的主机名,例如: 推荐:摘要:本文记录了Hadoop2.2.0版本多节点集群安装过程,并做了基本配置,启动运行和测试了一个单词统计例子。
环境说明: 基于Windows下的VMware Player4.0.3中
# vim /etc/hostname
修改/etc/hosts,增加如下几行:
192.168.73.129& ceph1
192.168.73.130& ceph2
192.168.73.131& ceph3
4.3&&&&&&&&配置免密码访问
在每个节点上创建RSA秘钥:
# ssh-keygen -t rsa # 一直按确定键即可
# touch /root/.ssh/authorized_keys
先配置ceph1,这样ceph1就可以无密码访问ceph2和ceph3了:
ceph1# scp /root/.ssh/id_rsa.pub ceph2:/root/.ssh/id_rsa.pub_ceph1
ceph1# scp /root/.ssh/id_rsa.pub ceph3:/root/.ssh/id_rsa.pub_ceph1
ceph1# ssh ceph2 &cat /root/.ssh/id_rsa.pub_ceph1&& /root/.ssh/authorized_keys&
ceph1# ssh ceph3 &cat /root/.ssh/id_rsa.pub_ceph1 && /root/.ssh/authorized_keys&
节点ceph2和ceph3也需要参照上面的命令进行配置。
4.4&&&&&&&&安装Ceph库
在每个节点上安装Ceph库:
# apt-get install ceph ceph-common ceph-mds
# ceph -v # 将显示ceph的版本和key信息
4.5&&&&&&&&创建Ceph配置文件
# vim /etc/ceph/ceph.conf
max open files = 131072
&&& #For version 0.55 and beyond, you must explicitly enable&
&&& #or disable authentication with &auth& entries in [global].
&&& auth cluster required = none
&&& auth service required = none
&&&auth client required = none
&&&osd journal size = 1000
&&&#The following assumes ext4 filesystem.
filestore xattruse omap = true
&&& #For Bobtail (v 0.56) and subsequent versions, you may&
&&& #add settings for mkcephfs so that it will create and mount
&&& #the file system on a particular OSD for you. Remove the comment `#`&
&&& #character for the following settings and replace the values&
&&& #in braces with appropriate values, or leave the following settings&
&&& #commented out to accept the default values. You must specify the&
&&& #--mkfs option with mkcephfs in order for the deployment script to&
&&& #utilize the following settings, and you must define the 'devs'
&&& #option f see below.
&&&osd mkfs type = xfs
&&&osd mkfs options xfs = -f&& #default for xfs is &-f&
&&&osd mount options xfs = rw,noatime # default mount option is&rw,noatime&
&&& #For example, for ext4, the mount option might look like this:
&&&#osd mkfs options ext4 = user_xattr,rw,noatime
&&& #Execute $ hostname to retrieve the name of your host,
&&& #and replace {hostname} with the name of your host.
&&& #For the monitor, replace {ip-address} with the IP
&&& #address of your host.
&&&host = ceph3
&& &mon addr = 192.168.73.131:6789
&&&host = ceph1
&&& #For Bobtail (v 0.56) and subsequent versions, you may&
&&& #add settings for mkcephfs so that it will create and mount
&&& #the file system on a particular OSD for you. Remove the comment `#`
&&& #character for the following setting for each OSD and specify
&&& #a path to the device if you use mkcephfs with the --mkfs option.
&&&devs = /dev/sdb1
&&&host = ceph2
&&& devs= /dev/sdb1
&&&host = ceph3
配置文件创建成功之后,还需要拷贝到除纯客户端之外的每个节点中(并且后续也要始终保持一致):
ceph1# scp /etc/ceph/ceph.conf ceph2:/etc/ceph/ceph.conf
ceph1# scp /etc/ceph/ceph.conf ceph3:/etc/ceph/ceph.conf
4.6&&&&&&&&创建数据目录
在每个节点上创建数据目录:
# mkdir -p /var/lib/ceph/osd/ceph-0
# mkdir -p /var/lib/ceph/osd/ceph-1
# mkdir -p /var/lib/ceph/mon/ceph-a
# mkdir -p /var/lib/ceph/mds/ceph-a
4.7&&&&&&&&为osd创建分区和挂载
对于osd所在的节点ceph1和ceph2,需要对新分区进行xfs或者btrfs的格式化:
# mkfs.xfs -f /dev/sdb1
对于节点ceph1和ceph2,第一次必须先分别挂载分区写入初始化数据:
ceph1# mount /dev/sdb1 /var/lib/ceph/osd/ceph-0
ceph2# mount /dev/sdb1 /var/lib/ceph/osd/ceph-1
4.8&&&&&&&&执行初始化
注意,每次执行初始化之前,都需要在每个节点上先停止Ceph服务,并清空原有数据目录:
# /etc/init.d/ceph stop
# rm -rf /var/lib/ceph/*/ceph-*/*
然后,就可以在mon所在的节点ceph3上执行初始化了:
# sudo mkcephfs -a -c /etc/ceph/ceph.conf -k /etc/ceph/ceph3.keyring
注意,一旦配置文件ceph.conf发生改变,初始化最好重新执行一遍。
4.9&&&&&&&&启动Ceph服务
在mon所在的节点ceph3上执行:
# sudo service ceph -a start
注意,执行上面这步时,可能会遇到如下提示:
=== osd.0 ===
Mounting xfs onceph4:/var/lib/ceph/osd/ceph-0
Error ENOENT: osd.0 does not exist.& create it before updating the crush map
执行如下命令后,再重复执行上面那条启动服务的命令,就可以解决:
# ceph osd create
4.10&&&& 执行健康检查
# sudo ceph health # 也可以使用ceph -s命令查看状态
如果返回的是HEALTH_OK,则代表成功!
注意,如果遇到如下提示:
HEALTH_WARN 576 576 no osds
或者遇到如下提示:
HEALTH_WARN 178 178 429 recovery 2/24 objects degraded(8.333%)
执行如下命令,就可以解决:
# ceph pg dump_stuck stale && cephpg dump_stuck inactive && ceph pg dump_stuck unclean
如果遇到如下提示:
HEALTH_WARN 384 384 recovery 21/42degraded (50.000%)
则说明osd数量不够,Ceph默认至少需要提供两个osd。
4.11&&&& Ceph测试
客户端(节点ceph3)挂载mon所在的节点(节点ceph3):
# sudo mkdir /mnt/mycephfs
# sudo mount -t ceph 192.168.73.131:6789:/ /mnt/mycephfs
客户端验证:
# df -h #如果能查看到/mnt/mycephfs的使用情况,则说明Ceph安装成功。
5&&&&&&参考资料
1) 《Ceph:一个 Linux PB 级分布式文件系统》,
2) 《Ubuntu 12.04 Ceph分布式文件系统之部署》,
3) 《How To Install CephOn FC12, FC上安装Ceph分布式文件系统》,
4) 《Ceph配置说明书》,
推荐:1、集群部署介绍 1.1 Hadoop简介
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesystem)和MapR
Ubuntu下Ceph单节点和多节点安装小结 崔炳华 日 1
概述 Ceph是一个分布式文件系统,在维持POSIX兼容性的同时加入了复制和容错功能。Ceph最大的特点是分布式的元数据服务器,通
相关阅读排行
相关内容推荐
请激活账号
为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。
您的注册邮箱:
如果您没有收到激活邮件,请注意检查垃圾箱。

我要回帖

更多关于 硬盘怎么分区合理 的文章

 

随机推荐