http://bbs.ceph.org.cn/article/83


1. 构成与预检

————————————————————————————————————————————————

构成

      节点名称 │ 用户名 │  OS版本  │ 机器类型

      管理节点  bees    Ubuntu14.04   Physical

      monitor1  bees    Ubuntu14.04   KVM

       osd1   bees    Ubuntu14.04   KVM

       osd2   bees    Ubuntu14.04   KVM

预检

1. 安装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
$sudoapt-getupdate

问题 1:
bees@monitor1:~$ wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
gpg: no valid OpenPGP data found.
原因:
没有配置wget代理。
解决办法:
配置wget代理。

问题 2:
如果root用户使用wget正常,但是非root用户(本例中是bees用户)使用wget出现问题。
bees@monitor1:/root$ sudo wget -O release.asc https://download.ceph.com/keys ... 05-0916:38:03-- https://download.ceph.com/keys/release.ascX92XResolving download.ceph.com (download.ceph.com)... Failed: No address associated with hostname.

wget: unable to resolve host address download.ceph.com
原因:
在root用户下配置wget代理。
解决办法:
在非root用户下(本例中是bees用户)下配置wget代理。
2. 安装ntp服务并配置(所有节点)
在所有ceph节点上配置ntp,并同步时间。此处为示例。

$sudoapt-getinstallntp
--------------------------------------
#server0.ubuntu.pool.ntp.org
#server1.ubuntu.pool.ntp.org
#server2.ubuntu.pool.ntp.org
#server3.ubuntu.pool.ntp.org
server127.127.1.0

3. 安装ssh服务(所有节点)
$sudoapt-getinstallopenssh-server

4. 无密码访问(管理节点)

