找回密码
 注册
查看: 520|回复: 0

ceph分布式存储rgw网关,分布式文件系统

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-8-17 13:39:38 | 显示全部楼层 |阅读模式
安装pip和ceph-deploy
# Q; T2 K, h( v5 @$ r[root@cephL ~]# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
% d6 l, v+ S9 ?% l/ S[root@cephL ~]# python get-pip.py9 Y% {" }% ?( q; Z
[root@cephL ~]# python -m pip install -U pip2 D6 Z* M( i- v. ]/ u
[root@cephL ~]# pip install --upgrade setuptools
3 v" h: W+ `  C* h) B" s1 P[root@cephL ~]# pip install ceph-deploy: q4 y2 W0 v+ ~* ]( f4 P
[root@cephL ~]# ceph-deploy --version
0 D3 o+ L! q( e2.0.05 r% U; p& U( `3 w
安装ceph软件包
. k! u9 z+ L' R- ^. Y- j6 i[root@cephL ~]# mkdir ceph-deploy && cd ceph-deploy" Z( o+ Q, P8 D
[root@cephL ceph-deploy]# ceph-deploy install cephL --release luminous9 g# f$ P/ [& w3 H
开始部署一个新的集群,然后为它写一个CLUSTER.conf和keyring: P  N5 Q- l8 {- E" C
[root@cephL ceph-deploy]# ceph-deploy new --public-network 192.168.56.101/24  --cluster-network 192.168.56.101/24 cephL
, M/ z1 ]3 V1 @! T0 Q3 c部署MON
" G" b6 E# v. ]" ?; q' J[root@cephL ceph-deploy]# ceph-deploy mon create-initial( R  ?  L- ~% a& P( h$ s4 J) ?- ?
[root@cephL ceph-deploy]# ceph-deploy mon create cephL. t2 m- n0 y9 n7 j- O8 q
ceph        1110       1  0 12:57 ?        00:00:01 /usr/bin/ceph-mon -f --cluster ceph --id cephL --setuser ceph --setgroup ceph. ~) D: `# N  n0 z' g1 p
部署OSD
' y$ h0 a1 o1 L7 P% Hbluestore方法+ R: x* O/ I7 q7 I
" G7 G0 e" N* N$ Q
# 在创建osd时,L版默认是bluestore1 {1 @0 Z# D5 b# d/ i, S: T
[root@cephL ceph-deploy]# ceph-deploy osd create --data /dev/sdb cephL9 K  z: s$ }3 i9 M3 c/ T0 l" I
ceph        1514       1  0 12:57 ?        00:00:01 /usr/bin/ceph-osd -f --cluster ceph --id 0 --setuser ceph --setgroup ceph9 B2 @$ l$ ?7 }
[root@cephL ceph-deploy]# ceph-deploy osd create --data /dev/sdc cephL% }# S( F7 l; K
ceph        1518       1  0 12:57 ?        00:00:01 /usr/bin/ceph-osd -f --cluster ceph --id 1 --setuser ceph --setgroup ceph
! x; [! Q; t5 a: U# K遇到问题' u2 q, @8 d# e

3 H; V" P5 {4 v" N5 ?. q0 A' [% W[root@cephL ceph-deploy]# ceph -s7 Z# P/ f% A( y! V  B' i- }, l
2018-04-10 12:00:19.660298 7fd1fe0ae700 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,: (2) No such file or directory
$ w5 [) j# [/ l6 J2018-04-10 12:00:19.660310 7fd1fe0ae700 -1 monclient: ERROR: missing keyring, cannot use cephx for authentication/ P' Z  M2 U5 r. K  r, E
2018-04-10 12:00:19.660312 7fd1fe0ae700  0 librados: client.admin initialization error (2) No such file or directory
' g% }$ @$ Y' i4 D[errno 2] error connecting to the cluster( s& g' W$ C- H2 Q) U( w: g
% S: V% M- O  f: Y; X# u' I: H
[root@cephL ceph-deploy]# chmod +r *
9 X* n- p. x* l9 z8 I$ `[root@cephL ceph-deploy]# cp ceph.client.admin.keyring /etc/ceph/  z; A% v$ E6 z" d+ \9 `
[root@cephL ceph-deploy]# ceph -s
9 u$ l' @8 Q, [7 l$ r/ O% _7 s2 s  cluster:* [9 I1 j+ m+ P, b' H
    id:     765752b7-1f77-4d0d-bc18-936b8ad409fd
9 I* u' j: p( x. i$ R6 r( R' a" G    health: HEALTH_WARN
3 A. U5 T4 S3 ^. e            no active mgr
( F+ y$ n2 b8 M* U% Y. J* {: Q2 ~3 k$ [+ N: i" O; ]# b
  services:5 b3 n: g& l# V# v
    mon: 1 daemons, quorum cephL
2 b; s2 n5 y+ L/ o* |    mgr: no daemons active
& X. D( E! f  z# F: N( R* p* _    osd: 2 osds: 2 up, 2 in
0 V: j- q. u, F6 @' M( Q/ A4 s4 B. x' d, O0 P8 H
  data:/ x8 a1 }' N) f8 q) |- y; o
    pools:   0 pools, 0 pgs
+ \4 b9 t% E. n" v/ r    objects: 0 objects, 0 bytes# J7 A0 q! X& I8 S% |& z
    usage:   0 kB used, 0 kB / 0 kB avail
" L3 v+ @) l7 |    pgs:: ?  P* g: F! o
filestore方法
! D- r9 [" q) n  Y
+ D) u# W  e- }. a$ x6 G# 如果是filestore则需要对data device和journal device先做GPT partition
% R; X. S# R9 T--data DATA           The OSD data logical volume (vg/lv) or absolute path to device
+ A; M" e. i  q6 h/ S6 w9 K$ J; i/ h--journal JOURNAL     Logical Volume (vg/lv) or path to GPT partition
4 g1 v+ j2 @$ x
$ S+ R8 ^) ]% b) j5 X, x[root@cephL ceph-deploy]# fdisk /dev/sdb
& D1 Y( z1 p$ D/ N5 z5 P1 NWARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.- K" E! Q5 U  N9 M# t
欢迎使用 fdisk (util-linux 2.23.2)。0 `. \) ]# C# ~7 }
更改将停留在内存中,直到您决定将更改写入磁盘。
# ], j' n% F- P6 `, |5 d使用写入命令前请三思。
9 s0 F7 Y; y% |, e% ^: }6 j命令(输入 m 获取帮助):g
, _( j* H+ \  bBuilding a new GPT disklabel (GUID: 80097CEF-475B-4161-ACC7-7164F6A39DD2)$ M0 E( T4 e) l+ p# r
命令(输入 m 获取帮助):n6 U( V/ `' L6 p$ D( g' l0 \
分区号 (1-128,默认 1):7 e! X! r; N+ z* }% U
第一个扇区 (2048-62914526,默认 2048):
& U' Z7 ~9 F: ]2 L1 e+ E& {2 i/ BLast sector, +sectors or +size{K,M,G,T,P} (2048-62914526,默认 62914526):
; }+ j. T, p, {* I1 p1 j" o# @已创建分区 1
' i, S3 c1 w4 O' b" V5 ?  _4 \命令(输入 m 获取帮助):w, ?1 a# v, |4 r& a
The partition table has been altered!
) a  ]% L) q* `0 c9 ~, M( q: }, CCalling ioctl() to re-read partition table.8 k9 \5 _  o) n5 D
正在同步磁盘。
$ U: ]! e+ m8 y' R& Y8 H3 G( m6 a  g$ _/ c
[root@cephL ceph-deploy]# fdisk /dev/sdc
: V& B3 _( H1 x  x* sWARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
9 M& t, G& n" W" P. Z欢迎使用 fdisk (util-linux 2.23.2)。
  F* _7 p: O; b) m4 n# j. M更改将停留在内存中,直到您决定将更改写入磁盘。
# Z" N' {9 Y6 q' f5 x使用写入命令前请三思。
& F$ e, T8 j  a1 E5 m9 o0 [8 `命令(输入 m 获取帮助):g* j' W, a9 e& X4 t5 U
Building a new GPT disklabel (GUID: 21DFA98C-5BCF-40E7-A120-3DEDEA6600ED)
+ p- _" @: m0 C" p# Z: A& C命令(输入 m 获取帮助):n
/ I! C( Z  U  C0 m分区号 (1-128,默认 1):) N) q  `6 R8 z/ h1 Q+ |& h0 V3 I
第一个扇区 (2048-62914526,默认 2048):
8 e, A( o6 H) ELast sector, +sectors or +size{K,M,G,T,P} (2048-62914526,默认 62914526):
5 r, b, i) R* p9 H' ~3 s# {2 b已创建分区 1& b3 o' ?1 `5 t5 b; Z
命令(输入 m 获取帮助):w
4 V% g- K8 U# {6 p+ P6 s+ BThe partition table has been altered!# b1 x% F2 o1 S. S& n+ e& O
Calling ioctl() to re-read partition table.5 Y& o- {8 N( v0 i7 G  w0 R  y
正在同步磁盘。
7 H/ l5 N. v( u
: c& ?; r3 a" a[root@cephL ceph-deploy]# lsblk
: {  ~* h0 A& [' TNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  o; `: q" Q. p4 C4 Ksda               8:0    0   40G  0 disk
# s- Y: c! g9 B) J/ ]; d├─sda1            8:1    0    1G  0 part /boot8 {) D& ]0 i, `: q- q' i
└─sda2            8:2    0   39G  0 part
/ p( U! \1 `# ?8 A( L$ h& ~  ├─centos-root 253:0    0   36G  0 lvm  /4 O1 @8 f/ Y" g0 ~+ w  m3 }
  └─centos-swap 253:1    0    3G  0 lvm  [SWAP]
0 e; m4 @# k2 B/ x6 e* C1 `4 Ssdb               8:16   0   30G  0 disk 0 D1 K" j& p- m; u% D  b. e) |
└─sdb1            8:17   0   30G  0 part
! _7 `4 C1 p) j! i0 d0 Usdc               8:32   0   30G  0 disk ; S* j" e. S5 e! z5 ^4 H8 w
└─sdc1            8:33   0   30G  0 part " Y3 p8 I; S: x$ d8 _0 Y( ]
sr0              11:0    1 1024M  0 rom  & l9 F' h5 G9 D* h

; ]  ?' }' W: @  \[root@cephL ceph-deploy]# ceph-deploy osd create --filestore --fs-type xfs --data /dev/sdb1 --journal /dev/sdc1 cephL
" R4 d$ q* Z. V/ e0 }4 G2 G* ][ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf: i1 b; q# L- u6 b7 K5 u& z
[ceph_deploy.cli][INFO  ] Invoked (2.0.0): /usr/bin/ceph-deploy osd create --filestore --fs-type xfs --data /dev/sdb1 --journal /dev/sdc1 cephL* |' Q; O; L* b- K
[ceph_deploy.cli][INFO  ] ceph-deploy options:3 Z. T. U& M" U2 K
[ceph_deploy.cli][INFO  ]  verbose                       : False
1 e0 j5 {8 f; T7 y2 N/ p[ceph_deploy.cli][INFO  ]  bluestore                     : None& n6 ?6 ^/ u  c) p
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x22c7320>
8 R$ P' k3 p9 n0 J5 b[ceph_deploy.cli][INFO  ]  cluster                       : ceph) R8 {0 S* D  v7 ]' g' e0 Z
[ceph_deploy.cli][INFO  ]  fs_type                       : xfs' w2 c7 @+ H# f+ z- w' ^
[ceph_deploy.cli][INFO  ]  block_wal                     : None
) L$ g' b% H# O3 W. {+ Q" |[ceph_deploy.cli][INFO  ]  default_release               : False; Y5 p) ~8 k" p% N
[ceph_deploy.cli][INFO  ]  username                      : None3 g2 Y, O9 U' S$ L4 h
[ceph_deploy.cli][INFO  ]  journal                       : /dev/sdc1. q; x0 h- T8 P/ P: m. H$ t
[ceph_deploy.cli][INFO  ]  subcommand                    : create  D  R2 v6 ]  J# e
[ceph_deploy.cli][INFO  ]  host                          : cephL9 y/ r8 j  F" V- Z9 R
[ceph_deploy.cli][INFO  ]  filestore                     : True
& d# d% U0 Y' E3 B- c6 ~( H- P[ceph_deploy.cli][INFO  ]  func                          : <function osd at 0x225ae60>
8 n  H( Z0 F% y# \[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
. |! G& l1 j/ u1 E+ E[ceph_deploy.cli][INFO  ]  zap_disk                      : False
: R1 q0 d6 {% p% H[ceph_deploy.cli][INFO  ]  data                          : /dev/sdb1( O/ U: D3 ]4 t' h( C* ~& Y8 S
[ceph_deploy.cli][INFO  ]  block_db                      : None
5 y; a* S& [# S/ k- y[ceph_deploy.cli][INFO  ]  dmcrypt                       : False6 F( f6 J* E1 m% p
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False; Q; o& ~; v' s! e2 u
[ceph_deploy.cli][INFO  ]  dmcrypt_key_dir               : /etc/ceph/dmcrypt-keys) w; t4 k# o# l. I7 a8 B7 j& b' Z1 R
[ceph_deploy.cli][INFO  ]  quiet                         : False
2 p5 G8 x0 p, w7 n% }[ceph_deploy.cli][INFO  ]  debug                         : False
1 d0 [6 d  O) W2 Q- y$ X[ceph_deploy.osd][DEBUG ] Creating OSD on cluster ceph with data device /dev/sdb11 H0 ?) X7 n4 l  U; m' N3 X
[cephL][DEBUG ] connected to host: cephL
$ ~$ x" P  N& M8 V6 i( r! e, I[cephL][DEBUG ] detect platform information from remote host
1 ~8 L4 ~" n$ s' c8 [[cephL][DEBUG ] detect machine type
# P) E! m0 @; I1 L3 q. s: v[cephL][DEBUG ] find the location of an executable
7 ^' T- z4 y5 k[ceph_deploy.osd][INFO  ] Distro info: CentOS Linux 7.4.1708 Core
- B$ e) r$ o( `[ceph_deploy.osd][DEBUG ] Deploying osd to cephL
& W6 P' y, s' f& h[cephL][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
; j1 ^- z7 X0 P[cephL][DEBUG ] find the location of an executable
% p, G( `3 A  T5 q% r- [0 a[cephL][INFO  ] Running command: /usr/sbin/ceph-volume --cluster ceph lvm create --filestore --data /dev/sdb1 --journal /dev/sdc1
9 f0 J& O1 ^3 R  ^8 d- X: W[cephL][DEBUG ] Running command: /bin/ceph-authtool --gen-print-key
$ P+ R7 J2 q' L$ a; x4 _[cephL][DEBUG ] Running command: /bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring -i - osd new 8b7be4a6-b563-434e-b030-132880a10d318 n- K* s1 A- q  }  O" J
[cephL][DEBUG ] Running command: vgcreate --force --yes ceph-8e2515c1-6170-4299-b82c-a5a47681f946 /dev/sdb1
* R' E( b* G8 r. j) W; v* [8 A[cephL][DEBUG ]  stdout: Physical volume "/dev/sdb1" successfully created.$ s$ z7 S" ^; Z" K4 ?1 j0 K6 R0 s
[cephL][DEBUG ]  stdout: Volume group "ceph-8e2515c1-6170-4299-b82c-a5a47681f946" successfully created3 S* S7 ]: j- f' V
[cephL][DEBUG ] Running command: lvcreate --yes -l 100%FREE -n osd-data-8b7be4a6-b563-434e-b030-132880a10d31 ceph-8e2515c1-6170-4299-b82c-a5a47681f946, R3 x6 A% F1 J8 U! h; ?9 `/ T7 U' f
[cephL][DEBUG ]  stdout: Logical volume "osd-data-8b7be4a6-b563-434e-b030-132880a10d31" created.0 G% T2 ?2 p( }
[cephL][DEBUG ] Running command: /bin/ceph-authtool --gen-print-key+ Y6 I9 z& }' o, m3 @
[cephL][DEBUG ] Running command: mkfs -t xfs -f -i size=2048 /dev/ceph-8e2515c1-6170-4299-b82c-a5a47681f946/osd-data-8b7be4a6-b563-434e-b030-132880a10d31
% u8 O  c# R: O- B  ]0 f[cephL][DEBUG ]  stdout: meta-data=/dev/ceph-8e2515c1-6170-4299-b82c-a5a47681f946/osd-data-8b7be4a6-b563-434e-b030-132880a10d31 isize=2048   agcount=4, agsize=1965824 blks( p* c9 U  g1 I# @6 Y$ e, u8 t
[cephL][DEBUG ]          =                       sectsz=512   attr=2, projid32bit=1& q1 d8 X8 r" ^1 d  @
[cephL][DEBUG ]          =                       crc=1        finobt=0, sparse=0
: N, y; ]0 o* Q* Q  a3 F[cephL][DEBUG ] data     =                       bsize=4096   blocks=7863296, imaxpct=25
3 }$ @2 p4 M1 _6 p" i* X  g( ^[cephL][DEBUG ]          =                       sunit=0      swidth=0 blks
: ?3 o* V/ f3 K7 k[cephL][DEBUG ] naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
3 S$ p) i" B0 b" @/ Q$ o& j[cephL][DEBUG ] log      =internal log           bsize=4096   blocks=3839, version=2
% X$ O. O$ \5 v4 S) B% F[cephL][DEBUG ]          =                       sectsz=512   sunit=0 blks, lazy-count=1* P/ d- V& F( t
[cephL][DEBUG ] realtime =none                   extsz=4096   blocks=0, rtextents=0" O% G+ y; z8 k: o& Q
[cephL][DEBUG ] Running command: mount -t xfs -o rw,noatime,inode64 /dev/ceph-8e2515c1-6170-4299-b82c-a5a47681f946/osd-data-8b7be4a6-b563-434e-b030-132880a10d31 /var/lib/ceph/osd/ceph-0
" H) ?0 _; E, N[cephL][DEBUG ] Running command: chown -R ceph:ceph /dev/sdc1
  I9 T8 {0 m- O7 b, `1 {[cephL][DEBUG ] Running command: ln -s /dev/sdc1 /var/lib/ceph/osd/ceph-0/journal
- H6 z) W5 y, u) c* O4 F[cephL][DEBUG ] Running command: ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring mon getmap -o /var/lib/ceph/osd/ceph-0/activate.monmap( g; [  |9 k) P* y3 v0 k5 c
[cephL][DEBUG ]  stderr: got monmap epoch 1; A) ?% x& \3 ~) \6 p
[cephL][DEBUG ] Running command: chown -R ceph:ceph /dev/sdc1
2 u6 A" }: A; U6 W[cephL][DEBUG ] Running command: chown -R ceph:ceph /var/lib/ceph/osd/ceph-0/  ]* H( i5 N; R: \( r+ ]+ K
[cephL][DEBUG ] Running command: ceph-osd --cluster ceph --osd-objectstore filestore --mkfs -i 0 --monmap /var/lib/ceph/osd/ceph-0/activate.monmap --osd-data /var/lib/ceph/osd/ceph-0/ --osd-journal /var/lib/ceph/osd/ceph-0/journal --osd-uuid 8b7be4a6-b563-434e-b030-132880a10d31 --setuser ceph --setgroup ceph
2 l9 c" O& H4 ~* d[cephL][DEBUG ]  stderr: 2018-05-07 23:01:34.834993 7f315e466d00 -1 journal check: ondisk fsid 00000000-0000-0000-0000-000000000000 doesn't match expected 8b7be4a6-b563-434e-b030-132880a10d31, invalid (someone else's?) journal1 T: Z/ _. G9 }* ~( I
[cephL][DEBUG ]  stderr: 2018-05-07 23:01:34.865621 7f315e466d00 -1 journal do_read_entry(4096): bad header magic
- @8 R8 Q* h! @7 j5 p[cephL][DEBUG ] 2018-05-07 23:01:34.865667 7f315e466d00 -1 journal do_read_entry(4096): bad header magic
9 h2 q! N# V; u% @( ^[cephL][DEBUG ] 2018-05-07 23:01:34.865988 7f315e466d00 -1 read_settings error reading settings: (2) No such file or directory
) C' E( u- S9 A8 c! @. Z3 J; S[cephL][DEBUG ]  stderr: 2018-05-07 23:01:34.916284 7f315e466d00 -1 created object store /var/lib/ceph/osd/ceph-0/ for osd.0 fsid 39f3b85e-ee3c-4d8d-93c2-7f7c8aa47121( M( K7 q. F% I; O' C
[cephL][DEBUG ] Running command: ceph-authtool /var/lib/ceph/osd/ceph-0/keyring --create-keyring --name osd.0 --add-key AQBDavBa0IPpIBAAlQxlaWxNrnTX/uaOMdZEQw==8 ]% |4 R% P' v$ x' j
[cephL][DEBUG ]  stdout: creating /var/lib/ceph/osd/ceph-0/keyring
# z  y9 V) s, m7 o[cephL][DEBUG ] added entity osd.0 auth auth(auid = 18446744073709551615 key=AQBDavBa0IPpIBAAlQxlaWxNrnTX/uaOMdZEQw== with 0 caps)7 d* H$ G" s' G6 g5 h8 S/ f8 i
[cephL][DEBUG ] Running command: chown -R ceph:ceph /var/lib/ceph/osd/ceph-0/keyring
8 }  g5 J; C  ~0 p" |, x[cephL][DEBUG ] --> ceph-volume lvm prepare successful for: /dev/sdb1
+ p+ X: o5 n+ |[cephL][DEBUG ] Running command: ln -snf /dev/sdc1 /var/lib/ceph/osd/ceph-0/journal1 K! i" R) M. w. }
[cephL][DEBUG ] Running command: chown -R ceph:ceph /dev/sdc1
4 j% f# ~: x% h4 k: B[cephL][DEBUG ] Running command: systemctl enable ceph-volume@lvm-0-8b7be4a6-b563-434e-b030-132880a10d31
1 `& s# x# v8 S* H' I[cephL][DEBUG ]  stderr: Created symlink from /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-8b7be4a6-b563-434e-b030-132880a10d31.service to /usr/lib/systemd/system/ceph-volume@.service.
$ T' A  T% _/ V. C& D2 j+ C+ [# g[cephL][DEBUG ] Running command: systemctl start ceph-osd@0  c0 y8 F: ]. f7 Y* r7 b
[cephL][DEBUG ] --> ceph-volume lvm activate successful for osd ID: 0' S! v; L7 p' ]( ?- {
[cephL][DEBUG ] --> ceph-volume lvm create successful for: /dev/sdb1
* p& O& f/ l0 J. j: _[cephL][INFO  ] checking OSD status...
: f# V. K+ t% s; E+ a, S[cephL][DEBUG ] find the location of an executable2 R, q/ i* ?; ~+ \% b* Z' b
[cephL][INFO  ] Running command: /bin/ceph --cluster=ceph osd stat --format=json
+ A- ^4 r  o0 |[ceph_deploy.osd][DEBUG ] Host cephL is now ready for osd use.
& W& b; K/ K/ s移除OSD) Z$ ]" g2 f1 E8 F
# 使OSD进入out状态6 j7 q+ |4 q+ v2 `' m  l
[root@cephL ceph-deploy]# ceph osd out 0
% \5 w2 F( a  C7 Y  s/ }marked out osd.0.
5 o* Q' m7 f/ r9 X# 观察数据迁移
$ u2 z. w" s9 z* t0 S# f[root@cephL ceph-deploy]# ceph -w7 w6 p0 m$ }. m) W
# 停止对应的OSD进程1 g9 r4 P# T! @4 `
[root@cephL ceph-deploy]# sudo systemctl stop ceph-osd@0
1 C. l. O# I6 |/ d% r) F& g! c! j# 清除数据
0 `1 {$ s& H$ E/ Z( P[root@cephL ceph-deploy]# ceph osd purge 0 --yes-i-really-mean-it
1 W; {( [$ r1 d/ Q& g# ^5 Ypurged osd.0
- y' [; S9 a0 ~" U# 在ceph.conf中移除osd配置
/ w8 r$ U$ w' {* D; ?[root@cephL ceph-deploy]# vi /etc/ceph/ceph.conf   d; V8 ]8 c" h! }5 g2 I/ z
部署CEPH-MGR
5 m3 i; u& a' d9 j! rinstall netstat tool. h4 t, R9 E; r# C1 V0 t/ ^
[root@cephL ~]# yum -y install net-tools$ T* e" p& @0 K* y: N5 [! l
2 @2 g3 H3 C4 Q1 Q% X
[root@cephL ceph-deploy]# ceph-deploy mgr create cephL:cephLMGR
3 q+ g. Z: r1 `5 Y# d4 l6 {9 ?! Qceph        1111       1  0 12:57 ?        00:00:08 /usr/bin/ceph-mgr -f --cluster ceph --id cephLMGR --setuser ceph --setgroup ceph& u+ |% w/ U* K9 w2 Q% _
[root@cephL ceph-deploy]# ceph mgr module enable dashboard
' w7 P; w' ]: ?9 V- s5 _  \
& p5 m. \. }% Z9 g' s' nopen 7000 port. Q0 [/ N! w4 e( n
[root@cephL ceph-deploy]# sudo firewall-cmd --zone=public --add-port=7000/tcp --permanent5 P1 w$ i% b2 C$ p- f3 O6 b
[root@cephL ceph-deploy]# sudo firewall-cmd --reload
1 F+ O: L0 K4 J. V8 g相关命令0 P$ |, v3 y2 t) @' R3 t& p% Q" G
" L$ V1 c  d, f! O; u" Z2 c' z
[root@cephL ceph-deploy]# ceph mgr module ls4 z. ~5 Y. K( V8 Z
[root@cephL ceph-deploy]# ceph mgr services
8 J; s8 n0 ], e# Q% Z! g4 X3 p[root@cephL ceph-deploy]# ceph tell mgr help
& e! n0 ^5 S  D4 H3 z部署MDS并创建CEPH FS
# z" d! |  R) R8 V& \1 {8 W% B[图片上传失败...(image-7d8937-1599396610118)]5 A, l3 r2 d) B

  ?9 f8 t" S& q( V[root@cephL ceph-deploy]# ceph-deploy mds create cephL
