|
|
#环境准备
+ ]5 w% w7 M4 H#升级内核
* f* O9 u! X/ g; ?, |) S#官网说明 http://docs.ceph.com/docs/master ... tions/#linux-kernel
( F! g5 Q0 N) ]" ~2 G& ]- o$ h#CentOS7 升级内核- C2 u" k8 T; q
# u0 N) T7 d, c- f4 }' h5 @
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org: Y4 C3 e7 r. J7 F& K
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm; C' d7 L) `: p s |) E
#安装kernel最新稳定版 X% l* v$ s$ A; ]
yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y Y- o# X* Y) _
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg #查看启动项( @9 ]- p5 }- d: K
grub2-set-default 0 #设置第一行为默认启动9 L. A0 b3 c! e2 N
rpm -e elrepo-release #删除源
- }* o; v! ^) B3 a7 v; J8 \) j# Q; freboot
( I" Z1 O5 {2 O$ m8 {" T#uname -r #重启后查看内核
$ p. P3 k1 v: t$ n4 {; P( F8 B#4.4.98-1.el7.elrepo.x86_64( L1 p/ n+ A9 F/ M5 u
###########################
; a3 r& |% s8 r3 ^* U
4 Q, o; p0 N& X; m$ s3 G* o# f0 C% w4 v: _" A2 O0 |: |
#创建ceph源2 O" e, l( G3 S% }, c5 \
echo '#阿里ceph源
0 N& b; g5 b# t4 A0 {[ceph]: c& ? U; ~, W; P3 ?* }9 ]
name=ceph4 P7 c7 F. ^/ z6 ^! P5 C1 E2 i
baseurl=http://mirrors.cn99.com/ceph/rpm-luminous/el7/x86_64/6 Z0 w1 b6 D9 v: x$ `
gpgcheck=0
7 w h3 k2 E- w[ceph-noarch]
6 {4 E* G; \6 t; Pname=cephnoarch) M7 A6 J. C' H% k% k* g1 F9 E
baseurl=http://mirrors.cn99.com/ceph/rpm-luminous/el7/noarch/
* t5 D4 L# j3 F# V- Hgpgcheck=0
v2 n: E2 D4 b4 [4 G, B[ceph-source]
+ h* S. u# [% a. [! Fname=ceph-source& } y6 k$ T, c$ {1 Q
baseurl=http://mirrors.cn99.com/ceph/rpm-luminous/el7/SRPMS/5 \' [2 F' b% X; P. T
gpgcheck=0
. m" \2 l9 ?! ]% v1 w6 ^#'>/etc/yum.repos.d/ceph.repo
0 Q( P, Y, U2 R# ryum clean all && yum makecache #生成缓存! g! e4 C8 Z7 k
#关闭selinux、防火墙
v$ i& z8 z) @! C R2 M7 O0 m, lsystemctl stop firewalld.service
5 \ U; N) d8 l' `systemctl disable firewalld.service( m3 \; W7 l4 R# t3 g5 M( s1 ]
firewall-cmd --state
2 |0 g$ d" T0 `6 C' C$ N; Jsed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config
" s4 w3 S/ F8 {6 I) i- {sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g' /etc/selinux/config7 `" D1 z) N* E/ j
grep --color=auto '^SELINUX' /etc/selinux/config
~6 S. n& o8 e) W' Y* Q* rsetenforce 0
7 y# W7 y. q" k6 A+ j
& ]1 ^; V" b& `" w- [( ~#时间同步
4 ~! z8 z) S6 \4 J[[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp -y &> /dev/null; } #若没NTP则安装
6 o8 s7 j5 _1 N( ?: _$ Z& C/usr/sbin/ntpdate ntp6.aliyun.com / w7 q$ K6 t1 f2 M- w2 [ n0 \* O
echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com &> /dev/null" > /tmp/crontab8 J2 K6 n* K7 L/ V; f
crontab /tmp/crontab H8 R% H1 E7 Z8 Y
; f- t: n% u, N###########################
5 K o( C2 q( Z" t0 L% W I/ K#网络
: M# D8 N6 X; M ~+ A
& f. z& l& i7 k2 F+ Q. j# #外网规划7 S: f* n/ I9 Q
# 192.168.0.51 ceph1" l' l" x: Y' o m% W
7 m) Y5 }& ?* G g9 p) \#内网规划,写入hosts, ]/ e2 ~& l# V' x: Q$ Y9 f: [# r
echo '#ceph: n/ }2 W! u% J b% i
192.168.1.101 ceph1+ l8 v' Z. q% b: ]5 r: A
192.168.1.102 ceph2
2 f1 H: T( B' r7 V' Q- m6 W192.168.1.103 ceph3; J4 A3 X) B1 s- K) I! }" s4 d- U
192.168.1.104 ceph4
% W( `; o, |- _* Y0 a- ^. `'>>/etc/hosts
: I8 e) G d5 [. G' I9 p& X1 ^6 g$ }$ D+ T8 F( U
#配置hostname、固定ip; i8 {3 ^0 j+ t3 |. [, r7 {
Nu=1
) y' t6 p0 J3 _3 m& h) Dhostnamectl set-hostname ceph$Nu6 a4 C- S; e# _) u
NetName=em1 #网卡名称
3 q5 s$ a7 v1 F9 g* Drm -f /etc/sysconfig/network-scripts/ifcfg-$NetName
W) o( s0 `. h+ K( `6 Y+ K6 anmcli con add con-name $NetName ifname $NetName autoconnect yes type ethernet ip4 192.168.1.10$Nu/24 \
6 `( z- G0 \2 i6 W ipv4.dns "8.8.8.8" #ipv4.gateway "192.168.1.1"
. H5 L( E- L" N. o. ?+ u, V3 bnmcli connection reload #重新加载网络
7 p/ J0 _. b0 n: T% z* {- i. M! W* A3 j. S: a) [' c; h+ P
3 h8 G1 B& L6 X4 E! |0 k
#磁盘(添加2快磁盘)/ M$ W- Y5 z: \( O
# [root@ceph01 ~]# lsblk
& H" i0 j, q, D) M% G* K ^8 ]. C# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT t" `) ~. h/ d5 h+ |$ Z" g
, Q& m0 ~" J( I! g9 M" O6 j7 p# sdb 8:16 0 100G 0 disk $ B# X# N) }3 a$ E i
# sdc 8:32 0 100G 0 disk
9 ~/ x3 B/ l0 W K: i! |1 |. W& R0 u) ^
###########################/ l; X5 o2 M$ `) c& c9 Q
复制代码 @# F$ e2 S( y. ?
复制代码, ~( O3 L7 f5 J* u u
#ceph安装配置. A& W7 u U/ `0 ?7 R
###########################
. s4 n! v( z! L1 M& X# E#全部在ceph1操作
1 U& |4 @; u7 {
, ^/ ]! h g4 e" ^$ R; a3 ~# #Ceph节点简介
1 ], F9 g# j! Y6 }4 C# Mon(Montior)监控节点, c9 { |1 e6 R$ `+ K% g3 n( g
# OSD(Object Storage Device)存储节点8 e; z. o# s; P: u0 {6 Z
# MDS(Meta Data Server),Ceph作文件系统用到,本实例不配置
4 G7 Z& p, q: n4 G/ K4 ^ T8 T
3 ?2 g& f0 {7 I3 U& T! u#ceph01作为部署节点
6 _% Q! O0 ]1 m& a: v; ~4 {#ceph1 ceph2 ceph3作为Mon& F- n( Q0 s* o4 v" ^+ i
#ceph2 ceph3 ceph4作为OSD9 ^; ~- R, }, R: n3 J
) w* B% K/ _. O& h. w i#ssh免密验证% X4 e, }1 l1 m& v# D H
所有节点执行:
+ d+ J3 a! S* ]6 F9 zyum install -y sshpass( }0 s# b. ?* O; y
rm -rf ~/.ssh x9 K- M3 @3 W3 Z7 N% L; p
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa ]8 @. R, z( \; G% H
sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa -p 22 root@ceph1
5 C: C9 B3 M( G; m/ K# m- i8 Psshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa -p 22 root@ceph2. H; r0 H" N" [: N3 q5 c
sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa -p 22 root@ceph3; O& g7 \. u* i8 h( E6 w+ p
sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa -p 22 root@ceph4
; F) I: m* l4 F5 a#以下在 ceph1节点执行8 C) x0 k& v+ u' m
#ceph1 安装ceph-deploy配置工具 A$ T& F) A8 D, R T
yum install -y ceph-deploy
: {$ L% r) P4 R% f. V6 U+ r# n! H( P7 c
#创建配置目录
$ a X O* e* A2 W& Y8 S$ X: Z5 Jmkdir /etc/ceph9 U" O/ ?: E6 D/ g# E, P: A
cd /etc/ceph/
0 `& p, B1 j- c) l
5 }, E" c3 F7 Q#初始化Mon配置
* ^: J! J5 c+ J3 wceph-deploy new ceph{1,2,3}
% Q- b3 [' b c) E#ceph-deploy new --cluster-network 192.168.1.0/24 --public-network 192.168.0.0/24 ceph{1,2,3}
6 X3 G {3 g+ k0 O7 h, i# a# t- R8 @! }. p, C9 S
# #修改冗余份数为2,日志大小2G, @3 \* A: g3 Y/ K3 p/ H3 ]
# #配置网络,单网卡忽略
- ~5 g7 @/ {, O1 R/ Yecho '+ n1 ], k N, U8 d, T/ g
public network = 192.168.0.0/24
+ v; f! n' x: V9 Ucluster network = 192.168.1.0/243 p' x, }/ v/ Q5 a8 a# r
g8 O6 X5 W, l
mon_clock_drift_allowed = 2 2 u; M# c3 m+ o Z7 s' T
osd_journal_size = 4086
) a2 k0 F* D% L4 P/ \6 oosd_pool_default_pg_num = 128
! R) w, B2 n/ x% josd_pool_default_pgp_num = 128% l8 t+ b8 g3 s" @
osd pool default size = 2) ~2 p0 r: p4 b: t' R/ M6 s7 x
osd pool default min size = 1
" L" {$ k2 d7 K/ F% W! v5 krbd_default_features = 1$ b( l/ Y# O, W: f, s8 J( P, G: G
client_quota = true2 m* R# c, H9 H$ t Y/ w
'>>./ceph.conf
5 @% A& d, U* b! e, _; [, y" O7 Z; w, _/ c K2 ?, _
#安装Ceph
4 U9 A% J% o1 c4 [ceph-deploy install ceph1 ceph2 ceph3 ceph4) Z, V5 N0 j4 A8 X" W: d0 P, R- _
#yum install -y ceph ceph-radosgw #实际上是安装这2个rpm" L0 G3 G# m; h; i% }! j6 m# c
9 u0 W- y/ H$ w/ N0 w: C2 t" E' _9 [#初始化monitor和key
( U: c9 `( f' K2 R1 H6 B& y/ `$ Y* n, pcd /etc/ceph/- ~" P( r" H: s& a; x
ceph-deploy --overwrite-conf mon create-initial
% L; v; t/ u! ~! ?) _5 W
( L5 E* [& p5 x* W& O9 n8 {* l; Q" v, G#创建存储节点(使用sdb,sdc磁盘)
7 K7 S, o7 [* X0 p0 I9 |#lsblk #查看磁盘
$ Y0 o U" ~+ h" p- X7 J
7 u* T9 R* ~6 u3 M i#创建osd
0 i3 D t/ T& `6 \$ y: g9 g8 _ceph-deploy osd create --data /dev/sdb ceph2
- u# |( G: V$ g' Dceph-deploy osd create --data /dev/sdb ceph3
9 s5 _/ _* F' z" Bceph-deploy osd create --data /dev/sdb ceph4
8 q# K5 b2 P+ U3 L7 r* w3 \ceph-deploy osd create --data /dev/sdc ceph2% H1 x. p I: }" T2 [. q3 \
ceph-deploy osd create --data /dev/sdc ceph3+ B2 q) C6 e6 R, Z$ B( ]5 B% Q
ceph-deploy osd create --data /dev/sdc ceph4
3 r( O/ L; W4 J3 J. |
1 B, g0 e0 {3 N2 v, [#拷贝配置及密钥7 X7 |) |7 G2 O' u( ^
ceph-deploy admin ceph1 ceph2 ceph3 ceph4
$ _5 o& h9 N2 N% M$ M7 c) J0 [& {chmod 644 /etc/ceph/ceph.client.admin.keyring0 l- J$ O( p. B& J
5 c) E" ^' m0 z) y
#创建mon7 U- p- n& a) ]; `6 h
ceph-deploy --overwrite-conf mon create ceph1
( q, G+ A1 \! Z) hceph-deploy --overwrite-conf admin ceph1- S* M# o, k0 m! `+ J
ceph-deploy --overwrite-conf mon create ceph2
3 J1 {- U- G9 u3 a( B- a+ Pceph-deploy --overwrite-conf admin ceph2
) q% D8 J. H8 @) ~2 Y( j) \ceph-deploy --overwrite-conf mon create ceph3/ F* r$ [5 l. N# ?- G
ceph-deploy --overwrite-conf admin ceph3
( n" \, P* F' n5 D7 ~9 V' N/ L# s: _! P2 X) _% [
#添加mgr2 t3 m" Q w5 k& g; O9 g
#ceph 12开始,monitor必须添加mgr
% t i$ a Q' Q& ]/ Vceph-deploy mgr create ceph{1,2,3}:mon_mgr
; r3 X U6 n7 n7 h* f% w8 I#ceph-deploy mgr create ceph1:mon_mgr ceph2:mon_mgr ceph3:mon_mgr# q7 q V( c7 V9 K
8 M+ L7 z& ?0 ?& i& }. T, U1 x) ]#启用dashboard (在mon节点)8 u/ { j& D* s( I8 p( ]2 g. I+ ^
ceph mgr module enable dashboard
( _ R& N4 m* ~3 Z! x#http://ip:7000 访问dashboard. V' H- ?5 p, O3 L F, j
netstat -antp|grep 7000
6 T2 \& G4 f4 S1 Y4 x# b2 r% S# ?% A) T6 Y
# 设置dashboard的ip和端口
, {; O/ ^$ R1 i x* Y. H: w& ]# ceph config-key put mgr/dashboard/server_addr 192.168.0.196 #vip地址
1 X) r4 g1 l6 j+ T0 T8 i# ceph config-key put mgr/dashboard/server_port 7000' \% N, v8 |: y
# systemctl restart ceph-mgr@ceph16 a1 g0 W) b6 a5 E% ?8 ~, S
7 G! {# C3 J, V6 u6 v$ P3 t! _
###########################
4 E5 v$ v7 d4 b |, ~# F#查看相关命令 C) e# |/ z) F) M0 ?: r
ceph health
6 N9 D! K( q5 Jceph -s
0 L8 N( R3 E; F1 Pceph osd tree3 `% V) l! r# X0 w l/ R+ V
4 D4 \' w% T" X% kceph df
- e% x- w6 [ y2 rceph mon stat
: d/ b2 X5 I( U; ~3 |ceph osd stat
9 `( o& h6 `/ ]2 g( oceph pg stat
( r; r* X ?. l) l0 F k/ w7 `, \8 o
ceph osd lspools
* c* L" ]# g# gceph auth list
7 U6 u' f* P y3 a" [3 E- N* ?
/ n; P& p& [$ p9 L###########################; j' p% y5 A: B8 V' W$ U0 S
#参考
}/ A2 S; N+ J( w. e# d4 ~ shttps://segmentfault.com/a/1190000011581513& b9 D5 F; R5 q: k4 f
http://blog.csdn.net/wylfengyujiancheng/article/details/78461801, q5 Y# U( M0 z7 L+ P6 L
0 `1 D" b% ?6 Y9 z; G) Z" S7 `. fhttps://segmentfault.com/a/1190000011589519- [) e, P3 p$ t. H
https://www.cnblogs.com/netmouser/p/6876846.html+ [6 f6 k. I# {- C, Z/ {6 n; x) P5 h' }
, E1 [ f0 r7 b% X' W
#中文 文档
; B5 {7 D8 n9 ?3 p, ^3 lhttp://docs.ceph.org.cn/man/8/ceph-deploy/- E: A$ j! O$ Z! |3 d) e- H/ q1 q
& X {7 C, C2 B2 Z' r
#ceph工作原理和安装9 z+ X% n& M, c! O' a5 p
http://www.jianshu.com/p/25163032f57f
* @4 W, ^& J' l8 s. E2 O" Z5 J" C+ b
#简单ceph性能测试
3 r5 f9 ^9 p" s7 c8 m: R+ z$ X+ F( y! d0 O, h9 P5 q i# q2 b
#创建测试池mytest9 Y7 V6 N+ x' B& p$ S" F3 F
ceph osd pool create mytest 128! S- L: Z- x' B, W6 `; s
rados lspools
0 i1 V- x! B2 n) L/ L3 O# ceph osd pool set mytest size 2 #副本为25 E8 @+ V0 u* k: R: m, h/ e
# ceph osd pool delete mytest #删除: |- T( b1 I! r% N- n! O0 q/ U
3 P1 D: r5 o- L4 S+ E9 E9 ^+ t" x+ r: p% C
#Rados性能测试(关注 bandwidth带宽,latency延迟)( W! ]+ B; h) i( U
rados bench -p mytest 10 write --no-cleanup #写测试10秒
$ z H0 @; Y% Jrados bench -p mytest 10 seq #顺序读
8 [7 A+ q6 R/ o; x4 ]8 Y. O8 z& crados bench -p mytest 10 rand #随机读
7 \9 A0 R: B, k; H+ \, [rados -p mytest cleanup #清理测试数据
. t8 C6 T% ?& Z8 x/ f3 r* `
/ b& @, a" k* ?' h/ Q6 w#rbd块设备测试' a; _. J% }. r. _
rbd create --size 2G mytest/test1 #创建块设备映像test1
! C4 H. k9 k4 k7 }# i/ P0 B: u+ I2 prbd ls mytest$ F, @# Y" q7 E
rbd info mytest/test1
0 r" e' ]9 Q; P9 d+ w. S- _2 \* y0 V4 Z& Y, X
rbd map mytest/test1 #映射块设备
. N+ R* L/ {/ }#/dev/rbd0+ F! c+ _# G, A
#rbd showmapped #查看已映射块设备' b. {3 C9 F/ s& B0 D6 B
#挂载, s2 O8 d- D2 `9 X9 O/ n& u9 Y
mkfs.xfs /dev/rbd02 B- m3 p! ^, ^: H9 B% P. u
mkdir -p /mnt/ceph
0 ?% i7 L/ }9 i, Q$ j5 }4 kmount /dev/rbd0 /mnt/ceph/
+ h6 u! U1 a+ ?4 B; Tdf -h /mnt/ceph7 Z- \! I' J+ q6 C
$ d9 @: f% q' A! G# d) A
#测试1 l K) I. S3 ^8 L2 _6 q% E* N d
rbd bench-write mytest/test1% s5 M" {9 d. o- a: P9 F5 h1 h
#默认参数io 4k,线程数16,总写入1024M, seq顺序写
5 w1 ]* h5 a$ Y1 O% g
/ E) l( d) [/ Z; }- C. X. i9 E! U6 ]3 W3 m4 y
rbd unmap mytest/test1 #取消块设备映射. g6 K. v) n; e8 s( s
rbd rm mytest/test1 #删除块设备映像3 T9 b3 z' v8 F- v
|
|