• 生成密钥
$ssh-keygen
Generatingpublic/privatekeypair.
Enterfileinwhichtosavethekey(/ceph-admin/.ssh/id_rsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/ceph-admin/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/ceph-admin/.ssh/id_rsa.pub.

• 将公钥拷贝到各个ceph节点
$ssh-copy-idbees@monitor1
$ssh-copy-idbees@osd1
$ssh-copy-idbees@osd2

• 修改管理节点的 ~/.ssh/config 文件,添加如下内容
Hostmonitor1
Hostnamemonitor1
Userbees

Hostosd1
Hostnameosd1
Userbees

Hostosd2
Hostnameosd2
Userbees

5. 修改防火墙规则(所有节点)
• 删除iptables,ubuntu默认不安装firewall。
$ufwdisable
$apt-getremoveiptables

如果有安全需要,推荐制定防火墙规则。
6. 配置apt-get源(所有节点)
/etc/apt/sources.list
----------------------------------
debhttp://archive.ubuntu.com/ubuntu/trustymainrestricteduniversemultiverse
debhttp://archive.ubuntu.com/ubuntu/trusty-securitymainrestricteduniversemultiverse
debhttp://archive.ubuntu.com/ubuntu/trusty-updatesmainrestricteduniversemultiverse
debhttp://archive.ubuntu.com/ubuntu/trusty-proposedmainrestricteduniversemultiverse
debhttp://archive.ubuntu.com/ubuntu/trusty-backportsmainrestricteduniversemultiverse
deb-srchttp://archive.ubuntu.com/ubuntu/trustymainrestricteduniversemultiverse
deb-srchttp://archive.ubuntu.com/ubuntu/trusty-securitymainrestricteduniversemultiverse

7. 配置主机名(所有节点)
/etc/hosts
-----------------------------------
193.168.123.90bees1
193.168.123.67bees2
193.168.123.89osd1
193.168.123.58monitor1
193.168.123.145osd2

2. 快速安装(管理节点)

————————————————————————————————————————————————

1. 创建集群目录,保存ceph-deploy生成的配置文件及密钥对

推荐使用非root用户(本例中是bees用户)创建。
$mkdirmy-cluster
$cdmy-cluster

2. 创建集群

$ceph-deploynewmonitor1

3. 允许两个osd也能达到active clean状态。在当前目录下ceph.conf文件的[global]字段中添加如下内容

osdpooldefaultsize=2

4. 如果有多个网卡,将public network也写入ceph.conf文件的[global]字段中

public_network=193.168.123.0/24

5. 在各个节点上安装ceph

$ceph-deployinstallmonitor1osd1osd2

问题:
Preparing to unpack .../ceph-base_10.2.1-1trusty_amd64.deb ...
Unpacking ceph-base (10.2.1-1trusty) ...
dpkg: error processing archive /var/cache/apt/archives/ceph-base_10.2.1-1trusty_amd64.deb (--unpack):
trying to overwrite '/usr/share/man/man8/ceph-deploy.8.gz',which is also in package ceph-deploy 1.4.0-0ubuntu1
Selecting prevIoUsly unselected package ceph-fs-common.
Preparing to unpack .../ceph-fs-common_10.2.1-1trusty_amd64.deb ...
Unpacking ceph-fs-common (10.2.1-1trusty) ...
Selecting prevIoUsly unselected package ceph-fuse.
Preparing to unpack .../ceph-fuse_10.2.1-1trusty_amd64.deb ...
Unpacking ceph-fuse (10.2.1-1trusty) ...
Selecting prevIoUsly unselected package ceph-mds.
Preparing to unpack .../ceph-mds_10.2.1-1trusty_amd64.deb ...
Unpacking ceph-mds (10.2.1-1trusty) ...
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for man-db (2.6.7.1-1) ...
Errors were encountered while processing:
/var/cache/apt/archives/ceph-base_10.2.1-1trusty_amd64.deb

E: Sub-process /usr/bin/dpkg returned an error code (1)

原因:
之前安装ceph-base包出现问题。
解决办法:
$ dpkg -i --force-overwrite /var/cache/apt/archives/ceph-base_10.2.1-1trusty_amd64.deb
因为之前安装ceph-base包出现问题,现在只能手动下载ceph-base安装包并强制覆盖安装。

6. 初始化monitor节点

$ceph-deploymoncreate-initial

3. 配置osd节点(管理节点)

————————————————————————————————————————————————

1. 为osd守护进程创建所需的磁盘。sdb最为OSD守护进程磁盘,sda作为日志磁盘。

$sshosd1
$sudomkfs.xfs/dev/sda-f
$mkfs.xfs/dev/sdb-f
$exit

$sshosd2
$sudomkfs.xfs/dev/sda-f
$mkfs.xfs/dev/sdb-f
$exit

2. 擦净磁盘,比如分区表等。

$ceph-deploydiskzaposd1:sda
$ceph-deploydiskzaposd1:sdb
$ceph-deploydiskzaposd2:sda
$ceph-deploydiskzaposd2:sdb

3. 准备osd节点

$ceph-deployosdprepareosd1:sdb:/dev/sda
$ceph-deployosdprepareosd2:sdb:/dev/sda

4. 激活osd节点

$ceph-deployosdactivateosd1:/dev/sdb1:/dev/sda1
$ceph-deployosdactivateosd2:/dev/sdb1:/dev/sda1

5. 将配置文件和admin密钥拷贝到ceph所有节点

$ceph-deployadminbees2monitor1osd1osd2

问题:
[ceph_deploy.admin][ERROR ] RuntimeError: config file /etc/ceph/ceph.conf exists with different conte use --overwrite-conf to overwrite
原因:
卸载ceph之后并没有删除管理节点的ceph配置文件,新生成的ceph配置文件和之前的出现差异。
解决办法:
$ ceph-deploy --overwrite-conf admin bees2 monitor1 osd1 osd2
在卸载ceph后,没有删除管理节点的ceph配置,导致新生成的文件和以前的文件内容有所不同。强制覆盖。

6. 添加对ceph.client.admin.keyring 有正确的操作权限

$sudochmod+r/etc/ceph/ceph.client.admin.keyring

7. 检查集群的健康情况,集群应该是active clean状态

$cephhealth
HEALTH_OK
$ceph-s
cluster54356b3d-be17-4d5c-a8b0-804420caa59d
healthHEALTH_OK
monmape1:1monsat{monitor1=193.168.123.58:6789/0}
electionepoch3,quorum0monitor1
osdmape10:2osds:2up,2in
flagssortbitwise
pgmapv23:64pgs,1pools,0bytesdata,0objects
68380kBused,20391MB/20457MBavail
64activeclean

4. 问题一览

————————————————————————————————————————————————
以下问题是发生在
1)使用root用户配置ceph集群。
2)osd守护进程使用ext4格式的磁盘。
的情况。

问题 1

安装好虚拟机之后,设置桥接方式。发现主机A中的虚拟机ping不通主机B。主机B中的虚拟机ping不通主机A。但是主机A和主机是可以相互ping通。

            主机A —————————————— 主机B (可以)

            主机A中的虚拟机 ————————— 主机B (不可以)

            主机A —————————————— 主机B中的虚拟机 (不可以)
* 原因:
公司网络限制。
解决办法
使用公司白名单上的MAC地址。

问题 2

在使用apt-get更新源的时候,出现如下问题。
root@monitor1:/etc/apt#apt-getupdate
E:Methodhttphasdiedunexpectedly!
E:Sub-processhttpreceivedsignal6.
root@monitor1:/etc/apt#
原因:
公司网络限制。
解决办法
使用能够访问外网的MAC地址。

问题 3

