找回密码
 注册
查看: 4496|回复: 2

CentOS7环境部署虚拟ceph集群

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2020-12-13 08:54:05 | 显示全部楼层 |阅读模式
二 ceph简介
  • 分布式存储
  • ceph层次结构
  • 最简部署方式:一个管理节点、一个mon节点、两个osd节点
    * `' f+ {6 a; M% G% Y
三 环境准备
  • 镜像选择
      B( p. F% R* X0 n( i* C4 u
CentOS-7-x86_64-Minimal-1810.iso7 u0 e2 R$ G% k* d2 f
  • 资源配置% e' Q  M. G4 }+ p5 A+ G  b( x
mem:1G+ {# ^* w" ~9 }( h6 W; l- a- T. {
disk:50G, Y/ K8 w8 ?7 \
cpu:1core
8 G5 i- T1 y) h% d' ?
  • 虚拟机名称1 `1 e9 o" h# h5 V# ~
ceph
# u* ^1 o8 q6 y1 W- N
  • 虚拟网络选择6 n6 w. c& f  b1 T8 e
NAT:default
; e2 h# f2 w. [2 ?
四 ceph节点工具安装本节操作在上一节创建的虚拟机中执行
% P( N3 ?, T7 i5 W% \1 \
  • 安装常用网络工具
    $ F' Q- l0 e/ Q; t9 f
yum install net-tools -y
2 \1 ]$ O: u' V% J2 f9 h; A/ H: C
  • 网络修改,使用静态IP
    ' y% s6 N6 o* s4 q- J4 @4 O4 o
