如何部署一个3节点的cephmongodb3.2 集群部署

Ceph部署 - 推酷
Centos7下 ceph部署:
首先获得相应的部署资源,多台主机或相应数量的虚拟机资源
Ip&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & hostname&&& & &&&&&&&&&&&&&&&&&&&&&& 节点
10.10.21.54&&&&&&&&&&&&&&&&&&&&&&& admin&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 部署管理节点
10.10.21.55&&&&&&&&&&&&&&&&&&&&&&& node1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& MON节点
10.10.21.56&&&&&&&&&&&&&&&&&&&&&&& node2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& OSD0节点
10.10.21.57&&&&&&&&&&&&&&&&&&&&&&& node3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& OSD1节点
查看基本网络配置信息,尝试
连外网如:
问题1:执行ifconfig命令,无相应的输出响应
一般纯净的Centos7系统会出现上述这个问题
显示:ifconfig Command not found
解决:下载相应的NET管理工具:net-tools
那么首先需要在/etc/yum.repo/目录下创建如:Centos-local.repo的源库下载脚本
注:若当前源库目录下有其它的脚本,则最好将上图示priority置0 使之遍历优先级最高
然后执行 # yum install net-tools*
最后执行 ifconfig命令便可看到熟悉的信息:
问题2:ping
不通,即不能实现外网链接
解决:若是企业有MAC限制,想在公司上外网,首先解决MAC限制,若是虚拟机不能有MAC冲突的问题。之后还不能实现外网链接,则需添加DNS解析
首先:vi /etc/sysconfig/network-scripts/ifcfg-eno (本人配置信息)
添加:DNS1=10.10.10.1
若有MAC冲突可修改HWADDR或MACADDR项,配置如下:
10.10.21.54
主机(管理点)上以
用户模式完成以下操作
(1)修改主机名,以便后面切换部署时识别相应节点
# vi /etc/hostname 修改主机名 这里命名为admin
# vi /etc/hosts 修改127.0.0.1 后主机名为admin
并添加如下信息:
10.10.21.54 & & admin
10.10.21.55&&&& node1
10.10.21.56&&&& node2
10.10.21.57&&&& node3
(2)创建用户并修改主机名
1)切换到各个主机上创建ceph用户 命名:ceph
# ssh username@host-serverip & 如 ==& username: root&&& host-serverip: 10.10.21.55
# useradd –d /home/ceph –m ceph
# passwd ceph
2)exit前修改各个主机名称,实现步骤同理(1)示
测试:ping xxx节点
(3)切换至各个Ceph节点的ceph用户,为用户增加root权限
# ssh username@hostname 如:ssh ceph@node1
$ echo “ceph ALL=(root) NOPPASSWD:ALL” | sudo tee /etc/sudoers.d/ceph
$ sudochmod 0440 /etc/sudoers.d/ceph
(4)实现ssh无密码登录
1)切换至ceph用户,生成公钥以及私钥于当前用户.ssh目录下,id_rs is_rsa.pub
# ssh ceph@admin
$ ssh-keygen
2)exit前将生成的密钥拷贝到各个Ceph节点的ceph用户的 ~/.ssh/目录下
$ ssh-copy-id ceph@node1
$ ssh-copy-id ceph@node2
$ ssh-copy-id ceph@node3
(5)admin主机上添加~/.ssh/config配置文件 注:并非ceph用户
(1)在admin主机切换至ceph用户,创建文件夹
# ssh ceph@admin
$ mkdir my-cluster
$ cd my-cluster
(2)ceph-deploy部署集群
注:使用ceph-deploy部署集群均在my-cluster目录中
1)更新软件源并安装ceph-deploy工具:
$ sudo yum update && sudo install ceph-deploy
2)同步每台主机的时间,需切换至每个节点:
$ ssh {node}& 如:ssh node1
$ sudo yum install ntp
$ sudo yum install openssh-server (如果有必要可安装)
3)清除之前的配置数据:
卸载ceph:
$ ceph-deploy uninstall admin node1 node2 node3
清除远程主机/var/lib/ceph /etc/ceph中的包和数据
$ ceph-deploy purgeadmin node1 node2 node3
清除/var/lib/ceph及/etc/ceph下ceph目录及以下内容全部:
$ ceph-deploy purgedata admin node1 node2 node3
清除my-cluster目录中的认证密钥文件:
$ ceph-deploy forgetkeys
4)关闭所有节点的防火墙及安全防护项,切换到所有节点执行:
$ ssh {node}& 如:ssh node1
$ sudo systemctl stop firewalld
$ sudo setenforce 0
5)之后就可正真的来实现创建集群:
$ ceph-deploy new node1
成功执行后当前目录增加三个文件:
(3)系统默认的osd pool的为3 目前osd为2 即需修改默认的副本数为2
$ vi&& ./ceph.conf& 添加:osd pool default size=2
(4)部署安装ceph
$ ceph-deploy install admin node1 node2 node3
安装成功后:
(5)创建Ceph mon
$ ceph-deploy mon create-initial
若无法创建则使用如下命令:
$ ceph-deploy mon create node1
$ ceph-deploy gatherkeys node1
成功后当前目录ls -l
(6)创建两个osd
1)首先切换到node2中ceph用户,创建OSD0
$ ssh ceph@node2
df –mh 查看可知sdc可用,故可将sdc xfs格式化 并实现挂载
$ sudo mkfs.xfs& –f& /dev/sdc
$ sudo mkdir /var/lib/ceph/osd/osd-0
$ sudo mount /dev/sdc& /var/lib/ceph/osd/osd-0
2)同理创建OSD1
$ ssh ceph@node3
$ sudo mkfs.xfs& –f& /dev/sdc
$ sudo mkdir /var/lib/ceph/osd/osd-1
$ sudo mount /dev/sdc& /var/lib/ceph/osd/osd-1
(7)准备并激活osd
$ ceph-deploy osd prepare node2: /var/lib/ceph/osd/osd-0
node3: /var/lib/ceph/osd/osd-1
$ ceph-deploy osd activate node2: /var/lib/ceph/osd/osd-0
node3: /var/lib/ceph/osd/osd-1
(8)实现拷贝配置文件以及key文件
$ ceph-deploy admin admin node1 node2 node3
(9)为ceph.client.admin.keyring添加可读权限
通常管理部署节点和监控节点须得设置,以便于查看集群状态。OSD节点设置与否,看能给予的权限。命令如下:
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
(10)查看集群状态
1)集群整体状态:ceph –s
2)集群OSD状态:ceph osd tree
3)ceph {xxx} dump& 如:&& ceph mds dump
ceph osd dump
4)集群动态部署:ceph –w
5)查看mon状况
$ sudo mon mon.{node} mon_status 如:node3 为mon节点
(11)操作OSD
1)将OSD踢出集群out 并实现数据重新均衡
$ ceph osd out osd.2
2)停止OSD设备 (需切换到当前节点中,实现osd的停止)
$ sudo service ceph stop {osd} 如:osd.2
3)从CRUSH中移除
$ ceph osd crush remove osd.2
4)从认证中删除
$ ceph auth del osd.2
5)删除osd
$ ceph osd rm 2
备注(问题)
问题1:添加新osd集群试图实现均衡失败后,集群不正常
集群:[(osd pool default size = 2) admin node1(mon) node2(osd0) node3(osd1) ]
创建后 集群active+clean 处于正常状况,之后向node1节点添加osd2 添加成功后:
开始时:osd2 处于down + in状态
一段时间后:osd2处于 up + in 同时使得 osd1处于 down + out
再之后显示如下:
1]、可能是系统为防止集群出现问题,mon的防火墙会自行启动,使得其它的osd节点无法访问mon节点(
注:并非是说ping不同
2]、可能有些软件(进程)的启动需要依赖防火墙去实现解决:
1)此时首先关闭firewalld:$ sudo systemctl stop firewalld
$ firewall-cmd –-state
2)尝试重新启动ceph集群,看是否能够起来(各个节点均执行),命令:
$ sudo service ceph start
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致8403人阅读
分布式文件系统Ceph(15)
当您启动Ceph的服务,初始化过程启动了一系列在后台运行的守护进程。 Ceph的存储集群运行两种类型的守护进程:
Ceph的监视器(CEPH-MON)
Ceph的OSD守护(CEPH-OSD)
Ceph的存储集群,支持Ceph的文件系统,它至少运行一个的Ceph元数据服务器(CEPH-MDS)。支持Ceph的对象存储的集群,运行Ceph的网关守护(radosgw)。为了您的方便,每个守护进程有一系列的默认值(即,许多是由ceph/ src/common/config_opts.hshe设置的)。您可以用CEPH配置文件重写。
2.配置文件
当您启动CEPH存储集群,每个守护进程寻找一个Ceph的配置文件(即默认情况下ceph.conf),它能给集群提供配置设置。手动部署,你需要创建一个Ceph的配置文件。有一些为您创建配置文件的工具(如ceph-deploy,Chef,etc),你可以使用此处包含的信息作为参考。 Ceph的配置文件定义:
Cluster Identity
Authentication settings
Cluster membership
Host names
Host addresses
Paths to keyrings
Paths to journals
Paths to data
3.配置部分
THE CONFIGURATION FILE
配置文件可以配置在Ceph的存储集群,所有Ceph的守护程序或特定类型的所有Ceph的守护进程。为了配置一系列的守护进程,必须包含的以下的进程设置,配置如下:
说明:在 [global] 下的设置,影响在Ceph的存储集群所有进程实例。
例如:auth supported=cephx
说明:在 [OSD] 下的设置,影响在Ceph的存储集群所有OSD的进程实例,并且重写在 [global]里面的相同配置。
例如: osd journal size = 1000
说明:在 [mon] 下的设置,影响在Ceph的存储集群所有mon的进程实例,并且重写在 [mon]里面的相同配置。
例如:mon addr= 10.0.0.101:6789
说明:在 [mds] 下的设置,影响在Ceph的存储集群所有mon的进程实例,并且重写在 [mds]里面的相同配置。
例如:host= myserver01
说明:在[Client]下的设置,影响Ceph的所有Client(例如,挂载的文件系统,挂载的块设备等) 。
例如:log file=/var/log/ceph/ radosgw.log
CONFIG SECTIONS
全局设置会影响所有守护进程在Ceph的存储集群的所有实例。在[global]设定的值是常见为Ceph的存储集群所有守护进程。您可以覆盖每个[global]设置:
在一个特定的进程类型中更改设置(例如,[ OSD] ,[MON] [ MDS] )。
在一个特定的过程更改设置(例如, [ osd.1 ] ) 。
重写全局设置会影响所有子进程,除了那些专门覆盖在一个特定的守护进程。
一个典型的全局环境设置应涉及到激活验证。例如:
#Enable authentication between hosts within the cluster.
#v 0.54 and earlier
auth supported = cephx
#v 0.55 and after
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
&您可以指定适用于特定类型的守护进程的设置。当你指定设置下的[OSD],[MON]或[MDS]没有指定特定的实例,分别设置将适用于所有的OSD,显示器或元数据守护。
一个典型的守护范围的设置,包括设置日志大小,文件存储设置,例如:
osd journal size = 1000
filestore xattr use omap = true
您可以指定一个守护进程的特定实例设置。您可以通过句点(.)和实例ID分隔这种类型指定一个实例。Ceph的OSD守护进程的实例ID始终是数字,但它对于Ceph的MON和Ceph的元数据服务器(MDS)来说,可能是字母数字。
# settings affect osd.1 only.
# settings affect mon.a only.
# settings affect mds.b only.
METAVARIABLES
元变量简化Ceph的存储集群配置大幅提升。当一个metavariable被设置在一个配置值, Ceph的的metavariable扩展到一个具体的值。在您的配置文件[global ] , [ OSD ] ,[MON]或[ MDS]部分范围内,使用metavariable是非常强大的。Ceph元变量类似bash shell的扩展。
Ceph的支持元变量如下:
说明:扩展Ceph的存储集群名。在同一硬件上运行多个Ceph的存储集群时非常有用。
例如:/etc/ceph/$cluster.keyring
默认:ceph
说明:扩展到MDS ,OSD ,或MON,取决于实例、守护进程的类型。
例如:/var/lib/ceph/$type
说明:扩展守护进程标识符。对于osd.0 ,这将是0;为mds.a ,这将是a。
例如:/var/lib/ceph/$type/$cluster-$id
说明:扩展即时守护进程的主机名。
说明:扩展$type.$id。
例如:/var/run/ceph/$cluster-$name.asok
COMMON SETTINGS
硬件建议部分提供一些硬件配置Ceph的存储集群指引。这是可能为一个单一的Ceph节点运行多个守护进程。例如,一个有多个驱动器或RAID的单节点可以为每个驱动器或RAID运行一个ceph-osd节点。理想情况下,你将有运行一个特定类型的实例的节点。例如,一些节点可能运行Ceph-OSD守护进程,一些节点可能运行Ceph-MDS守护,还有一些其他节点可能运行Ceph-Mon守护进程。
每个节点确定都有一个由主机设置的名称。MON还可以指定一个网络地址和端口(即域名或IP地址)确定地址设置。一个基本的配置文件,通常会指定一个守护进程的每个实例只有很少的设置。例如:
host = hostName
mon addr = 150.140.130.120:6789
host = hostName
注意:主机设置为节点(即不是FQDN)的短名称。它不是一个IP地址。在命令行中输入hostname -s,检索的节点名称。另外,这个设置是只mkcephfs和手动部署。它不能被用来ceph-deploy或chef,这些工具你只需要输入相应的值即可。
Ceph的生产集群通常最低3 Ceph-MON守护部署,以确保高可用性,防止MON实例崩溃。 至少有三个MON确保Paxos算法可以决定哪个版本的CEPH集群映射是最近从大部分MON中来的,在合法的数量下。
注意:您可能部署Ceph用一个Ceph-MON,但如果这个实例失败,又没有其他的MONS,可能会中断数据服务的可用性。
Ceph的显示器通常监听端口6789上。例如:
host = hostName
mon addr = 150.140.130.120:6789
默认情况下, Ceph的期望,你存储的MON数据存储在以下路径:
/var/lib/ceph/mon/$cluster-$id
AUTHENTICATION
对于CEPH(V 0.56 )和或以上版本,你应该明确地启用或禁用身份验证,在Ceph的配置文件中的[global]段。
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
注意:重要升级时,我们明确建议先禁用身份验证,然后进行升级。一旦升级完成后,重新启用身份验证。
Ceph的生产集群通常部署:长期:Ceph的OSD守护一个节点都有一个OSD守护进程,它在一个存储驱动器运行文件。一个典型的部署指定日志大小和文件存储的扩展属性(XATTRs)是否使用对象映射(当在ext4文件系统上运行时)。例如:
osd journal size = 10000
filestore xattr use omap = true #enables the object map. Only if running ext4.
host = {hostname}
默认情况下, Ceph的期望,你将一个Ceph的OSD守护进程的数据存储在以下路径:
/var/lib/ceph/osd/$cluster-$id
您或者使用部署工具(如,ceph-deploy),先建立相应的目录。然后使用元变量,命名一个“ceph”集群,如下:
/var/lib/ceph/osd/ceph-0
使用OSD数据设置,你可以重写此路径。我们不建议更改默认的位置。创建您的OSD主机上的默认目录。
ssh {osd-host}
sudo mkdir /var/lib/ceph/osd/ceph-{osd-number}
OSD数据路径的理想挂载点是一块独立的硬盘,该硬盘和存储和运行操作系统和守护进程的硬盘是分开的。如果OSD磁盘不是操作系统磁盘,准备把它为Ceph的使用,将其安装到刚才创建的目录:
ssh {new-osd-host}
sudo mkfs -t {fstype} /dev/{disk}
sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{osd-number}
我们推荐使用XFS文件系统btrfs文件系统时,运行命令: mkfs。
EXAMPLE CEPH.CONF
# For version 0.54 and earlier, you may enable
# authentication with the following setting.
# Specifying `cephx` en
# and specifying `none` disables authentication.
#auth supported = cephx
# For version 0.55 and beyond, you must explicitly enable
# or disable authentication with &auth& entries in [global].
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd journal size = 1000
# uncomment the following line if you are mounting with ext4
# filestore xattr use 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 for you. Remove the comment `#` character for
# the following settings and replace the values in parenthesis
# 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 = {fs-type}
#osd mkfs options {fs-type} = {mkfs options}
# default for xfs is &-f&
#osd mount options {fs-type} = {mount options} # default mount option is &rw, noatime&
host = myserver01
mon addr = 10.0.0.101:6789
host = myserver02
mon addr = 10.0.0.102:6789
host = myserver03
mon addr = 10.0.0.103:6789
host = myserver01
#devs = {path-to-device}
host = myserver02
#devs = {path-to-device}
host = myserver03
#devs = {path-to-device}
host = myserver01
#devs = {path-to-device}
RUNTIME CHANGES
Ceph可以在运行是修改CEPH-OSD,CEPH-MON,或CEPH-MDS守护进程。此功能增加/减少日志输出,启用/禁用调试设置是非常有用的,甚至是运行优化。下面反映使用运行时配置:
ceph {daemon-type} tell {id or *} injectargs '--{name} {value} [--{name} {value}]'
替换 {deamon-type} 为OSD,MON或MDS。可以申请*特定类型的所有守护进程运行时设置,或指定一个特定的守护进程的ID(即,它的数字或字母)。例如,增加一个CEPH-OSD名为osd.0的守护进程的调试日志记录,请执行以下命令:
ceph osd tell 0 injectargs '--debug-osd 20 --debug-ms 1'
在您的ceph.conf文件,你可以使用空格时指定设置名称。在命令行上指定设置的名称时,请确保您使用下划线或连字符(_或 - )连接(例如,debug OSD变得debug+OSD)。
VIEWING A CONFIGURATION AT RUNTIME
如果您的Ceph的存储集群正在运行,你希望看到一个正在运行的守护进程的配置设置,执行以下命令:
ceph --admin-daemon {/path/to/admin/socket} config show | less
admin socket,每个守护进程的默认路径是:
/var/run/ceph/$cluster-$name.asok
在实际中,元变量将被联系到一个实际的群集名称和守护程序的名称。例如,如果群集名称为ceph(这是默认设置),你要检索的配置osd.0,使用以下命令:
ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less
用CEPH,你可以在同一硬件上运行多个Ceph的存储集群。运行多个集群,与用不同CRUSH规则集的同一个群集上使用不同的存储池相比,提供了更高级别的隔离。一个单独的集群,将有独立的MON,OSD和元数据服务器进程。当运行Ceph时使用默认设置,默认群集名称是ceph,这意味着你将保存您的Ceph的配置文件在/ etc /ceph默认目录中的文件名ceph.conf 。
当你运行多个集群,你必须说出你的集群,并用集群的名称保存Ceph的配置文件。例如,一个名为OpenStack的集群将有一个Ceph的配置文件在/ etc /ceph默认目录的文件名openstack.conf 。
Cluster names must consist of letters a-z and digits 0-9 only.
独立的集群意味着独立数据磁盘和日志之间不能共享集群。元变量, $集群metavariable的计算群集名称(即在上述的例子中, OpenStack的) 。各种设置使用自个的集群metavariable ,包括:
keyringadmin&socketlog&filepid&filemon&datamon&cluster&log&fileosd&dataosd&journalmds&datargw&data
创建默认的目录或文件时,你应该使用群集名称路径中的适当位置。例如:
sudo mkdir /var/lib/ceph/osd/openstack-0
sudo mkdir /var/lib/ceph/mon/openstack-a
注意:当运行在同一主机上的MON,你应该使用不同的端口。默认情况下,MON使用端口6789 。如果您已经有使用端口6789的MON,请使用不同的端口为您的其他集群。
要调用一个集群,而不是默认的ceph集群,使用了-c&{filename}.conf
&这个为ceph命令。
ceph -c {cluster-name}.conf health
ceph -c openstack.conf health
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:173842次
积分:2168
积分:2168
排名:第12962名
原创:25篇
转载:51篇
(1)(1)(2)(1)(1)(2)(1)(1)(5)(1)(3)(1)(1)(10)(9)(8)(5)(6)(14)(11)理解 OpenStack
Ceph (1):Ceph + OpenStack 集群部署和配置
&本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成:
(1)安装和部署
(2)Ceph 与 OpenStack 集成的实现
1. 测试环境
为了深入学习 Ceph 以及 Ceph 和 OpenStack 的集成,搭建了如下的测试环境:
硬件环境:
System X 服务器一台,CPU、内存和磁盘空间足够
服务器只有一个物理网卡
软件环境:
服务器安装 RedHat 6.5 操作系统
OpenStack 使用 Ubuntu 镜像库中的 Kilo master 版本
每个节点操作系统采用 Ubuntu 14.04 服务器版
2. Ceph 集群部署
& & 从上图可见,该环境使用三个虚机作为Ceph节点,每个节点上增加两个虚拟磁盘 vda 和 vdb 作为 OSD 存储磁盘,每个节点上安装 MON,前两个节点上安装 MDS。三个节点使用物理网络进行通信。
(0)准备好三个节点 ceph{1,2,3}:安装操作系统、设置 NTP、配置 ceph1 可以通过 ssh 无密码访问其余节点(依次运行 ssh-keygen,ssh-copy-id ceph2,ssh-copy-id ceph3,修改 /etc/ssh/sshd_config&文件中的 PermitRootLogin yes 来使得&ssh 支持 root 用户)
192.168.1.194
1MON+1MDS+2OSD
/dev/vda,&/dev/vdb
192.168.1.195
1MON+1MDS+2OSD
/dev/vda, /dev/vdb
192.168.1.218
/dev/vda, /dev/vdb
(1)在 ceph1 上安装 ceph-deploy,接下来会使用这个工具来部署 ceph 集群
(2)在ceph 上,运行&ceph-deploy install ceph{1,2,3} 命令在各节点上安装 ceph 软件。安装好后可以查看 ceph 版本:
:~# ceph -v
ceph version 0.80.10 (ea6c958c38dff143d8b13c4a9e70)
(3)在 ceph1 上执行以下命令创建 MON 集群
ceph-deploy new ceph{1,2,3}
ceph-deploy mon create ceph{1,2,3}
ceph-deploy mon create-initial
完成后查看 MON 集群状态:
:~# ceph mon_status
{"name":"ceph1","rank":0,"state":"leader","election_epoch":16,"quorum":[0,1,2],"outside_quorum":[],"extra_probe_peers":[],"sync_provider":[],"monmap":{"epoch":1,"fsid":"4387471a-ae2b-47c4-b67e-fd0","modified":"0.","created":"0.","mons":[{"rank":0,"name":"ceph1","addr":"192.168.1.194:6789\/0"},{"rank":1,"name":"ceph2","addr":"192.168.1.195:6789\/0"},{"rank":2,"name":"ceph3","addr":"192.168.1.218:6789\/0"}]}}
(4)在各节点上准备数据盘,只需要在 fdisk -l 命令输出中能看到数据盘即可,不需要做任何别的操作,然后在 ceph1 上执行如下命令添加 OSD
ceph-deploy --overwrite-conf osd prepare ceph1:/data/osd:/dev/vda ceph2:/data/osd:/dev/vda ceph3:/data/osd:/dev/vda
ceph-deploy --overwrite-conf osd activate ceph1:/data/osd:/dev/vda ceph2:/data/osd:/dev/vda ceph3:/data/osd:/dev/vda
ceph-deploy --overwrite-conf osd prepare ceph1:/data/osd2:/dev/vdb ceph2:/data/osd2:/dev/vdb ceph3:/data/osd2:/dev/vdb
ceph-deploy --overwrite-conf osd activate ceph1:/data/osd2:/dev/vdb ceph2:/data/osd2:/dev/vdb ceph3:/data/osd2:/dev/vdb
完成后查看 OSD 状态:
:~# ceph osd tree
up/down reweight
root default
host ceph1
host ceph2
host ceph3
(5)将 Admin key 到其余各个节点,然后安装 MDS 集群
ceph-deploy admin ceph1 ceph2 ceph3
eph-deploy mds
create ceph1 ceph2
完成后可以使用 &ceph mds& 命令来操作 MDS 集群,比如查看状态:
:~# ceph mds stat
e13: 1/1/1 up {0=ceph1=up:active}, 1 up:standby
看起来 MDS 集群是个 active/standby 模式的集群。
至此,Ceph 集群部署完成,可以使用 ceph 命令查看集群状态:
:~# ceph mds stat
e13: 1/1/1 up {0=ceph1=up:active}, 1 up:standby
:~# ceph -s
cluster 4387471a-ae2b-47c4-b67e-fd0
health HEALTH_OK
monmap e1: 3 mons at {ceph1=192.168.1.194:6789/0,ceph2=192.168.1.195:6789/0,ceph3=192.168.1.218:6789/0}, election epoch 16, quorum 0,1,2 ceph1,ceph2,ceph3
mdsmap e13: 1/1/1 up {0=ceph1=up:active}, 1 up:standby
osdmap e76: 10 osds: 7 up, 7 in
在这过程中,失败和反复是难免的,在任何时候,可以使用如下的命令将已有的配置擦除然后从头安装:
ceph-deploy purge ceph{1,2,3}
ceph-deploy purgedata ceph{1,2,3}
ceph-deploy forgetkeys
&3. OpenStack 集群部署
&3.1 网络准备
为方便起见,管理网络直接连接物理网卡;租户网络就比较麻烦一点,因为机器上只有一个物理网卡,幸亏所有的计算节点都在同一个物理服务器上,因此可以:
1. 在物理服务器上,创建一个虚拟网卡 tap0,再创建一个 linux bridge &mgtbr0&
tunctl -t tap0 -u root
/dev/net/tun
ifconfig tap0 0.0.0.0 promisc
brctl addbr mgtbr0
brctl addif mgtbr0 tap0
2. 这是 mgtbr0 的配置脚本:
[ ~]# cat /etc/sysconfig/network-scripts/ifcfg-mgtbr0
DEVICE=mgtbr0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.0.0.100
GATEWAY=10.0.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
TYPE=Bridge
3. 在网络和各计算节点上,增加一块网卡,连接到物理服务器上的 bridge。
把所有的节点连接到管理和租户网络后,在物理服务器上看到的 linux bridge 是这样子:
bridge name
STP enabled
interfaces
#controller 节点
#network 节点
#compute1 节点
#compute2 节点
#ceph1 节点
#ceph2 节点
#ceph3 节点
8.f29e2c075ca6
#network 节点
#compute1 节点
#compute2 节点
3.2 OpenStack 安装和配置
& & 参考&Installation Guide for Ubuntu 14.04 (LTS)&完成配置,没感觉到 Kilo 版本和 Juno 版本太大的不同,除了 keystone 使用 Apache web server 替代了 Keystone WSGI Server 以外(注意不能同时启动 apache2 和 keystone 服务,两者有冲突,感觉 Kilo 版本中 Identity 部分改动很大,还是存在不少问题)。
4. OpenStack 和 Ceph 整合配置
本例中,OpenStack Cinder、Glance 和 Nova 分别会将卷、镜像和虚机镜像保存到 Ceph &分布式块设备(RBD)中。
4.1 Ceph 中的配置
(1)在 ceph 中创建三个 pool 分别给 Cinder,Glance 和 nova 使用
ceph osd pool create volumes 64
ceph osd pool create images 64
ceph osd pool create vms 64
(2)将 ceph 的配置文件传到 ceph client 节点 (glance-api, cinder-volume, nova-compute andcinder-backup)上:
ssh controller sudo tee /etc/ceph/ceph.conf &/etc/ceph/ceph.conf
ssh compute1 sudo tee /etc/ceph/ceph.conf &/etc/ceph/ceph.conf
ssh compute2 sudo tee /etc/ceph/ceph.conf &/etc/ceph/ceph.conf
(3)在各节点上安装ceph 客户端
在 glance-api 节点,安装 librbd
sudo apt-get install python-rbd
在 nova-compute 和 cinder-volume 节点安装 ceph-common:
sudo apt-get install ceph-common
(4)配置 cinder 和 glance 用户访问 ceph 的权限
# cinder 用户会被 cinder 和 nova 使用,需要访问三个poolceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'# glance 用户只会被 Glance 使用,只需要访问 images 这个 pool
ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
(5)将&client.cinder 和&client.glance 的 keystring 文件拷贝到各节点并设置访问权限
ceph auth get-or-create client.glance
ssh controller sudo tee /etc/ceph/ceph.client.glance.keyring
ssh controller
sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring
ceph auth get-or-create client.cinder
ssh controller
sudo tee /etc/ceph/ceph.client.cinder.keyring
ssh controller
sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
ceph auth get-or-create client.cinder
ssh compute1 sudo tee /etc/ceph/ceph.client.cinder.keyring
ceph auth get-or-create client.cinder
ssh compute2 sudo tee /etc/ceph/ceph.client.cinder.keyring
(6)在 compute1 和 compute2 节点上做 libvirt 配置
ceph auth get-key client.cinder
ssh compute1 tee client.cinder.key
cat & secret.xml &&EOF
&secret ephemeral='no' private='no'&
&uuid&e21a123a-31f8-425a-86db-1&/uuid&
&usage type='ceph'&
&name&client.cinder secret&/name&
sudo virsh secret-define --file secret.xml
sudo virsh secret-set-value --secret e21a123a-31f8-425a-86db-1 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml
4.2 OpenStack 中的配置
4.2.1 Glance 中的配置
在 /etc/glance/glance-api.conf 文件中做如下修改:
show_image_direct_url = True
[glance_store]
stores=glance.store.rbd.Store
default_store = rbd
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8
4.2.2 配置 Cinder
修改 /etc/cinder/cinder.conf:
#volume_group = cinder-volumes
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
rbd_store_chunk_size = 4
rados_connect_timeout = -1
glance_api_version = 2
rbd_user = cinder
rbd_secret_uuid = e21a123a-31f8-425a-86db-1
4.3.3 配置 Nova
在每个计算节点上的 /etc/nova/nova.conf 文件中做如下修改:
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = cinder
rbd_secret_uuid = e21a123a-31f8-425a-86db-1
disk_cachemodes="network=writeback"
hw_disk_discard = unmap
inject_password = false
inject_key = false
inject_partition = -2
live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
&至此,环境安装和配置完成,通过 cinder,glance 和 nova 命令创建的卷、镜像和虚机的镜像都会被保存在 Ceph 的 RBD 中。接下来的文章会深入分析其中的原理和实现。
&参考文档:
/docs/master/rbd/rbd-openstack/
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
先整体介绍一下搭建storm集群的步骤: 设置zookeeper集群安装依赖到所有nimbus和worker节点下载并解压storm发布版本到所有nimbus和worker节点配置storm.yaml启动相关后台进程 1 首先配置zookeeper集群
我们知道storm通过zookeeper来协调整个集群.zookeeper不是用来做消息传递 ...
转载:/fczjuever/p/3224022.html 之前介绍了&OpenStack Swift All In One安装部署流程与简单使用&,那么接下来就说一说Swift集群部署吧. 1. 简介 本文档详细描述了使用两台PC部署一个小型Swift集群的过程,并给出一些简单的使用实例.本文档假定如下 ...
深入理解各JEE服务器Web层集群原理 ( by quqi99 ) 作者:张华 写于:发表于: 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 上周,我在infoq网站发表了一篇文章&深入 ...
本文根据华三通信研发副总裁王飓在2014年QCon上海的主题演讲&SDN控制器集群中的分布式技术实践&整理而成.目前在网络世界里,云计算.虚拟化.SDN.NFV这些话题都非常热.今天借这个机会我跟大家一起来一场SDN的深度之旅,从概念一直到实践一直到一些具体的技术.本次分享分为三个主要部分:SDN & NFV的背景介绍 SDN部署的实际案 ...
如果你目的很明确就是冲着标题来的,不爱看我唠叨,请直接进入第二个之后的内容.
其实之前就是有做Swift监控平台的打算的,但是因为没什么硬性需求么,也不要紧的,就一直搁置了.最近实验室来了个大二升大三的小MM体验生活,老大就让我们带着她一起做这个东西,主要好处就是可以多学些实用的技术,了解云存储的基本架构,同时也不需要深入细节,难以理解. 好吧,我就是个 ...
转载地址:/xia520pi/archive//2503949.html 本章内容高清pdf文档下载地址:/share/link?shareid=267352&uk= 1.集群部署介绍
1.1 Hadoop简介
Solr及SolrCloud简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果.
SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的 ...
在前两篇文章中,我们介绍了Hadoop集群部署的3个方式,即&存储/计算绑定和单一计算的Hadoop集群&,&存储/计算分离的Hadoop集群部署&.本文我们着重讲解最后一种方式,即构建自定义的Hadoop集群,作为对用户更为开放的一个部署选项. 自定制集群(Customcluster) 在复杂的业务背景下,往往某一种特定模型无法满足 ...

我要回帖

更多关于 ceph集群搭建 的文章

 

随机推荐