使用目录作为osd守护进程。当activate osd设备的时候出现如下错误。
[osd1][WARNIN]2016-05-2216:02:20.4030397f859771e800-1asok(0x7f85a1ffc280)AdminSocketConfigObs::init:Failed:
AdminSocket::bind_and_listen:FailedtobindtheUNIXdomainsocketto'/var/run/ceph/ceph-osd.0.asok':(13)Permissiondenied
[osd1][WARNIN]2016-05-2216:02:20.4036017f859771e800-1filestore(/var/local/osd1)mkfs:write_version_stamp()Failed:(13)Permissiondenied
[osd1][WARNIN]2016-05-2216:02:20.4036307f859771e800-1OSD::mkfs:ObjectStore::mkfsFailedwitherror-13
[osd1][WARNIN]2016-05-2216:02:20.4036827f859771e800-1**ERROR:errorcreatingemptyobjectstorein/var/local/osd1:(13)Permissiondenied
[osd1][WARNIN]Traceback(mostrecentcalllast):
[osd1][WARNIN]File"/usr/sbin/ceph-disk",line9,in<module>
[osd1][WARNIN]load_entry_point('ceph-disk==1.0.0','console_scripts','ceph-disk')()
[osd1][WARNIN]File"/usr/lib/python2.7/dist-packages/ceph_disk/main.py",line4964,inrun
[osd1][WARNIN]main(sys.argv[1:])
[osd1][WARNIN]File"/usr/lib/python2.7/dist-packages/ceph_disk/main.py",line4915,inmain
[osd1][WARNIN]args.func(args)
[osd1][WARNIN]File"/usr/lib/python2.7/dist-packages/ceph_disk/main.py",line3277,inmain_activate
[osd1][WARNIN]init=args.mark_init,
[osd1][WARNIN]File"/usr/lib/python2.7/dist-packages/ceph_disk/main.py",line3097,inactivate_dir
[osd1][WARNIN](osd_id,cluster)=activate(path,activate_key_template,init)
[osd1][WARNIN]File"/usr/lib/python2.7/dist-packages/ceph_disk/main.py",line3202,inactivate
[osd1][WARNIN]keyring=keyring,line2695,inmkfs
[osd1][WARNIN]'--setgroup',get_ceph_group(),line439,incommand_check_call
[osd1][WARNIN]returnsubprocess.check_call(arguments)
[osd1][WARNIN]File"/usr/lib/python2.7/subprocess.py",line540,incheck_call
[osd1][WARNIN]raiseCalledProcessError(retcode,cmd)
[osd1][WARNIN]subprocess.CalledProcessError:Command'['/usr/bin/ceph-osd','--cluster','ceph','--mkfs','--mkkey','-i','0','--monmap','/var/local/osd1/activate.monmap','--osd-data','/var/local/osd1','--osd-journal','/var/local/osd1/journal','--osd-uuid','cb9d8962-75f7-4cb1-8a99-ca8044ee283f','--keyring','/var/local/osd1/keyring','--setuser','--setgroup','ceph']'returnednon-zeroexitstatus1
[osd1][ERROR]RuntimeError:commandreturnednon-zeroexitstatus:1

[ceph_deploy][ERROR]RuntimeError:Failedtoexecutecommand:/usr/sbin/ceph-disk-vactivate--mark-initupstart--mount/var/local/osd1
原因:
对/var/local/osd1没有相关权限。
解决办法:
给/var/local/osd1添加所有权限。
root@osd1:/home/bees#chmod777/var/local/osd1


问题 4

ceph_disk.main.Error:Error:anothercephosd.0alreadymountedinposition(old/differentclusterinstance?);unmountingours.
原因:
在ceph节点上,/var/lib/ceph/osd/目录下的某个osd进程正在使用这个磁盘。
解决办法:
1. 换一个磁盘或者目录。如果还是出现此问题,使用方法2。
2. 删除/var/lib/ceph/osd/目录下使用此磁盘的osd。
如果主机上有多个osd守护进程,注意不要删错了。

问题 5

在查看ceph集群状态的时候,出现如下问题
root@bees2:/home/my-cluster#cephhealth

HEALTH_ERR64pgsarestuckinactiveformorethan300seconds;64pgsstuckinactive
原因:
因为本次osd守护进程所在磁盘格式为ext4。
解决办法:
1. 重新添加一块磁盘,推荐格式化为xfs。
2. 在osd字段下添加 filestore xattr use omap = true。方法2暂未尝试。

问题 6

root@bees2:/home/my-cluster#ceph-s
  cluster15e780dc-f32c-47f8-8105-54a45aaa167d
   healthHEALTH_ERR
      2pgsarestuckinactiveformorethan300seconds
      62pgsdegraded
      64pgsstale
      2pgsstuckstale
      62pgsstuckunclean
      62pgsundersized
   monmape1:1monsat{monitor1=193.168.123.58:6789/0}
      electionepoch9,quorum0monitor1
   osdmape491:2osds:2up,2in;62remappedpgs
      flagssortbitwise
   pgmapv2421:64pgs,0objects
      79208kBused,30620MB/30697MBavail
         62staleactiveundersizeddegraded

         2staleactiveclean