- f+ k2 d7 v9 D7 U5 s* k% hceph        2150       1  0 13:00 ?        00:00:00 /usr/bin/ceph-mds -f --cluster ceph --id cephL --setuser ceph --setgroup ceph
+ m: v8 g9 e0 I) v  vCeph文件系统至少需要两个RADOS pool,一个用于存储数据,一个用于存储元数据。7 G2 |, }. l8 l' H$ T
( n, z& V5 X: u" f
配置这些pool时,可以考虑:1 g- g* I% G+ F0 T

( L4 l2 \$ m3 ?8 W: k​ 对元数据pool使用更多的replication数量,因为该pool中的任何数据丢失都可能导致整个文件系统无法访问。6 [( d% r% H3 Z% D+ K% K$ @  Z! d

6 ]4 c& W, j! e" `​ 为元数据pool使用SSD等较低延迟的存储设备,因为这将直接影响客户端上文件系统操作的延迟。
4 r& h# m$ t, S, N5 N' {2 M( V' O" s% d: q+ [8 N; G
ceph osd pool create cephfs_data <pg_num>& U2 c" t# k5 N
ceph osd pool create cephfs_metadata <pg_num>
8 ^2 D# h& Z7 t3 h例如:
6 m) b6 P# q1 @6 Q0 H- }[root@cephL ceph-deploy]# ceph osd pool create cephfs_data 32. z: j. O4 j6 a
[root@cephL ceph-deploy]# ceph osd pool create cephfs_metadata 32. B3 ?4 T1 p( _% a  S- E# s7 E
更改pool的副本数
& x/ t& J" U1 g% O9 s6 O( f: C: ^% k- C+ x
ceph osd pool set {poolname} size {num-replicas}
( m; k6 l7 E0 x- a( ?1 K- t  y例如:
9 V+ D5 @2 K* Y5 c+ f1 s1 C[root@cephL ceph-deploy]# ceph osd pool set cephfs_data size 1" ]3 B* o4 |5 V0 `/ [( n
[root@cephL ceph-deploy]# ceph osd pool set cephfs_data size 1
, |1 }/ O6 ~$ P( D+ B: x一旦创建了pool,就可以使用fs new命令启用文件系统:
* \' C6 F( H& d
$ r/ `2 `( ^  `* W( S4 Y( rceph fs new <fs_name> <metadata> <data>
( i0 ?% a' v2 U* y* }# Q例如:0 m, w5 C3 B& V& w! Z
ceph fs new cephFS cephfs_metadata cephfs_data/ L5 }" L: H5 n2 U4 O( e* |  G
一旦创建了文件系统,您的MDS将能够进入active状态。例如,在single MDS system中:4 C* T& n! {$ s$ Q
+ B1 h/ o0 H- C3 ?
[root@cephL ceph-deploy]# ceph mds stat9 I- Q' i: c/ H+ s
cephFS-1/1/1 up  {0=cephL=up:active}
0 g6 p6 R$ `5 Z1 ]一旦创建了文件系统并且MDS处于active状态,你就可以挂载文件系统了。如果您创建了多个文件系统,在挂载文件系统时,选择使用哪一个。
  D: @1 {# P* W1 q# b+ W6 t
4 v! ~3 E! O" B3 T$ h( H如果创建了多个文件系统,并且client在挂载时没有指定挂载哪个文件系统,你可以使用ceph fs set-default命令来设置client默认看到的文件系统。& L( t) X2 y% O% f0 ]% y3 n
9 ^2 [6 V' Y+ c+ w0 p3 H
挂载CEPH FS ( File System ) 有两种方式:; @9 t; J" v1 N
5 p! F# l: d4 _8 r6 ?
KERNEL DRIVER# P* W* w7 |! Z: U# O* [" @8 U8 z2 E5 m

  Q6 L/ c) u) ~% R7 s' A7 B2 Q3 U要挂载Ceph文件系统,您可以在知道monitor主机IP地址的情况下使用mount命令,或使用mount.ceph utility将monitor主机名解析为IP地址。例如:
5 v" p% b% z0 ~2 x8 f; ?. n  |+ S% U3 K4 y2 a
sudo mkdir /mnt/mycephfs) ^+ a/ S9 u, n- O" i8 k  u
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs
; ^& x7 p7 B( x例如:
  ?& d7 Q" N, g8 \- X- T) z[root@cephL ceph-deploy]# sudo mount -t ceph 192.168.56.101:6789:/ /mnt/mycephfs
1 b# `5 u8 v7 }. Xmount error 22 = Invalid argument- s7 ?4 j8 m1 D4 [+ t
Ceph 10.x (Jewel)版本开始,如果使用kernel方式(无论是krbd还是cephFS)官方推荐至少使用4.x的kernel。7 O$ e5 Z" [/ t0 g6 c
如果无法升级linux kernel,那么映射rbd请使用librbd方式,cephFS请使用fuse方式。- q( ?) I5 p; U2 \; S: p
如果挂载Ceph文件系统时开启了cephx authentication,您必须指定user和secret。
0 B/ Q3 `0 i2 U9 i7 T
9 j/ M% V# {. o" g! Nsudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==
; y% L, y1 l# F& Z" f+ E上述用法在Bash history中留下了secret。更安全的方法是从文件中读取secret。 例如:
, j$ j' c% _& f; v1 Q% J1 R- s" m: C5 v9 b+ A
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret
; w; j! i% j5 p1 J3 R+ A/ }, S8 w如果您有多个文件系统,请使用mds_namespace选项指定要挂载的文件系统,例如-o mds_namespace=myfs5 r  y7 o# _2 f  H6 t
& @% x( |% e& ^+ J
要卸载Ceph文件系统,可以使用umount命令。 例如:
2 X6 j7 s1 }8 O5 v$ R* F5 g* B7 p( a1 a0 D; g: Y) l* N8 g
sudo umount /mnt/mycephfs
& b) Q0 t$ t' }提示:在执行此命令之前,请确保您不在挂载的目录中。& D. |- H2 D1 m/ u
FUSE, H! [. j/ e2 T' y; P# t' @

! k: r6 }# G3 p# d/ J在用户空间(FUSE)中挂载Ceph文件系统之前,请确保客户端主机具有Ceph配置文件的副本以及Ceph元数据服务器的CAPS keyring。
9 m; h7 O$ [! y. S' w. c5 q1 ]7 T0 d" o" x0 z# I6 u
在您的客户端主机上,将Ceph配置文件从monitor主机复制到/etc/ceph目录。" Z; [: p+ n4 Q2 q
+ b: R5 e; z/ f  N2 r* }: g
sudo mkdir -p /etc/ceph
* U7 g8 W# Z5 F1 z* D  ^. R  u8 {sudo scp {user}@{server-machine}:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
. }& X  O0 b& p( F) w8 u2 n在您的客户端主机上,将monitor主机的Ceph keyring复制到/etc/ceph目录。
- `9 T5 J; z. x, a  N& y/ r
6 ]) ]: ~. z1 y1 J" Rsudo scp {user}@{server-machine}:/etc/ceph/ceph.keyring /etc/ceph/ceph.keyring6 z/ c3 g( l1 q
确保Ceph配置文件和keyring在您的客户端机器上设置了适当的权限(例如,chmod 644)。
8 V5 o' x7 H7 E1 Z: g! }8 c% q! C" D# @1 A- w0 Z3 O
要将Ceph文件系统挂在为FUSE,可以使用ceph-fuse命令。 例如:" G5 R1 ?# A. F1 A0 S; [  D

( d  l+ T8 Q" P+ e$ |7 A& f5 v: Msudo mkdir /home/usernname/cephfs
- m0 D" ~* ^; j3 J2 m" tsudo ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs* P% v4 @! E; n! D% p/ X# m
如果您拥有多个文件系统,请使用 --client_mds_namespace 命令行参数指定要挂载哪一个文件系统,或者向ceph.conf中添加client_mds_namespace设置。: W+ J, e/ i6 H$ A8 W
  s( R8 c* ^. q3 h2 A
要自动挂载ceph-fuse,您可以在system fstab中添加一个条目。此外还可以使用ceph-fuse@.service和ceph-fuse.target systemd units。通常这些unit文件为ceph-fuse描述默认的dependencies和推荐的execution context。例如使用ceph-fuse挂载到/mnt:
6 Z, \/ w4 M! W0 O
5 l+ I0 U' @8 v1 v9 M( `sudo systemctl start ceph-fuse@/mnt.service
: s' S4 \% w  F% F* d4 l- z$ |持久化挂载点可通过以下方式进行设置:& b+ ^! q6 t6 f) ^( Y

' R) c$ q2 w5 |8 u# Tsudo systemctl enable ceph-fuse@/mnt.service7 u, T: Y3 j  k# |# R7 O
部署RGW2 c# w" m! N5 [
[图片上传失败...(image-ea6ad1-1599396610118)]
3 B: T: y$ ]( c% g" `' {7 `. [' F
. p1 K0 d! O& H* A6 RCeph Object Gateway原来叫RADOS Gateway,它是构建在librados之上的对象存储接口,为应用程序提供了一个RESTful gateway,用户可以通过HTTP协议访问Ceph存储集群。
% l) D2 p8 @0 h) |7 v! H0 h7 R  ?, T8 p* r' w+ d
Ceph Object Storage支持两个接口:- ]' q7 K( \7 P/ J0 D8 _9 m, K( E