ifconfignetstat -rn
% D# `: h$ s& T结果如下图:% b- X) f# C, i2 N, `
0 N7 f( E' i" p! p/ B

: `) b* H2 K; O" X' d! |$ Hhttp://upload-images.jianshu.io/upload_images/6582575-6319afd9d040f3f3.png?imageMogr2/auto-orient/strip|imageView2/2/w/756/format/webp
: ]6 \2 a% G" w

" K9 z6 O; r& {4 J, Z; _: L2 kCEPH_Node_01.png' _, D" H, j9 i1 ?& j, ^% u% x

  v0 b9 F8 q# `
9 u: a" @! y7 d  b! j将这些信息写到配置文件中固化:
; G7 B. y/ z6 i9 F  b修改DNS* _9 o4 p3 }' g# @; L
echo "NETWORKING=yes" >> /etc/sysconfig/networkecho "DNS1=114.114.114.114" >> /etc/sysconfig/networkecho "DNS2=8.8.8.8" >> /etc/sysconfig/network3 r' o7 _& \0 c+ _1 @
修改静态IP$ Y4 h# ^- q* k, A4 m8 o
vi /etc/sysconfig/network-scripts/ifcfg-eth0
0 c, t5 f; L4 {修改如下配置,其他配置不变+ U  i$ ^- ]; ]: g5 A8 T
#BOOTPROTO="dhcp"  //这一行需要注释掉BOOTPROTO="static"NM_CONTROLLED=noIPADDR=192.168.122.122 //IP 和原先IP一样也可NETMASK=255.255.255.0GATEWAY=192.168.122.1
! x7 C& \( n6 I$ N添加主机名9 ~) d" r  R/ X; m% [, E' y
echo "192.168.122.122 node" >> /etc/hosts echo "192.168.122.123 node1" >> /etc/hosts echo "192.168.122.124 node2" >> /etc/hosts echo "192.168.122.125 node3" >> /etc/hosts
" B) a6 ]1 s: I) \* D重启网络服务: C% A- d5 ~: S- H! b" d% v8 Z
service network restart
/ C0 U" j2 f% g/ U2 c' h1 w3 H
NOTE:如果你是ssh到这个虚拟机的,会失去连接,可以关闭终端重新连接% k) P* m6 z; ?4 a
  • yum相关
    8 q! X" ~: ?7 l0 w4 ]9 b+ s8 P
  • 安装第三方源管理工具
    1 V* \! I3 ^! r) d) {2 ?
yum install -y https://dl.fedoraproject.org/pub ... est-7.noarch.rpmyum install -y yum-plugin-prioritiesyum install -y yum-utils
3 Y, q3 Y8 Q4 @- ?5 O- ~
  • 源配置5 X. T. P# N5 h8 u# a# _
    创建ceph源配置文件,并打开编辑
    ' S0 H# [& [/ r( Y+ _& }9 I$ C* f$ ]
touch /etc/yum.repos.d/ceph.repovi /etc/yum.repos.d/ceph.repo
% [9 s" T8 m  O1 E5 P* d在文件中写入如下内容
  \& s2 @( Q, S) W& P( W- I% M[ceph-noarch]name=Ceph noarch packagesbaseurl=http://download.ceph.com/rpm-luminous/el7/noarchenabled=1gpgcheck=1type=rpm-mdgpgkey=https://download.ceph.com/keys/release.asc, v5 y' T  i# u* n0 i0 _
更新yum源3 F4 }4 u3 E; I$ Y5 m4 k
yum update -y0 i3 k* f+ S1 b9 w( H
  • 时钟相关5 c+ C% N8 }% k' T( ?. w; Z9 J6 X
yum install -y ntp ntpdate ntp-doc
7 J. H+ `3 U3 j4 R9 _9 A
  • 关闭防火墙; s3 C$ W3 P; q
firewall-cmd --zone=public --add-service=ceph-mon --permanentfirewall-cmd --zone=public --add-service=ceph --permanentfirewall-cmd --reloadiptables -A INPUT -i eth0 -p tcp -s 192.168.122.0/24 -d 192.168.122.254 -j ACCEPTiptables-save sudo setenforce 0
; r! ~# P8 f" W7 ?) L: {3 F( M$ ^
  • ceph部署用户9 d9 B9 u4 v( T. s) j3 M
    创建用户
    * i7 q# O. Q5 E) D6 L
useradd -g root -m cephD -d /home/cephDpasswd cephD* H, X& a7 q6 P" S4 x" `* T+ H
免密码权限" h$ k. E8 y7 X% \* c# R. M
echo "cephD ALL=(ALL)NOPASSWD: ALL" | sudo tee /etc/sudoers.d/cephDchmod 0440 /etc/sudoers.d/cephD
5 f$ b* c$ k" v& z' w五 ceph节点clone本节操作在宿主机执行
0 _+ i- h5 b* f# r! z7 P0 u" k
  • 获得root权限' S. g7 c6 m- E# [) w$ k# e
sudo su/ G6 P3 ^& }+ {' p9 v4 ~0 e
  • 关闭虚拟机ceph
    * D* S* n; V4 f; b* R% O
virsh shutdown ceph5 `+ _* x+ l* O0 H% U+ F& S
  • clone出ceph-1、ceph-2、ceph-3节点
    3 O# A' c. f6 x$ W( ~
virt-clone -o ceph -n ceph-1 -f /home/data/ceph-1.qcow2virt-clone -o ceph -n ceph-2 -f /home/data/ceph-2.qcow2virt-clone -o ceph -n ceph-3 -f /home/data/ceph-3.qcow2
, g& T$ J) A* n* X5 I
注:ceph为管理节点,ceph-1为mon节点,ceph-2、ceph-3为osd节点
& u6 x* L/ T% R, Q
  • 挂载硬盘
    + O- }' x: A- F* c1 u
  • 创建硬盘镜像
    & u! \3 o5 E" i: u2 S8 q" ?  N- b
qemu-img create -f qcow2 /home/data/osd1.qcow2 50gqemu-img create -f qcow2 /home/data/osd2.qcow2 50gqemu-img create -f qcow2 /home/data/osd3.qcow2 50g. \3 b: u9 e+ b) l& ?
  • 修改配置文件,将磁盘挂载到虚拟机(以ceph-2为例)
    ) r. t; \) c5 i( K* r
virsh edit ceph-2$ e4 }9 b" `. r( ~* O& W9 k
添加如下内容到domain.devices节点下* ~% E, Z  R5 F! m1 I& B
<disk type='file' device='disk'>      <driver name='qemu' type='qcow2' cache='none'/>      <source file='/home/data/osd2.qcow2'/>      <target dev='vdb' bus='virtio'/> </disk>
; T" }% v: C: |) a+ O+ j  g
  • 启动虚拟机
    ; ~2 `1 ?: e. y6 Z: a( [
virsh start cephvirsh start ceph-1virsh start ceph-2virsh start ceph-3( ^% A1 Y% ?$ `7 f2 D
查看虚拟机状态- |# A2 L4 A' V3 _* w7 u- \+ [
virsh list --all# ?2 w9 g2 s1 e7 }

  @! A+ b5 T: i( l0 Z5 H3 L0 Xhttp://upload-images.jianshu.io/upload_images/6582575-ddef4a93268cde15.png?imageMogr2/auto-orient/strip|imageView2/2/w/475/format/webp
# C/ D5 l% l0 W3 }
) P' i+ x$ x2 o6 C0 G* G
CEPH_Node_02.png
- K- P; O, Z3 [; J
1 [7 L" l1 T' \2 x, x
  • 修改虚拟机IP; P/ `* _4 h# [( R$ n
    KVM进行clone操作之后,虚拟机IP也被clone了,在同一网段中,IP冲突,需要手动修改(以ceph-1为例)& [1 v, t( f# v( t; X
virt-viewer -c qemu:///system ceph-1
. u  I0 _7 A1 k$ T进入控制台,root登陆,修改eth0的IP
8 K- L9 _$ A1 h. a9 W! n8 Svi /etc/sysconfig/network-scripts/ifcfg-eth05 j1 Q! U% Q6 o6 c3 L6 [% X1 N
修改IPADDR,不与其他虚拟机冲突% |$ j3 `$ O; L- T  }' k
IPADDR=192.168.122.123- ?# L; P& o" A" N; `2 Z& O% m: V- Y( I
重启网络服务/ p9 e7 U; u5 z) u. O6 f
service network restart
0 g5 |* L/ S( y* g" N: I, o修改 ceph-2、ceph-3的IP为124、125" b( p$ [1 w5 [/ L/ R. o! Z; T
六 ceph-deploy 部署ceph集群本节操作在虚拟机ceph[ceph管理节点]上执行. ]; o0 i( P# [1 M+ ]0 e
  • 安装ceph-deploy
    4 ]0 l0 J9 D% K8 p3 }
yum install -y ceph-deploy
0 R7 V6 \7 i) v; c; J9 I4 H: t
  • 部署用户的免密码登陆其他节点
    : L/ }- m( x& Y; \2 W4 A
su - cephD
3 ]7 [5 `5 |, K生成SSH秘钥,不输入密码,全部[enter]) _* V" n7 K1 A: J1 H3 a
ssh-keygen. w; v" R4 o! L

" Y' m& `7 T- N8 E( mhttp://upload-images.jianshu.io/upload_images/6582575-b0afce24da2d3c9c.png?imageMogr2/auto-orient/strip|imageView2/2/w/611/format/webp8 Y4 m6 a- k& c* ^
6 o* e% V; W: {8 l9 j8 ?. Z6 \
CEPH_Node_03.png8 y- A+ w# x0 t5 N' ?5 r  r% W5 r

6 R1 W9 c" u) K; V) _# b! y% c8 K# m+ S% N" }, X. |) A  U
添加信任,执行以下操作( P1 G' L9 H- k
ssh-copy-id cephD@node1ssh-copy-id cephD@node2ssh-copy-id cephD@node3
3 c) f! `9 b6 T" I  Z; x1 D) mcd ~;touch ~/.ssh/config;vi ~/.ssh/config
  y4 v2 Y0 x9 K& F4 {输入如下内容
9 M2 \$ {2 ?9 T- m, r9 kHost node1    Hostname node1    User cephDHost node2    Hostname node2    User cephDHost node3    Hostname node3    User cephD
! ^' b. u! T$ Z8 B8 Z
  • 创建集群
    ) r' T! ]- V5 }1 U9 N! a9 I; N  k6 g  g
cd ~;mkdir my-cluster;cd my-cluster;ceph-deploy new node1% d. C; L. d4 p5 F! O
结果如下:
# h* q# h5 Z4 [% @# H' |& L9 a' E" Y5 D% ~: C+ k) u% D2 T
) e  _6 C! P0 n- C6 H
http://upload-images.jianshu.io/upload_images/6582575-1e2620e0391192b9.png?imageMogr2/auto-orient/strip|imageView2/2/w/839/format/webp0 h" s' \# g7 o
: N  l. p, u; P% s1 |. @9 f
CEPH_Node_04.png
8 z- u" J! f! f6 K6 v+ }% x: t3 [
# a: _! ^* o0 b% S* R- o7 @
/ g6 h3 N0 |% p  x# `$ E8 d0 S* r! J修改OSD默认数量为2
4 i% Z4 w* P3 Q7 l& |echo "osd pool default size = 2" >> ceph.confecho "public_network = 192.168.122.0/24" >> ceph.conf
8 m7 H) q4 u' c/ Z3 `
  • 集群安装ceph
    - {9 e5 U. w( z# l3 D0 A4 b
ceph-deploy install --release luminous node node1 node2 node3
$ d! m) v% `4 s* J. W  }* @$ G7 P: f- K
http://upload-images.jianshu.io/upload_images/6582575-0ae9958bb7a46686.png?imageMogr2/auto-orient/strip|imageView2/2/w/725/format/webp
& _) u8 h2 _& [- g6 ?% M
, k5 Z' ~% l8 M& H. Y
CEPH_Node_05.png' a1 y1 q( b7 _# c! g2 G" K; q4 x

* ]. C1 Y7 E2 c- U- Y- y
  • 初始化ceph-moni服务$ J# M# ]( s3 ^! B% f1 Q
ceph-deploy mon create-initial
* L/ i  ?$ e4 M+ a; j3 x* g
; h* D% G, d2 o6 x. y" q8 Bhttp://upload-images.jianshu.io/upload_images/6582575-1de180078709ccc6.png?imageMogr2/auto-orient/strip|imageView2/2/w/721/format/webp+ U/ B4 @7 v7 U7 J4 ^& |
5 I9 P' ]% x2 Y7 H( `
CEPH_Node_06.png7 P3 u% M4 W2 d( A8 q% e. g

; A3 E  |$ L1 j; e/ K
  • 拷贝管理员配置到各个节点
    . O. l' m5 {( W) {
ceph-deploy admin node node1 node2 node3
5 }! u+ C7 n9 S% v: _
  • 安装管理例程* U$ T/ T" B. [/ ]- _$ e
ceph-deploy mgr create node1
( o  c  A3 e7 ?8 J- y+ v
NOTE:mgr和moni是什么关系
8 t- O) ~7 V6 y6 O, F& ^( y* u2 y
  • 添加OSD节点0 Q- a$ R8 f% g( A3 Q, Q( P8 n
ceph-deploy osd create --data /dev/vdb node2ceph-deploy osd create --data /dev/vdb node3
2 u5 a6 A( ^& {4 i, A
  _- K" q: A) e) D1 Xhttp://upload-images.jianshu.io/upload_images/6582575-858fea0c1ddfdc61.png?imageMogr2/auto-orient/strip|imageView2/2/w/722/format/webp
) W4 S, v: ]1 P- Z7 t* |4 F+ z

/ x- I9 _5 y% Q6 BCEPH_Node_07.png: L* ?) D5 S9 {

. B0 D  Q8 B# ?4 Y% ?
  • 查看ceph集群状态# w( d+ u! G! x
ssh node1 sudo ceph healthssh node2 sudo ceph healthssh node3 sudo ceph health+ [6 {( A( I) X/ [4 o6 ^+ _; @# g

( U5 s* u# ^' l2 t8 \8 v1 p6 Nhttp://upload-images.jianshu.io/upload_images/6582575-c64d213a876a4f0b.png?imageMogr2/auto-orient/strip|imageView2/2/w/472/format/webp
, _1 j5 Q( p" v( b, h8 k
& H# n4 @  K1 k
CEPH_Node_08.png5 v$ A5 @6 n5 f. p( C% b

6 O4 A% x2 H# D+ a, ?+ hssh node1 sudo ceph -s
2 h* t  A* R7 Z: r: J& E( r! N! j8 G
* r9 C# b% C( f  nhttp://upload-images.jianshu.io/upload_images/6582575-b86aedb7d28f262d.png?imageMogr2/auto-orient/strip|imageView2/2/w/660/format/webp
2 U4 I9 q/ }. g5 Y6 A" i( K
" }. A) l* Y- D) N& r7 x
CEPH_Node_09.png
& I# {0 b$ }- r8 Q( Y( ^3 e) D. n( f( U; d! w  g+ F
  • 集群扩展0 \4 B1 I* F- q8 ^; C  q
  • 新增元数据服务节点
    , \& Q1 t8 E/ Q6 x6 t; R$ V4 L
ceph-deploy mds create node1ceph-deploy mds create node2
/ Q( W! q6 D/ z1 p, ?9 c1 w
  • 新增ceph-moni) u- ]6 h: I9 g4 Y" r. G$ Y
ceph-deploy mon add node2 ceph-deploy mon add node3; r3 U% X! |# y' B& G
NOTE:现在集群三个节点都运行了ceph-moni ?
; J. _5 v$ a) k( X6 ?: q
  • 新增管理例程节点
    . d+ g' `$ {9 F& [! X- ?1 U( d
ceph-deploy mgr create node2 node3# e( x3 U- f4 A/ f$ k( m& Z
  • 新增rgw实例
    5 \) g$ S" b! ~
ceph-deploy rgw create node1ceph-deploy rgw create node2
7 \& ]' b3 \! Y5 _% l
  • pool操作
    1 w8 b- T" Z3 T6 `- d$ d6 t
ceph osd pool create mytest 8  //创建ceph osd pool rm mytest //删除
/ M& [# g2 V& U5 X, [% t) d0 l+ W
  • 对象操作
    " d' ^5 A6 K0 \8 @% B
[cephD@node my-cluster]$ rados put test-object-1 ceph.log --pool=mytest[cephD@node my-cluster]$ rados -p mytest lstest-object-1[cephD@node my-cluster]$ ceph osd map mytest test-object-1osdmap e26 pool 'mytest' (5) object 'test-object-1' -> pg 5.74dc35e2 (5.2) -> up ([1,0], p1) acting ([1,0], p1)[cephD@node my-cluster]$ rados rm test-object-1 --pool=mytest
- f0 c% f/ A1 I7 j1 V; L, u七 ansible 部署ceph集群本节在ceph主机以cephD用户执行
5 M0 |+ E+ J. ~- b. h  l1 u
  • 准备工作
    9 \, \( w, w5 V8 X$ r7 ], P
  • 卸载ceph集群! V7 u4 [# ~$ I/ p2 ~* Y) Z
cd ~/my-cluster;ceph-deploy purge node node1 node2 node3ceph-deploy purgedata node node1 node2 node3ceph-deploy forgetkeysrm ceph.*4 E$ i( D7 p3 t& _( o
  • 安装python-pip工具
    5 v! K8 p0 \& u8 j0 N
cd ~;sudo yum update -y;sudo yum install -y python-pip;
8 V5 W8 m9 p1 {4 D7 x
  • 安装ceph-ansible
    * g: L- X$ U! Y  G$ a
  • 安装ansible-2.6.4
    0 R& ]+ x7 H3 R0 n4 O: X
sudo yum install -y PyYAMLsudo yum install -y python-jinja2sudo yum install -y python-paramikosudo yum install -y python-sixsudo yum install -y python2-cryptographysudo yum install -y sshpasswget https://releases.ansible.com/ans ... .ans.noarch.rpmsudo rpm -ivh ansible-2.6.4-1.el7.ans.noarch.rpmansible --version+ ]! {3 m6 \+ L1 n. z* e
7 K0 s9 B$ G$ n# j& q6 k# m
http://upload-images.jianshu.io/upload_images/6582575-794b0da59192c239.png?imageMogr2/auto-orient/strip|imageView2/2/w/1031/format/webp
4 ?, G0 q( a- z- [% X) b

0 f' G2 t* g4 BCEPH_ANSIBLE_02.png
# @' K0 D4 @2 ]6 Y
4 H$ U3 Y" H" z0 C- ^4 i5 ^9 P
  • 下载ceph-ansible; b! {; Y- B0 ~/ W# [
cd ~;sudo yum install -y git;git clone https://github.com/ceph/ceph-ansible.gitcd ceph-ansible;git branch -a|grep stable
$ B+ |+ [9 z$ x! f- I结果如下:5 D# K1 ]0 Z) o6 J  U
3 w# {" u5 _( P$ h% R0 D

4 s# O, ]$ L. }4 Fhttp://upload-images.jianshu.io/upload_images/6582575-91657a2dd15e6f50.png?imageMogr2/auto-orient/strip|imageView2/2/w/618/format/webp0 |* q6 `6 {$ N8 T! h" d! Y% S

  B2 p  s) e& m$ b% W- i) kCEPH_ANSIBLE_01.png$ t7 W! u9 |) l
+ u. @7 Q5 ?8 _* P& a( `  I% T. s
  • 发行版说明. S5 G1 l! W* t' J- |+ e
[td]
ceph-ansible分支
ceph版本
ansible版本
stable-3.0
jewel 和 luminous
2.4
stable-3.1
luminous 和 mimic
2.4
stable-3.2
luminous 和 mimic
2.6
master
luminous 和 mimic
2.7
  • 选择stable-3.2,解决python依赖3 r. T- ?, X& h+ f/ `5 p, ?2 v# m
git checkout stable-3.2sudo pip install -r requirements.txtsudo pip install --upgrade pip1 ]+ `  Q, k3 W2 x( N) L
  • 配置Inventory集群主机: T  r  r( b/ d& Y$ T3 x( E9 S
sudo chmod 0660 /etc/ansible/hosts sudo echo "[mons]">>/etc/ansible/hostssudo echo "node1">>/etc/ansible/hostssudo echo "node2">>/etc/ansible/hostssudo echo "[osds]">>/etc/ansible/hostssudo echo "node2">>/etc/ansible/hostssudo echo "node3">>/etc/ansible/hostssudo echo "[mgrs]">>/etc/ansible/hostssudo echo "node1">>/etc/ansible/hostssudo echo "node2">>/etc/ansible/hostssudo echo "node3">>/etc/ansible/hosts7 g1 R6 b: o6 ]! E' U
  • 配置Playbook部署指令
    1 x  V% J& ?9 [9 t3 {" Q0 a
cp site.yml.sample site.yml
$ E% F5 Q0 ~! _8 E! M
  • 配置ceph部署
    # T- u1 ~& f, r* R1 y  b. `
cp group_vars/all.yml.sample group_vars/all.ymlvi group_vars/all.yml------############ INSTALL ############ceph_origin:repositoryceph_repository: communityceph_stable_release: luminousceph_stable_repo: "{{ ceph_mirror }}/rpm-{{ ceph_stable_release }}/el7/x86_64"......monitor_interface: eth0......public_network: 192.168.122.0/24osd_objectstore: filestoredevices:  - '/dev/vdb'osd_scenario: collocated------/ {# }. i7 Z  _  D6 X
  • 安装执行) d8 J+ I8 q# z
ansible-playbook site.yml -vvceph -s' D4 q* N5 c; O# J
NOTE:-vv 提示更多错误信息; Z8 N( M* H* B. B
PLAY RECAP ********************************************************************************************************************************************************************************************************node1                      : ok=165  changed=26   unreachable=0    failed=0   node2                      : ok=248  changed=35   unreachable=0    failed=0   node3                      : ok=176  changed=26   unreachable=0    failed=0   INSTALLER STATUS **************************************************************************************************************************************************************************************************Install Ceph Monitor        : Complete (0:07:34)Install Ceph Manager        : Complete (0:07:58)Install Ceph OSD            : Complete (0:01:09)Wednesday 27 March 2019  02:50:32 -0400 (0:00:00.065)       0:17:19.385 ******* =============================================================================== ceph-common : install redhat ceph packages --------------------------------------------------------------------------------------------------------------------------------------------------------------- 274.13s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/install_redhat_packages.yml:16 -------------------------------------------------------------------------------------------------------------------------ceph-common : install redhat ceph packages --------------------------------------------------------------------------------------------------------------------------------------------------------------- 230.22s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/install_redhat_packages.yml:16 -------------------------------------------------------------------------------------------------------------------------ceph-common : install centos dependencies ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 104.34s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/install_redhat_packages.yml:9 --------------------------------------------------------------------------------------------------------------------------ceph-common : install centos dependencies ----------------------------------------------------------------------------------------------------------------------------------------------------------------- 93.92s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/install_redhat_packages.yml:9 --------------------------------------------------------------------------------------------------------------------------ceph-mgr : install ceph-mgr package on RedHat or SUSE ----------------------------------------------------------------------------------------------------------------------------------------------------- 78.47s/home/cephD/ceph-ansible/roles/ceph-mgr/tasks/requisite.yml:2 ------------------------------------------------------------------------------------------------------------------------------------------------ceph-mon : create ceph mgr keyring(s) when mon is not containerized --------------------------------------------------------------------------------------------------------------------------------------- 18.35s/home/cephD/ceph-ansible/roles/ceph-mon/tasks/ceph_keys.yml:61 ---------------------------------------------------------------------------------------------------------------------------------------------------ceph-osd : manually prepare ceph "filestore" non-containerized osd disk(s) with collocated osd data and journal ------------------------------------------------------------------------------------------- 12.11s/home/cephD/ceph-ansible/roles/ceph-osd/tasks/scenarios/collocated.yml:53 ----------------------------------------------------------------------------------------------------------------------------------------ceph-osd : activate osd(s) when device is a disk ----------------------------------------------------------------------------------------------------------------------------------------------------------- 9.93s/home/cephD/ceph-ansible/roles/ceph-osd/tasks/activate_osds.yml:5 ------------------------------------------------------------------------------------------------------------------------------------------------ceph-config : generate ceph configuration file: ceph.conf -------------------------------------------------------------------------------------------------------------------------------------------------- 7.68s/home/cephD/ceph-ansible/roles/ceph-config/tasks/main.yml:77 -----------------------------------------------------------------------------------------------------------------------------------------------------ceph-mon : collect admin and bootstrap keys ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 6.42s/home/cephD/ceph-ansible/roles/ceph-mon/tasks/ceph_keys.yml:2 ----------------------------------------------------------------------------------------------------------------------------------------------------ceph-mon : create monitor initial keyring ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 5.64s/home/cephD/ceph-ansible/roles/ceph-mon/tasks/deploy_monitors.yml:22 ---------------------------------------------------------------------------------------------------------------------------------------------ceph-mgr : disable ceph mgr enabled modules ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 5.45s/home/cephD/ceph-ansible/roles/ceph-mgr/tasks/main.yml:32 --------------------------------------------------------------------------------------------------------------------------------------------------------ceph-config : generate ceph configuration file: ceph.conf -------------------------------------------------------------------------------------------------------------------------------------------------- 4.88s/home/cephD/ceph-ansible/roles/ceph-config/tasks/main.yml:77 -----------------------------------------------------------------------------------------------------------------------------------------------------ceph-common : configure red hat ceph community repository stable key --------------------------------------------------------------------------------------------------------------------------------------- 4.35s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/redhat_community_repository.yml:2 ----------------------------------------------------------------------------------------------------------------------ceph-common : configure red hat ceph community repository stable key --------------------------------------------------------------------------------------------------------------------------------------- 4.07s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/redhat_community_repository.yml:2 ----------------------------------------------------------------------------------------------------------------------ceph-config : create ceph initial directories -------------------------------------------------------------------------------------------------------------------------------------------------------------- 4.06s/home/cephD/ceph-ansible/roles/ceph-config/tasks/create_ceph_initial_dirs.yml:18 ---------------------------------------------------------------------------------------------------------------------------------ceph-common : purge yum cache ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 3.59s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/configure_redhat_repository_installation.yml:23 --------------------------------------------------------------------------------------------------------ceph-common : configure red hat ceph community repository stable key --------------------------------------------------------------------------------------------------------------------------------------- 3.27s/home/cephD/ceph-ansible/roles/ceph-common/tasks/installs/redhat_community_repository.yml:2 ----------------------------------------------------------------------------------------------------------------------ceph-config : create ceph initial directories -------------------------------------------------------------------------------------------------------------------------------------------------------------- 3.27s/home/cephD/ceph-ansible/roles/ceph-config/tasks/create_ceph_initial_dirs.yml:18 ---------------------------------------------------------------------------------------------------------------------------------ceph-config : create ceph initial directories -------------------------------------------------------------------------------------------------------------------------------------------------------------- 3.12s/home/cephD/ceph-ansible/roles/ceph-config/tasks/create_ceph_initial_dirs.yml:18 ---------------------------------------------------------------------------------------------------------------------------------
4 _2 Q# X9 Y; Q4 w. \( O检查集群状态+ f: N  i: S' Y# R+ k
cephD@node ceph-ansible (stable-3.2) $ ssh node1 sudo ceph -s  cluster:    id:     bb653ada-5753-4672-9d3b-b5e92846b897    health: HEALTH_OK   services:    mon: 2 daemons, quorum node1,node2    mgr: node2(active), standbys: node3, node1    osd: 2 osds: 2 up, 2 in   data:    pools:   0 pools, 0 pgs    objects: 0 objects, 0B    usage:   214MiB used, 89.7GiB / 90.0GiB avail    pgs:     0 A1 G8 ~# G- T3 k# Y
其他操作可以参考【七 使用ceph-deploy安装】第7步之后的操作
- }9 H% B% T( D# `7 X0 [+ b
NOTE:本节安装没有ceph-admin节点,所以node节点上是没有ceph的,所有ceph操作需要在node1上执行:
* x' C# {) w- y7 r2 @3 V8 C- |' C& Mssh node1
. h+ h3 q+ F4 s1 y5 C# D' x$ z6 w8 [2 i
八 离线部署本章在cceph主机以ephD用户执行
& h# S: I! B% y! i
  • 搭建本地仓库/ s1 ?% \; ^+ w8 I7 _
    CentOS7搭建本地仓库--CEPH
  • 使用ceph-ansible部署
    3 s7 e& V; @& h0 X5 E. d! t- c参考【七 ansible 部署ceph集群】
  • 与第七章不一样的地方2 T) m+ S4 B7 d6 D1 e
  • 安装python-pip工具注意点
    ) n2 ~2 n4 q+ `" G8 I2 W" \
sudo pip install -r /home/cephD/ceph-ansible/requirements.txt --find-links=http://192.168.232.129/repo/python/deps/ --trusted-host 192.168.232.129
: U! W' f) S* J+ {: {$ L* o6 I# e
  • 配置ceph部署注意点
    ) B1 R+ U$ l) P
cp group_vars/all.yml.sample group_vars/all.ymlvi group_vars/all.yml------############ INSTALL ############ceph_origin:repositoryceph_repository: customceph_stable_release: luminousceph_stable_repo: "http://192.168.232.129/repo/ceph/luminous/"......monitor_interface: eth0......public_network: 192.168.122.0/24osd_objectstore: filestoredevices:  - '/dev/sdb'osd_scenario: collocated------
8 n  o! ^. d: `
  • 提醒" e4 R. ^" r4 m' l( H
    ceph-ansible 部署ceph集群的时候 cephD用户的一系列操作也是必要的8 q7 c6 `- e/ h7 m
九 操作集群
  • 启动所有守护例程" {3 t' O% z/ O3 F; e* _
sudo systemctl start ceph.target
3 G; K  I* w, v" c  q2 k
  • 停止所有守护例程* k: V) j: ?. Z; o
sudo systemctl stop ceph\*.service ceph\*.target$ V2 e9 H& d" T3 x" y8 j
十 问题&解决
  • [ceph_deploy][ERROR ] RuntimeError: NoSectionError: No section: 'ceph'5 n& U! Z3 q$ P6 _. r- o# T+ N
    Solution:等待20分钟,再次执行(有时候,由于网络原因,yum install -y ceph ceph-radosgw 时间会超过300s,造成超时)
  • [node1][WARNIN] Another app is currently holding the yum lock; waiting for it to exit...) s$ ^7 G% q' m7 O3 B( M) |. h
    Solution:等待,或者通过[ps -ef|grep yum]找到锁住的指令进程,cancel掉之后,以此执行yum指令
  • 安装特别慢
    8 K% Y( o8 }4 ~: Y- x# DSolution:可以不在一个命令中安装,经测试,支持并行安装,如下:/ M/ p) z. K4 {5 S  |
ceph-deploy install --release luminous node &ceph-deploy install --release luminous node1 &ceph-deploy install --release luminous node2 &ceph-deploy install --release luminous node3 &9 n" ]) O" W2 {8 m
  • auth: unable to find a keyring on /etc/ceph/ceph.client.admin.keyring  ---- ceph quorum_status --format json-pretty3 f0 }$ v1 ^6 @) e2 M" O
sudo cp * /etc/ceph/sudo chown cephD:root /etc/ceph/*
# k( T- e% w; m
  • [ceph_deploy.rgw][ERROR ] RuntimeError: config file /etc/ceph/ceph.conf exists with different content; ...
    : D& t+ R5 c# x
ceph-deploy  --overwrite-conf rgw create node1
9 f; H& R  S) [6 ~: {& W' z
  • [ERROR ] admin_socket: exception getting command descriptions: [Errno 2] No such file or directory' X, a1 n# O% H4 W2 ?- j' `: E
echo "public_network = 192.168.122.0/24" >> ceph.confceph-deploy --overwrite-conf config push node node1 node2 node3
: H2 N. ]8 F8 x% Z& N6 }) C9 Y
  • mgr和moni有啥区别
    ) i0 K: C. e, k( n, i在luminous版本之前,mgr进程包含在moni进程内部,L版开始拆分出来5 ]/ x/ ]1 ^' r7 t7 m: B
. u8 k0 r& `* u) ?% p# t

% O* M7 ~# m5 P- A! ]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-12-13 11:49:33 | 显示全部楼层
继续上节ceph 安装继续配置配置 Mgr3 b8 m9 W, Z% e
& ?2 }2 ?) Q$ M; l' C
  #  ceph-deploy mgr create ceph1:mon_mgr ceph2:mon_mgr ceph3:mon_mgr6 D# k7 J3 B3 U; B/ U

& F8 c# n% Y- L& z% A3 c开启 dashboard (在任一 mon_server 节点上)
  R% _" u7 |- V" m- l8 }
  K1 O2 W3 b3 J6 N: J6 ~% b  # ceph mgr module enable dashboard/ h" C. O- U, W' o

1 ?/ Y. V+ |6 ~# F0 t# `到此处mgr 配置完成。
/ N6 S4 O3 z7 Z6 O) P- A3 @
, s1 J2 g% H. H7 m" }5 d  d" D5 b在浏览器访问:http://mgr-server-ip:7000/# n- h" a* B3 u) n
1 V# l: |* p4 p# o0 F; v
  8 t3 U7 U" ]) h" P3 t  |, N
% P* p: v, m# B0 c2 T
3 p- t0 O1 t  o; E- Q5 d
$ i3 C- N, Q; q% G- T; \6 q$ k
提醒:目前 mgr 功能模块可能还存在选举问题,如果多mgr 节点都开启,可能会出现web页面取不到数据,建议只开启一个mgr节点服务,然后关闭其他节点mgr服务。
9 k5 i& \# _. R# w4 l$ s3 p
6 b4 B7 H" W5 U% p8 }  ` 1 B! @9 E. {# c) K% b& f

# }/ O& r4 j3 c. I % K. U" c- k) u& A* O" l' E

. q( |. j, {# z
1 t  m! o0 I4 L( l8 s3 H" F' I& |( I" U7 ^0 @/ ~7 }# K
设置dashboard 端口和IP, Z! j, Q# S9 s3 S3 C' G
8 Y8 D/ S' j& T, V* b9 w' |
  # ceph config-key set mgr/dashboard/server_port 7000   (指定集群dashboard的访问端口。可以不用配置,默认7000端口。)
; |+ v, o$ n8 e4 C
' r( T4 T' e: C9 K9 w. u) u  # ceph config-key set mgr/dashboard/server_addr $IP       (指定集群 dashboard的访问IP)
( o! N! c0 y$ y+ c' ~. h' r/ g) [4 h5 j3 t+ g' ?
服务重启:% A4 C3 u$ ~9 f* @7 L  f" a, X7 w8 g

3 T) _- |) H/ a" L$ D  # systemctl restart ceph-mgr@mon_mgr
, ^; R' G3 r9 K4 y% z9 O9 E* p6 v; l% C# R7 }1 c
; y4 @) X& c1 z  d+ i+ V; w+ c

2 V& d2 X$ N4 L" u& U 更新:
0 G' d7 p* g: ]( F* {) s5 @9 y
1 h  ~& [  q, a- `6 [mimic版  (nautilus版)  dashboard 安装* A1 u1 }- C* z3 N! f
  |. z* a1 X& L. J7 `) Q. ^3 }! \/ ^6 @* W
  如果是  (nautilus版) 需要安装 ceph-mgr-dashboard , N( A% K, C% _) c0 l% z
! V! m3 P% z8 Q; x2 A5 l6 y4 N
  # yum install -y ceph-mgr-dashboard
% o3 y: {1 z. C& d& G( G1 b
* s% a+ N" H$ M' h1、添加mgr 功能
2 O2 z+ u& w; I8 p" l' ~
- u! W& e8 h5 m& a$ o5 [/ V* Z   # ceph-deploy mgr create node1 node2 node3
1 y- m/ M: R4 w# c' Z1 Y2 _6 }' N4 I
2、开启dashboard 功能
$ x) Z$ O) [3 _0 i! E8 H3 l/ @% F4 T3 {6 ]  [
  # ceph mgr module enable dashboard
- @6 q' M2 D2 h# O
7 s2 ?/ L" e3 ]& @3、创建证书) s; L4 A8 }( F% ^7 s
! n! R& {9 t9 y! `
  # ceph dashboard create-self-signed-cert
! p: F# k+ M: L6 w8 ^- G; d
* u: ]% o: @* V/ V4、创建 web 登录用户密码. d! \9 V. D/ Y

2 D; K: Q, `$ z4 c0 u$ Q  # ceph dashboard set-login-credentials user-name password
0 y, U" P( q$ B# S& B$ L. a# B6 y: Z$ a  @( V# P+ s
5、查看服务访问方式
; M2 V5 O8 v2 \7 B8 S1 C4 I7 j7 F7 _: K( a" D0 H& ]+ C
  # ceph mgr services- b: l1 C) r  {2 s0 Z6 v
. z( U+ w" ^5 [6 X( u3 Q: Y6 s. x5 I% ?

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-12-13 12:06:16 | 显示全部楼层
Step 1.admin node Enable epel (Extra Packages for Enterprise Linux) repository、ceph.repo配置文件3 @  i3 \7 P" S% P0 @) x9 r
复制代码- V% {  U& ~! ~9 `5 p0 D
# 认证,但我显示系统证书崩溃,请重新注册,就先跳过了9 M5 D0 \. o, J, Z  q
yum install subscription-manager: C' J& L4 y' |7 T
subscription-manager repos --enable=rhel-7-server-extras-rpms
# P% T8 `# m, H1 N3 N+ ~3 e
" ~5 R! }! |$ X9 @. K- {/ N+ dyum install -y https://dl.fedoraproject.org/pub ... latest-7.noarch.rpm
6 o9 G& Z6 h- g/ [安装参考:
5 \( t6 i+ z, `+ G2 q% `+ d& q/ `http://www.mamicode.com/info-detail-1287279.html1 D4 c0 f# K3 w6 y
复制代码: O' n& D3 ~6 g7 g6 d

1 q3 l: _* \7 P" w, w2 x3 ]2 h
& o! I3 x7 F/ x( x7 N9 u2 E文件位于控制节点(即admin node)的 /etc/yum.repos.d/ceph.repo, N& i4 m5 r2 ~0 [

/ J4 T- f# {, ]$ r复制代码
  y$ G5 ?  U8 J0 M( R5 p7 M[ceph-noarch]
8 o) R8 o# l# {  Bname=Ceph noarch packages
9 X& m' ]6 P8 \6 u# baseurl=https://download.ceph.com/rpm/el7/noarch
8 [' U% c) k- x/ O6 ~! S9 sbaseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch, b; J+ m$ o: A2 c; J9 i
enabled=1
( M& r8 e/ W1 |2 T% p% m7 ^" v! Lgpgcheck=12 M+ a- H; M* Z
type=rpm-md8 u0 Q- Z5 e4 t/ |# D; u
# gpgkey=https://download.ceph.com/keys/release.asc
1 e  @  X( ~9 d1 Vgpgkey=http://mirrors.163.com/ceph/keys/release.asc  O# K. M3 j: l2 D# ^$ F/ I$ z
复制代码- a3 y: g* I+ l* K; |. M
注意: $ f5 k; f# e3 j7 j! c  H% `) E5 ]
上面的注释部分,是Ceph官网的写法。但是对于我们国内的安装,这样几乎无法成功,因为下载Ceph太慢了,会导致失败。因此,需要改写repo文件以更新Ceph源。
+ i- ?: o1 N3 P常用的Ceph镜像是163镜像。但在使用163镜像之后,必须将rpm写成rpm-luminous,这样才会安装ceph-deploy-2.0.0;若只写成rpm,则实际安装的是ceph-deploy-1.5.
, @  {3 h+ T; m$ [4 P  G' R' ^! X% B0 ~2 O) U) U) d7 N" S1 k

. ]5 q2 b' I: U
6 C6 Z9 ?; K" y9 N1 _Step 2.admin node安装ceph-deploy/ B5 g& \2 o2 V- P3 C! p1 |
yum update7 R; d1 u  l, W. l
yum install -y ceph-deploy
) t4 [/ m6 Y$ x7 E6 \; d  H 管理节点必须具有对Ceph节点的无密码SSH访问。 当ceph-deploy以用户身份登录到Ceph节点时,该特定用户必须具有无密码的sudo权限。6 F: `( h6 P% E, R; H! S0 t3 a

. h7 }/ y9 o2 N " I4 S/ N; y2 n) ?1 Y; `* w( y8 Y

4 F2 J% l4 h  R  [Step 3.每个ceph node 安装ntp和openssh-server
: F5 [. G% Y4 _$ I' s% x0 g2 y因为将来拥有monitor的Ceph node需要使用ntp来同步时间,因此需要安装ntp相关工具。而openssh-server也是必须的。
7 L6 P: g4 R9 s% U6 o/ c+ P$ |+ y! `
yum install -y ntp ntpdate ntp-doc
! R; x; _: o6 {4 H9 Kyum install -y openssh-server. F: w, e, M7 V- B' |" \& g) q

  B# x# e- ^1 \! B2 s2 w2 T9 _
9 f$ B$ t( O% S8 ~! t7 m$ MStep 4.每个ceph node创建一个Ceph Deploy用户
8 C) P; B, S6 T0 Z  T2 Zceph-deploy实用程序必须以具有无密码sudo权限的用户身份登录到Ceph节点,因为它需要安装软件和配置文件而不提示输入密码。
& E# z8 s$ J) g9 B; A7 U4 j( f  h7 `( ~7 d5 S
最新版本的ceph-deploy支持--username选项,因此您可以指定任何具有无密码sudo的用户(包括root用户,但不建议这样做)。要使用ceph-deploy --username {username},您指定的用户必须具有对Ceph节点的无密码SSH访问权限,因为ceph-deploy不会提示您输入密码。
, x4 s+ O$ |+ p/ \+ V* J+ c
1 T' g/ J; w* v% @8 Y. ~我们建议在群集中的所有Ceph节点上为ceph-deploy创建特定用户。请不要使用“ceph”作为用户名。群集中的统一用户名可以提高易用性(不是必需的),但是您应该避免使用明显的用户名,因为黑客通常会使用暴力破解(例如root,admin,{productname})。以下过程用{username}替换您定义的用户名,描述了如何使用无密码sudo创建用户。2 l+ N2 E! {7 c6 u4 @- q* \2 T* K

! @& P8 T1 j6 `注意:从Infernalis版本开始,“ceph”用户名是为Ceph守护进程保留的。 如果Ceph节点上已存在“ceph”用户,则必须在尝试升级之前删除该用户。) w3 L5 N, ~3 ^2 j7 G' m: n

% v# |0 H8 x  k6 y% i) Puseradd -d /home/luxiaodai -m luxiaodai
& G* }6 x) o, ~( |% upasswd luxiaodai(123456)
+ F1 I5 I4 @! H; R6 o# 给该用户sudo的权限
1 W! ^0 G6 T* O* \" xecho "luxiaodai ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/luxiaodai
$ E$ U/ I% Q: N" J' K; z( Tchmod 0440 /etc/sudoers.d/luxiaodai
1 i( j' X$ X! z$ l- m+ t " ^+ y% p, k1 |4 _* ?( N" V

$ Z9 D0 O1 N, {0 AStep 5.admin node设置免密和填写 ~/.ssh/config 文件( ^! M* e/ F1 E5 d3 @7 e% s7 p& y
设置免密' u, m6 n  p: C/ i4 m+ B) C) X3 R

. B7 c3 s% u# T6 `8 d3 h/ y复制代码
0 y! k  y& O6 D. z8 m) A8 l# 生成秘钥% D& i  P' F+ r9 |: v4 Y$ `# J
ssh-keygen
. ~% M& }1 T! \! X8 d
# l8 [3 W& `1 |5 z7 R# 拷贝到其余节点
6 j% d8 n- O* d- D$ kssh-copy-id {username}@node1
0 E. M: }  D: z( V# @ssh-copy-id {username}@node2$ b. D4 P* S  s$ c8 E  E6 t
ssh-copy-id {username}@node3
: h3 G8 x2 ?  G3 k/ ~复制代码* _) Q0 K2 p2 {; W* F5 u3 G: v1 h
~/.ssh/config 这个文件是给ceph-deploy使用的。通过此文件,ceph-deploy可以知道用户名和Ceph node的信息;这样,就不用每次在执行ceph-deploy的时候都指定–username {username}了。用户(luxiaodai)和节点名称(node1等)后面会介绍怎么创建的
( [# w( D$ h/ G' l
5 [) C- B4 t: B& A- q& B复制代码- F2 o7 y7 E  Q- E* J
Host node1
5 z; I$ @+ i& N( x' p    Hostname node1
, F4 N: ?0 ^) h3 \% e: n    User luxiaodai( w0 |/ k; w6 C" {
Host node28 v1 E  Y  |3 ?4 O5 c3 j1 N, T
    Hostname node2
* Z% e1 j8 M2 u    User luxiaodai, q6 ]7 \6 O& K% `- S  u/ X. D4 g
Host node3$ }8 V) T6 r$ _
    Hostname node3. l- T9 |: a- r' Q* o) e- h: d# t8 r
    User luxiaodai# T( M& L1 T! p
复制代码
) g3 C6 {+ u1 X" P关闭防火墙:
+ O# b8 V# l1 g( p( b) W/ ^6 j( J5 ]( O
linux修改主机名+免密认证+关闭防火墙 ; }+ k  M  u7 A+ B' L2 I: N
) i9 Z# M; E: v6 _
. M$ @7 X9 \# J) D5 @& L2 o# [
4 Q8 i. d; Q' s9 _5 A- p
Step 6.TTY& [) U2 u& U& N( x# J% g
在CentOS和RHEL上,您可能在尝试执行ceph-deploy命令时收到错误。 如果在您的Ceph节点上默认设置了requiretty,请通过执行sudo visudo并找到Defaults requiretty设置来禁用它。 将其更改为Defaults:ceph!requiretty或将其注释掉以确保ceph-deploy可以使用您创建的用户与创建Ceph部署用户进行连接。
3 j1 F, u- C. l$ M5 m
' d6 N! N* w' U( Z0 O6 h
/ p2 l% b( g4 u6 n' G. z: W
$ o3 i9 Q# Z8 m7 YStep 7.确保您的包管理器已安装并启用了priority/preferences package。 在CentOS上,您可能需要安装EPEL
$ S5 u8 A& J+ i3 ~yum install yum-plugin-priorities
: k% u! H  q# E: n! ^
& G2 s& |4 G* s( Q# H! \+ C- |3 U3 r( w5 b7 @
CEPH STORAGE CLUSTER安装
( @$ r% P6 `/ K( q$ F  aStep 1. 创建工作目录/ f+ I1 O3 S. R7 g
本步骤在admin node上完成。
% G8 M0 W, l1 |! B3 |
; Q- Z4 J9 ]0 r% X$ G- dmkdir my_cluster
6 B1 D( P/ V1 S( }cd my_cluster( f3 m" F: v% }2 i
ceph-deploy工具将输出一些文件到这个my-cluster目录。要确保每次运行ceph-deploy命令都是在这个目录下。2 p; J  E2 T6 ~1 H4 _- l) V

6 a& n, v: u+ ]- H- S注意: 不要使用sudo来运行ceph-deploy命令,也不要在使用非root用户时以root用户身份运行ceph-deploy命令。因为ceph-deploy不会把sudo命令也发送到远端的ceph node上执行。! Y- h& w7 v; b, j7 U) X% {( o

; Q. M' }2 E8 X" E% u& g9 C ; T$ z/ u6 G1 a' M
5 F, p- G* o* t* D+ E2 t2 H
Step 2.环境清理
2 p% N" P* t5 v' u1 p' Q在任何时候当你陷入困境希望从头开始部署时,就执行以下的命令以清空Ceph的package以及擦除它的数据和配置:
2 i4 y8 M( V7 s' I9 y
. W# l) z0 W" j1 P  Eceph-deploy purge {ceph-node} [{ceph-node}]
2 V" M, l9 y& a' X5 L* f0 X2 Y- oceph-deploy purgedata {ceph-node} [{ceph-node}]( J  Q7 [+ F% Q
ceph-deploy forgetkeys+ V, ?1 W- @5 w
rm ceph.*0 A/ v! K% {* V5 Q% w7 m
这里执行9 z2 H4 t! c2 R: E
- x; A4 U# Y  {  N# x
ceph-deploy purge node1 node2 node3; l4 s) [. E$ o9 w# n9 ~' O
ceph-deploy purgedata node1 node2 node3
+ P' J  _  g0 T/ g' X5 W的时候提示5 Q& r$ l2 |: ]; B' J

& o$ s: Q' ]8 ]/ Y& b  F' B4 xImportError: No module named pkg_resources: X( h" p$ a! H1 A& _4 m
解决方法:, V$ v  p  u- L- \* \
% G; ~, O3 V7 q1 R5 K3 A7 Y
yum install python-setuptools1 W2 r& s* U$ ?: T
如果执行purge,则必须重新安装Ceph。 最后一个rm命令删除在先前安装期间由本地ceph-deploy写出的所有文件。
2 ]6 Q" N( e2 O* ?" w& K/ E$ E4 }2 [

) p, _* r$ D4 ^- h: T0 l
! f% A3 k, |3 J, B0 J. eStep 3. 创建一个集群( v7 W$ U, h' j' v
先创建如下图所示的ceph集群,1 monitor + 1 manager + 3 osd daemon
6 f$ H& s1 R! U/ ~- j1 P  Q6 G$ D! u% V- H

% B" a  ]( Y$ q8 J3 j, d, M
2 T; o, }+ e8 k! W6 o $ F0 P/ ^1 E1 ~/ D6 C) V9 H

( n" c. w. E9 d" [: Q& w1.创建& X  U! ?: w+ N5 d
ceph-deploy new node18 }) [2 P; J1 L/ T4 ~
这个命令结束后,会在my-cluster目录下看到:ceph.conf, ceph.mon.keyring, log文件
  V5 _& S% z8 i8 D4 B  ^* E; K: ~2 B# Q6 |% J
6 L6 h6 g+ l  m6 v0 P4 r% b
: ^. M* m4 k; f% b3 R( z4 h( x5 [. ^
$ I( L# |' D+ ]: U) }
/ e! M. J; f9 m1 [0 x0 A
2. 添加public network的配置到ceph.conf
! D% ~# e9 r; a# {3 \. L3 s添加下面这句话到 ceph.conf 文件的 [global] 段9 j4 T! G; ]$ J* K# c' E
4 q5 Q, e, q+ Z
public network = 192.168.1.210/24
" d: L6 ?9 H- z3 K8 lor$ z) B, S" [) z( r( Z. C# m4 ^3 L
public network = 192.168.1.210/255.255.255.02 q* g2 c$ d9 U+ h( t" U8 M. |

- u& j) j. O& i2 U( A
8 |# P( S- o! @/ |' T% [% U- B6 D如果要在IPv6环境中部署,请将以下内容添加到本地目录中的ceph.conf:
! q; p' a) }% q: K+ |* I" D5 T1 u' h2 o: Z, D: G9 p
echo ms bind ipv6 = true >> ceph.conf
5 C8 m% |8 m7 K4 b6 o6 s 9 B( F% M: q' e4 i$ U1 \
" ]. w% F) ~$ ~: l) _* Y9 i
3. 安装Ceph的packages: D" r! P4 p, T# X1 p( N
ceph-deploy install node1 node2 node3" ^0 u, N- y* d
安装过程中出现的问题* C3 t3 e. y' d' ~, B7 G7 N0 K3 @2 y
' \# L$ e' D7 v' c; }* X/ T& m
复制代码# B  ]* [: b  \# @" f
# 如果安装一直有问题,清空/etc/yum.repo,然后将yum源换掉:http://mirrors.ustc.edu.cn/help/epel.html
/ R. S9 i: O& @  N问题:& M8 k3 k8 w) D/ U. C+ r
[ceph_deploy][ERROR ] RuntimeError: NoSectionError: No section: 'ceph'
* M! b2 z% N/ ?' l解决方法:; i! x# |$ E& Y* g* N% j
yum remove ceph-release. y7 G! ?' R  h1 @( A6 b$ ~# l
rm  /etc/yum.repos.d/ceph.repo.rpmsave8 P+ Y' b2 R6 e* ~' b5 L
问题:
- M3 f/ Q3 h: e" x: Q1 t9 k- j[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: yum -y install ceph ceph-radosgw
' p# l6 p/ z1 R0 G* W) I解决方法:4 N3 b2 A: M2 Z$ K
yum -y install ceph ceph-radosgw
, n( k, a7 ?" ~4 ?% V, eceph安装缺少python-werkzeug包
2 F8 I" G3 p5 X9 J+ j安装包下载地址:http://rpmfind.net/linux/rpm2htm ... ery=python-werkzeug
2 p4 Q! {& V2 z  f0 w1 [rpm -ivh python-werkzeug-0.9.1-2.el7.noarch.rpm" y3 r0 f5 ?7 Y5 m/ G( Q" Z
问题:[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph –version
4 F4 i3 }0 b9 o* V, ~. w解决:ceph1 安装速度过慢,已经超时了,直接手动安装 yum -y install ceph ceph-radosgw- D1 R, i) s: u% U1 G) m  S) O7 y9 Z
复制代码
+ r2 L1 h6 k2 q$ X 安装成功!!!
( }0 t" s! m# o' M# \7 t. F
. R6 [. l  I7 x" `4 Y
0 z4 a, J, Q. z( n+ h9 [
$ o1 G/ q2 F, v' l2 M) g ) H, @# _8 b3 D+ ~  u! n2 x/ A3 C5 [

- b; B( E7 X, l; }8 ]6 f' b+ H4. 部署第一个monitor并产生keyring
: S; z- X( t1 e4 R! _3 uceph-deploy mon create-initial
0 b0 S% {8 \8 ?/ Q- O; {1 C: N注意:
3 g+ T3 g- ?, e若出现类似于”Unable to find /etc/ceph/ceph.client.admin.keyring”这样的错误,则要确定在ceph.conf文件中的mon_host的IP应该是public IP,而不是其他IP.& k. O5 M6 B, g# }" H. e

; X, U6 N6 r# \. X# W2 K* }当这一步结束时,my-cluster目录会出现如下的keyring:0 n$ H) o9 W1 d8 G- W7 C
/ _2 U& n* n5 M6 g4 S% Z4 [, f
" f% ^6 l. D: N/ z

7 S/ C; l' C$ O& c1 I1 H
- u$ N- h) D  ^- G1 P4 G0 Z! O) [% e
5. 使用ceph-deploy拷贝配置文件和admin key到ceph nodes.
- i! }+ O: b3 c# d3 }: W$ R1 k这样就可以使用ceph CLI来执行命令了,而不用每次都指定monitor的地址和ceph.client.admin.keyring.
1 S& U8 {! f$ N  F+ N2 w5 n9 N% g  Z: q- u* t! [1 o3 N$ s/ ?
ceph-deploy admin node1 node2 node3
4 M; [/ ^) H8 Z- a# A . Y: k6 e. h' `/ I& n5 O
  |. I+ r7 u, R9 B& r
6. 部署一个manager daemon. (Luminous开始要求的)" e' g9 f" t1 H9 @5 a9 h
ceph-deploy mgr create node16 h5 D; N5 C5 {- }1 V5 \  k
3 h" f! X5 x3 k! F; |6 n. \  {# ?$ \

" C6 Y' b3 z7 K# P5 g7. 添加osd/ ?" a% m/ N# a4 c3 y2 v/ s
添加3个OSD。 出于说明的目的,我们假设您在每个节点中都有一个名为/ dev / vdb的未使用磁盘。 确保设备当前未使用且不包含任何重要数据。3 u/ f6 D3 G& a7 y  Y# [) }! S
. Y  P8 f  V0 j. n9 e1 l
复制代码& H. Y3 J3 S6 j9 P0 p5 |0 b
ceph-deploy osd create -data {device} {ceph-node}! {) k2 B" e/ {  r% P. N

& p+ j6 V% c) G" }% _5 D  i* mceph-deploy osd create --data /dev/sdb node1/ }4 k" A9 i7 O4 Y
ceph-deploy osd create --data /dev/sdb node2
- k: o3 o2 [( v3 lceph-deploy osd create --data /dev/sdb node3+ f& D# F8 A. w

7 n* v3 C$ }: W注意:如果要在LVM卷上创建OSD,则--data的参数必须是 volume_group/lv_name,而不是卷的块设备的路径。
2 e" h7 E, ~8 D& y* M4 w& |% v复制代码. Z$ p; O, q1 s% l4 W6 b$ l9 }. a

8 M, D; e0 ^* W$ B2 m  b' J. H

! I! G+ D8 ^9 ^) k" f+ Z3 i* y5 ]1 i7 r- ?. @
) ^5 e$ D2 K9 p
2 Z' x2 X! f9 \7 P
8. 健康验证4 e1 c9 p. t$ i1 l8 \
ssh node1 sudo ceph health; [. t# k6 b2 z9 I* _, p5 G
) `7 @. L* h9 y( j% H' |
您的群集应报告HEALTH_OK。 您可以使用以下命令查看更完整的群集状态:
' g! v0 @  y6 I  o" z5 h" x
2 `+ c4 Z0 O  P# ]ssh node1 sudo ceph -s
7 _  f1 L, y" O- ~0 j. ?9 [ 查询结果如下:: [$ v4 ]2 S- p+ _* Z' b4 C# d
0 I5 U. ]7 }9 e2 R
) ^0 {3 v, s7 E+ I: a, X4 K
  B* f; v0 i+ K$ e  {- Z

1 l, X( ~# o' Q  U/ B2 G8 @. t4 ?" o4 T& h

, Y  U( W5 q0 |# O
1 o4 t, `  J) N1 g8 NStep 4. 扩展集群
2 W2 h5 R& f% [9 O: O+ `+ {启动并运行基本群集后,下一步是展开群集。 将Ceph元数据服务器添加到node1。 然后将Ceph Monitor和Ceph Manager添加到node2和node3,以提高可靠性和可用性。
) v/ s' {) z( P) G  m/ @6 P) O
. W; C$ T8 ^8 y
* G2 g3 I/ L* [9 p. I: E/ _; c8 D, }6 f
对比第一阶段的工作,第二阶段要扩展的是:8 E# X& Y5 i% B5 H9 h
. U9 O0 t8 L/ }- v* B
添加1个metadata server
0 M1 L- p1 V  S- x6 B# h添加2个monitor1 {/ l3 v7 S, I; O
添加2个manager
" W# x' [3 T& s7 X/ P1 B添加1个RGW
7 X) Y7 |' K3 d
7 w+ y, ~3 Y' h+ n& k5 l5 G
- p9 }4 W: h$ `3 n+ j& P1. 添加一个metadata server
4 p  X3 g- ?( S  V如果要使用CephFS,就必须至少添加一个metadata server.
7 b7 d! M, N- E1 c# J8 f
' A  |7 \9 t9 v+ o# hceph-deploy mds create node1% _- B2 S$ V- X$ f- W4 o& m

& H  T! L6 m& x5 ^4 H3 r8 Q  y0 w- E. I
2. 添加2个monitors,达到3个monitors
/ |9 f; ~) w$ ^$ o' ~8 wCeph存储集群需要至少运行一个Ceph Monitor和Ceph Manager。 为了实现高可用性,Ceph存储集群通常运行多个Ceph监视器,因此单个Ceph监视器的故障不会导致Ceph存储集群崩溃。 Ceph使用Paxos算法,该算法需要大多数监视器(即大于N / 2,其中N是监视器的数量)才能形成法定人数。 虽然这不是必需的,但监视器的数量往往更好。9 |( y6 J0 _, D$ ?/ G

+ t) o5 r. j% l) f# U* r8 @ceph-deploy mon add node2, a, B8 t- X" W" `, A
ceph-deploy mon add node3- C, I, S' d  `9 d5 }* }" Q" H% E
在添加新的monitor之后,ceph会开始同步这些monitor,并形成一个quorum. 要检查quorum的状态,可运行:
2 E9 i0 p* R+ @/ N- D+ e* q5 o) x  J/ z3 f9 c
ceph quorum_status --format json-pretty
0 a* t7 [; X. y6 {复制代码3 ]* ?1 K  C. r# U$ @( P
[root@node1 my_cluster]# ceph quorum_status --format json-pretty
+ Z+ l7 I9 S+ B. j# N{4 _: |( r( w; L8 y
    "election_epoch": 12,# ^6 S& T% q' T8 P! I
    "quorum": [+ R  M" W  K3 ]9 b9 L3 ^+ c+ G) b' W- u
        0,
. c) X2 }( H- e/ g$ e3 T) R        1,
: p0 N9 E8 q2 V5 D        2& X& ~* l4 I" Y
    ],
) @+ L+ r7 s* R; W- B    "quorum_names": [( `  A6 e5 g- h0 Y' Y. k( L
        "node1",. b7 s  G! |' f4 J! {/ |7 o( K  Y. N
        "node2",
4 X& A7 d4 x5 u& W# B& c& k! t        "node3"
4 k. R7 {- Z9 P" \% k% r; p! z' S    ],1 G% y: q! C3 j) s
    "quorum_leader_name": "node1",
* I2 z0 k8 J0 \" V' i    "monmap": {
9 Z" L+ G6 M* u- @        "epoch": 3,
3 b/ A; o0 v+ U) h        "fsid": "f314d1c1-b6b9-4060-95b7-c25ec192f612",
5 m- Q- S  s2 A2 T; ~  p1 k        "modified": "2018-11-13 16:04:02.221558",1 W& h0 r1 y8 m& c' ?3 a
        "created": "2018-11-13 15:35:34.338001",
0 Y! d. n8 J# N4 ^$ i. q$ j6 j! i        "features": {
& `  N) ^; \; t; n! Q            "persistent": [
: C% W- o+ T; F7 L. ]. W4 j+ o# W                "kraken",
1 ~& A" @# k( A2 O& ]8 X# X: _                "luminous",
6 n" T. t+ I& x/ X                "mimic",
+ x& e: Y1 F8 b2 m' Z3 T                "osdmap-prune"
/ p" G& A( J) L6 D+ @) [' r            ],9 w/ y/ D* r: P- l3 [
            "optional": []
7 H8 B3 w, `/ d" J        },; {. c' o- K4 z& B$ F% b2 F) p( A! C
        "mons": [
6 ^) x) R; @/ r* ]$ h, z' ]8 F            {9 q. C. T7 [5 R6 ~5 I
                "rank": 0,8 }) c. w) x3 p! {
                "name": "node1",- o  T7 |0 X; K; ?, D
                "addr": "192.168.1.210:6789/0",
6 m. A* N  E, b/ F                "public_addr": "192.168.1.210:6789/0"6 \" O& @" Y7 D
            },* W! _4 [" H+ [$ `, N& G: f
            {; r7 I2 h2 ]0 ^* r( q
                "rank": 1,9 x1 W. w7 U( {7 x" h/ \
                "name": "node2",6 \1 {  R. l& Z; B' {' O+ c4 q
                "addr": "192.168.1.212:6789/0",
7 L1 f% M- }& A: \                "public_addr": "192.168.1.212:6789/0") X4 G, f4 |; f, o5 d" d7 U: j
            },' H: Y4 ~$ L# D: `1 k7 D
            {; Y5 _  K) t3 w8 y- |# j! a
                "rank": 2,
% C, E; R! C& C! t1 U/ K; x) ^) O$ Y. X                "name": "node3",# a8 h1 B% v# d1 }$ w
                "addr": "192.168.1.214:6789/0",( i1 T2 E  {# `- f
                "public_addr": "192.168.1.214:6789/0"' ]5 b" x& \& n& z- D" q8 O5 Y
            }
/ s& p/ H/ I/ h( b8 m        ]4 N; n3 S* h/ @& Q1 ]
    }
8 u( V. y/ |# ]% s6 z}1 J- }9 b( R. P! F, c: ]8 M
复制代码
) a, z! k" Z4 p当给Ceph安装多个monitor之后,应该在每个monitor主机上都安装并配置NTP,以保证时间的同步。ntp的配置这里从略,只简单概述一下原理:将2台monitor所在机器配置成向第3台monitor机器做ntp的同步,而第3台monitor上通过crontab来定时调用ntpdate命令向Internet上的ntp时钟源做同步。+ Q5 \& |$ ?( o, m
/ t9 p, n6 C6 P' ]1 h7 J! w3 u
: j9 H9 b9 `6 V7 L$ u, q. S
% B! Q. N* n) u. |+ ~
3. 添加2个managers,达到3个managers, c$ q; X/ y  v
Ceph Manager daemon工作在active/standby的模式。添加多manager,可以保证如果一个manager或host宕掉,另一个manager可以无缝接管过来。% R6 K! y3 ?5 x; X

' q3 l+ n; a3 A4 @8 Hceph-deploy mgr create node2 node3& z2 s0 q8 |) u. L- V+ V6 y9 _
可以通过ceph -s命令看到active和standby的manager.
. y/ V: F2 O/ p+ K- N; g3 G$ X- G: [/ i' s! D

2 o+ |$ }3 ~7 W1 |& b) d+ J5 z0 L6 T/ a) t
: y% Z# Y6 w% A  j; Y7 ~6 r
! ~; `4 i, s7 U( e! e9 L) _8 b* E
; n; o. h$ H( a3 e! i+ b6 Q; _& P

; e# L! Y  H, U  ?9 n1 U4. 添加一个RGW实例: x, o5 W8 x1 T& p
要部署Ceph Object Gateway组件,就必须部署一个RGW实例。
: ?  D) X& o% F! G3 m9 i  ?- C* v. u0 x* M. Q4 G/ X$ j: k
ceph-deploy rgw create node1* C( ^1 V! A8 S8 q- d, D" y" I
GW instance监听在7480端口。若需改变端口号,可修改ceph.conf文件。% ^) s6 K) X% y3 u: Z8 z

6 `& W& r, r. K4 P. i* @[client]
8 d) }# t' X2 ~' V, lrgw frontends = civetweb port=80
- u4 y! L& S3 \& J  q若要使用IPv6地址,可以如下修改ceph.conf
* X+ X; c: ?6 V# C! `8 c* I/ Y' D4 }/ E- v* c' K
[client]
0 }6 i+ Z8 p8 ]7 W; n: \rgw frontends = civetweb port=[::]:80, j& F( _+ W2 e$ r/ S( `4 [
. R/ Y: O: C6 q. v: F7 ~

  Z8 L, T+ a" x: Z3 }% s存储/检索object数据" O& _9 [5 M$ Z/ f5 i6 V' R
要存储object数据,ceph client必须:
0 ?" j6 Y2 O/ [! I1. 设置一个object name
3 e( `$ z4 c( ^5 j% ^2. 指定一个pool
$ r5 F7 L$ |& O: B/ k/ J: t8 b; L$ K! h- n: _% W
注意: ; f4 H* V+ O" S4 [
关于ceph client,将在下篇博客介绍。3 {% H* Y) ]) N6 m! e! _3 H
. ^% C9 r" M* M# P
Ceph client获取最新的cluster map; 而CRUSH算法计算怎样将一个object对应到一个placement group,然后再怎样将这个palcement group动态赋给一个OSD daemon. 6 o7 `/ N: ~7 m! l5 u/ K
要找到这个object的位置,可以执行如下命令:
/ F. Q0 _  H6 L0 p. U
. Q" C, O! E  G2 V' `ceph osd map {poolname} {object-name}4 }0 @* ?7 n# J. z- O
作为练习,让我们创建一个对象。 在命令行上使用rados put命令指定对象名称,包含某些对象数据的测试文件的路径和池名称。 例如:+ U+ E) B% U7 r4 A0 @
: x) X( p0 e9 ^! P( I: i. ~$ H$ \
rados put {object-name} {file-path} --pool=mytest
: k. Z2 D5 g3 a( E: y+ @8 ?ceph osd pool create mypool 8   # 8是该pool的PG的数量3 a& o8 h9 i3 c/ d& S2 h
echo "Hello, World" > 1.txt; k4 _$ u# p, e7 c2 Q8 e
rados put my-obj-1 1.txt --pool=mypool: ~4 E0 {6 a, i  p' e3 e. y% L# B
: O2 a6 n7 q4 q$ _# y
检查Ceph集群确实存储了这个object:2 _! v  Y$ l2 i! |! W& P

8 r2 l7 ]7 J! ~: K' p. @rados -p mypool ls
2 C5 H* K  D9 z! S3 ~确定object的位置:2 }& v8 }; ?) m
7 u% ?+ d, A4 @. ]3 z% R, W$ k
ceph osd map {pool-name} {object-name}: y$ b2 K  Q. v7 T7 z/ p
[root@node1 luxiaodai]# ceph osd map mypool my-obj-12 C: i8 D+ K8 B( y) u! ^' ?
osdmap e26 pool 'mypool' (5) object 'my-obj-1' -> pg 5.ced445fe (5.6) -> up ([0,1,2], p0) acting ([0,1,2], p0)
8 L. \" @$ D, R; N1 j: t* X# o3 f! G* a7 Q$ z2 ]0 Y0 W
若要删除这个object,可以这样:
3 o; C  }; s! E2 X" {* ~' D0 n! \# Y4 \4 f
rados rm my-obj-1 --pool=mypool; D4 B' G# a5 ]. R, ~: U
如果你要删除池,使用下面命令,出于安全原因,您需要根据提示提供其他参数; 删除池会破坏数据
, q" E. n6 A9 ]- G& f
* j4 Q0 d) L2 v4 D) lceph osd pool rm mypool
2 S5 j# T) q* E+ @6 g: U: e! ^4 }7 q删除需要修改配置文件,加入红色部分,必须在mon节点上执行' R2 u" n1 c/ \6 l7 i4 @2 h4 G

( O1 p3 |" z% ^9 H9 {* ]复制代码/ [. z" G7 R+ e) n; [- Q5 N# `
[root@node1 my_cluster]# ceph osd pool delete mypool
# ~3 U+ }6 L/ fError EPERM: WARNING: this will *PERMANENTLY DESTROY* all data stored in pool mypool.  If you are *ABSOLUTELY CERTAIN* that is what you want, pass the pool name *twice*, followed by --yes-i-really-really-mean-it.
/ T" t6 B; L% {- a7 P* g; B# u[root@node1 my_cluster]# ceph osd pool delete mypool mypool --yes-i-really-really-mean-it
7 A' b  [3 p7 R) U: @1 T  G* Q" ]- ]3 B4 wError EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool1 X: t2 u$ w1 o" B2 t8 Z
[root@node1 my_cluster]# vim /etc/ceph/ceph.conf 5 B9 M& t! R" b. ]2 B3 s1 ]
[root@node1 my_cluster]# cat /etc/ceph/ceph.conf
9 z1 _8 X- b* V$ a  `2 S* h" ~# y[global]4 Z, P: y" @$ g) X2 m1 a
fsid = f314d1c1-b6b9-4060-95b7-c25ec192f612
1 @& d; d# A" M* Vmon_initial_members = node1
" f( _. W8 l  ~6 A3 u) ]mon_host = 192.168.1.210  q+ M1 M1 C* N+ A0 v! y; d
auth_cluster_required = cephx
* j4 H# `% c0 |& O$ S) ?auth_service_required = cephx3 g/ r7 ~6 |! U; m/ D- x
auth_client_required = cephx
8 I/ i4 k$ L4 z% @public network = 192.168.1.210/24
6 N$ g6 |5 X' N3 t* t/ `5 r# ^
: L! `& X# v8 N# \[mon]
& n0 R& f) `( o# p. O1 X% ymon allow pool delete = true
7 q: B- @( m. P2 G' T9 I[root@node1 my_cluster]# systemctl restart ceph-mon.target
$ ?: `$ Z  h# [+ c* J/ ^8 I[root@node1 my_cluster]# ceph osd pool delete mypool mypool --yes-i-really-really-mean-it
# }+ E3 U5 U  y2 d  a6 ]pool 'mypool' removed8 G0 F- f% A9 F* @% }$ }. X0 G
复制代码8 X) z9 I; K) {8 Q( f6 e) f
现在,集群部署好了,object也能成功创建了,但是却并不利于用户的使用。用户使用存储,一般不直接通过原始的object,而是主要有3种使用方式:$ P3 F+ @6 C& p: A
块设备2 c7 W/ {5 Y3 G* x  O
文件系统  e1 K4 r" ~% B& z3 m0 b# v, L/ b
对象存储(比上述原生的object多了一些封装,常见的有通过S3 API或Swift API进行对象的存取)1 E7 x, j& n1 B% k% D. K' o6 O) v
4 l/ k8 A5 M6 Q7 f- s: c" `

0 f2 c. q3 a+ GBLOCK DEVICE QUICK START
  [# M5 Y6 K+ B3 R. n- E: T+ k1. 安装Ceph
# ~0 V+ Y; \4 ^0 u4 A首先要确保是Linux kernel以及合适的版本。* K, o9 ?" f8 Z: q+ K

: q8 S; W( o4 o5 T4 a5 G+ M在admin node上运行以下命令,将Ceph安装到ceph-client node上:
4 p) C7 N# @/ Y9 X; l8 d
8 w/ y  ^: e! Q( P5 y; S; Dceph-deploy install host
! G9 ]; B2 d% M8 \然后,运行以下命令将Ceph配置文件和ceph.client.admin.keyring拷贝到ceph-client上。$ E: c% S8 L# g
, d% t6 f+ i6 `
ceph-deploy admin host* F: Z0 t' T$ Z8 }5 h: a& t

( I* y; `6 d/ X
6 s) V. s: b4 g) I5 L9 h2. 创建一个块设备的pool/ Y7 Q/ U: y2 E+ C( C4 L
在之前的文章中,已经创建了一个叫做mypool的pool,现在需要运行以下命令以使得该pool可以作为RBD使用:
9 R$ u8 T9 l' ]1 c1 }3 b6 g0 Y5 z; K# f
rbd pool init mypool0 V- d  @% r  P6 U

& W9 T2 v, j5 K2 S, V4 G% L
- w7 R( [1 K* e! Y  H4 v9 e/ N3. 配置一个block device(块设备)
# w2 o& t: x; K2 i; y1.创建一个block device image5 S: y; t! C% B4 B
rbd create foo --size 4096 --image-feature layering [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring] [-p {pool-name}]
' ]6 i& L  {4 D% mrbd create test --pool mypool --size 4096 --image-feature layering -m 192.168.1.210 -k /etc/ceph/ceph.client.admin.keyring
9 X+ X! n+ K: B: `4 `, z如要查看所创建的rbd,可以这样:
; r6 o% }+ R# Y1 f" [4 i  w. t) a: R5 E" g, y$ T/ m
rbd info test -p mypool
. y: n9 Y7 u# i6 s5 x5 }结果如下:" o- `# ]* r* z6 g/ c5 z

  O; p- Y5 I6 I5 R
9 Y3 d# o& g' h: |# H
/ o% Z! l; D. k" ~; g 4 y' p6 o3 z$ |2 ?3 |4 \8 Z9 c

! a# m& m$ W  |1 Z2.map一个block device image
5 U$ g( A/ Y0 K. V& m7 N# o" Osudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring] [-p {pool-name}]
0 f& J, z# t9 [7 ?' H% o5 ]9 R# x. l! H0 ?3 D2 ]
rbd map mypool/test --name client.admin -m 192.168.1.210 -k /etc/ceph/ceph.client.admin.keyring1 H, X0 v6 X$ [+ X! {
* C' I7 @7 l& U' i" N
, a) Q" }) M+ ?$ e) l: A! ^6 C& M+ X
3.创建一个文件系统并挂载
9 E2 {6 X( ?% m: R2 f. M" Z2 N6 q0 i
* B( N% _: d" V
1 E. w( E8 c% h$ W注意: 这里的rbd map和mount命令只是当时起作用。若系统重启了,则需要重新手动做。 若要开机自动做
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:59 , Processed in 0.019618 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表