原因:
暂不清楚。
解决办法 卸载ceph并清除配置,并重新安装ceph。给出两点建议 1. 使用普通用户执行ceph-deploy。 2. 最好不要使用ext4的磁盘,推荐使用xfs。

Ubuntu下ceph快速安装QUICK的更多相关文章

  1. iOS推送通知适用于Dev而不是Enterprise Distribution

    本网站上没有其他问题,我已经能够找到实际上提出了Dev将工作的原因,但企业分布不会.为什么归档总是使aps环境生产?

  2. ios – testflight库和Xcode 5没有变化现在说“ld:找不到-lTestFlight的库”

    我已经创建了几个月的应用程序,突然Xcode5不想构建它.它只是抱怨以下错误.如果我理解它可以,它会抱怨testflight,但我几周没有改变它.它完美地编译了它.我不得不说我已经尝试将AdobeADMS跟踪库添加到项目中.然后,出现链接器错误.任何提示?

  3. 如何在ios swift项目中为dev n prod使用两个不同的GoogleService-info.plist文件?

    我需要使用两个不同的GoogleService-info.plist来处理dev和prod构建,目前我只是通过在编辑方案中更改“构建配置”来分离dev和prod,但现在我需要有两个不同的.plist文件dev和prod用于处理谷歌分析,pushwoosh等,解决方法对于这种情况,您需要在Dev和Prod的项目中使用带有diffbundleid的不同Targets.之后,您可以链接GoogleSer

  4. Ceph vs Swift - 架构剖析

    Ceph和Swift,哪种更好?当工程师们讨论存储,谈到Ceph和Swift时,他们通常都一致认为其中一个非常棒,另外一个却很糟糕。另一个原因,也是很多人认为Ceph更好的原因,是Swift不支持块存储和文件存储。Ceph的另一个短板是安全性。一个原因是Ceph只能同步写入,并且要求写入节点达到quorum数才能成功返回。比如,可以使用Ceph作为本地高性能存储,而Swift则作为多地域Glance后台,这时复制很重要而速度并不关键。

  5. openstack学习笔记七 swift安装

    指定映射位置创建ring文件启动服务代维服务proxyserver

  6. openstack安装liberty--安装对象存储服务swift

    通常使用CACHE技術提高性能Accountservers賬戶服務,管理對象存儲中的賬戶定義。Containerservers容器服務,在對象存儲中管理容器或文件夾映……Objectservers對象服務,在存儲節點管理實際的對象,比如文件。Wsgimiddleware處理認證,通常使用OPENSTACKIdentityswiftclient為用戶提供命令行接口使用RESTAPIswift-init初始化和構建RING文件腳本swift-recon一個命令行工具,用於檢索群集的各種度量和測試信息。

  7. Ceph部署二RGW搭建

    背景CephRGW简介CephRGW基于librados,是为应用提供RESTful类型的对象存储接口。环境规划如上篇文章《Ceph部署(一)集群搭建》所述:4台服务器:1台作为Monitor,1台作为OSDRGW,还有两台作为OSD。部署CephRGW进入上文所述的my-cluster目录。该脚本会连接RGW,创建一个bucket并列出所有的bucket。正常的输出应该为:小结通过ceph-deploy命令,已经大大地简化了对Ceph集群和RGW的安装和配置。但如果想挑战下自己,或者想让自己了解更多,试

  8. (Cross-)编译Swift for Raspberry PI

    Swift现在是开源的.有没有人试过编译Swift的RaspBerryPI?我开始做,但我的8GBSD卡似乎太小了;)是否可以从Ubuntu交叉编译?写Swift打开你最喜欢的文本编辑器,编写一个程序并保存它:编译它并运行它:而已!

  9. Swift 3 dev快照中的POST请求给出了“对成员’dataTask的模糊引用(with:completionHandler :)’

    编辑:我注意到有人在我之后写了这个问题的副本.这里的答案是更好的答案.使用URLRequest结构.在Xcode8中工作正常:另外,出现此错误的原因是URLSessionAPI具有相同的名称方法,但每个都采用不同的参数.因此,如果没有明确的演员,API将会混淆.我认为这是API的命名错误.发生此问题,代码如下:

  10. 将我的Android应用程序签名为系统应用程序

    将我的Android应用程序签名为系统应用程序在我的公司,我们希望在现场完全控制电池消耗,仅使用2g和gps可以快速耗尽电池.我们的决定是我们需要拥有移动电话的root权限,这样当手机闲置时,我们就会关掉那些不必要的电池消耗.而且我们也不允许用户将其卸载并清除数据.我的问题是:>我从哪里获得这些签名密钥?>它是否会像root访问权限一样如果我成功地成功了签字?

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部