$ m: c' O2 u5 J/ l8 R. DS3-compatible:与Amazon S3 RESTful API中一些子集兼容的接口,提供对象存储功能。: w, N2 |$ _. ?9 d: [3 m2 k
3 Z$ `; z0 J$ z# O2 [, F( N1 W
Swift-compatible:与OpenStack Swift API中一些子集兼容的接口,提供对象存储功能。
! L: j, @# Y+ N; B$ `: q
( v3 ~5 x6 m6 h0 c1 l8 \Ceph Object Storage使用Ceph Object Gateway daemon (radosgw),它是一个HTTP server,用于与Ceph存储集群进行交互。由于它提供了与OpenStack Swift和Amazon S3兼容的接口,因此Ceph Object Gateway具有自己的用户管理。Ceph Object Gateway可以将数据存储在与Ceph Filesystem和Ceph Block Device相同的Ceph存储集群中。但是我相信在生产环境中不会这么做,如果数据量大的话会影响Ceph Filesystem和Ceph Block Device的性能,个人一般会独立出一个Ceph Object Gateway集群。S3和Swift API共享一个通用的namespace,因此您可以使用一个API编写数据并使用另一个API检索它。
' O% C3 }! Y8 k" D: f+ m5 ~
3 v9 ^$ ?& c. |7 f' MNote:Ceph Object Storage 不使用 Ceph Metadata Server
# d' ]* }0 Y1 V# 必须部署MGR,才能部署RGW; W4 ]& Z! O( a1 g0 S4 x* t$ ?* r

: K5 R3 Q8 b' T% q# O! Z6 V! H[root@cephL ceph-deploy]# ceph-deploy rgw create cephL:RGW
0 ]4 y+ I! i, g1 J. j* E6 r8 Rroot        2799       1  0 13:13 ?        00:00:00 /usr/bin/radosgw -f --cluster ceph --name client.rgw.RGW --setuser ceph --setgroup ceph+ T6 j% S, L; b
6 S( q& l; E/ ~/ ]' N; H: n4 H
# 重启RGW
# ]) Q+ z5 A$ N. Y6 y[root@cephL ~]# systemctl restart ceph-radosgw@rgw.cephL.service
- E+ u/ O9 k/ g: G7 v) |4 X) Y[root@cephL ~]# systemctl restart ceph-radosgw@rgw3 }1 ~- V: {( `# Q" R3 e! Q
% I, U% K3 K6 ^- t
问题一,这难道是ceph-deploy 2.0.0的坑?
3 `$ p4 k' z. a) J7 l& S! B! x8 W[root@cephL ~]# tailf /var/log/ceph/ceph-client.rgw.log
7 Z4 u% u/ q$ L" `  f2018-05-11 22:30:31.999421 7f537c31fe00  0 ceph version 12.2.4 (52085d5249a80c5f5121a76d6288429f35e4e77b) luminous (stable), process (unknown), pid 3450( V  o4 B: A0 d, p& \( D: j5 }
2018-05-11 22:30:32.021546 7f537c31fe00 -1 auth: unable to find a keyring on /var/lib/ceph/radosgw/ceph-rgw/keyring: (2) No such file or directory; Z6 D3 |/ d( \/ s  X$ w$ ]
2018-05-11 22:30:32.021561 7f537c31fe00 -1 monclient: ERROR: missing keyring, cannot use cephx for authentication
6 p6 m+ {; V2 s& d' L* H2018-05-11 22:30:32.021563 7f537c31fe00  0 librados: client.rgw initialization error (2) No such file or directory
  F. d0 \! q1 y" t* ~+ b2018-05-11 22:30:32.022900 7f537c31fe00 -1 Couldn't init storage provider (RADOS)6 U' V: \6 E+ w+ j
3 _, \7 Q6 w! j4 S2 U5 U
[root@cephL radosgw]# pwd
6 \+ F. {9 _' {1 P5 ]3 B, l3 P; Y8 B/var/lib/ceph/radosgw% a( ]0 f) W. d! m4 G. P
[root@cephL radosgw]# ls+ |7 i' Z: W4 B& i* s& z! a' c
ceph-rgw.RGW; o0 W4 z, K3 v- |2 ?
[root@cephL radosgw]# mv ceph-rgw.RGW  ceph-rgw , o5 {3 Q% |' l& A
& A- d$ b2 C+ _

% b9 X( ?/ ]& p$ n- G& _1 |配置变动9 }3 ^" F! ]0 M5 [( P
在L版中,删除pool的操作做了强制限制。需要在/etc/ceph/ceph.conf中加入相关参数才允许删除pool。& j% r2 _3 r. |. a+ [$ @1 O

& @. V9 B1 k% t' g$ E( a# 允许删除pool,需要添加
* r: u  o" z# }$ x4 `2 Vmon allow pool delete = true# ?* A5 I* V" c8 {% g5 E5 r- J* a

" O! [) Y1 F. K. k& O' j0 D* t# f/ j3 f" i7 D  \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 23:55 , Processed in 0.019605 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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