|
|
楼主 |
发表于 2018-8-30 11:19:20
|
显示全部楼层
创建账户ring¶( V7 t& T* g' B) n9 ^
1 q/ ?3 _" f. X帐户服务器使用帐户 ring 来维护一个容器的列表。
. j, H7 Q: }; D: ~, g) y% z# e7 f$ s4 J3 n- D9 G; W5 J U
切换到 ``/etc/swift``目录。
; Y. g/ o$ W$ u! C' y! `3 S5 X" n3 O5 J( t; R8 y
创建基本 account.builder 文件:* C- X k5 _0 M6 Q! T
; s- B4 a# c$ F4 C) h& Z3 G# swift-ring-builder account.builder create 10 3 1
2 k4 X3 P& q% w9 ^% \ 注解
8 o8 b4 `# [! A) M
% ~4 j& O! ?7 g I1 y/ _& C这个命令执行后没有输出。
$ `; z+ ?3 j2 B. |0 ~- T
* b! P% F8 F+ P; Z Y8 l! G添加每个节点到 ring 中:
2 L+ B6 O* K+ K; U& L( J7 E' j. n
# swift-ring-builder account.builder \
( ~( P& ^% D1 A; h" {0 y( w add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6002 \
3 R1 `& C1 O2 V1 \ --device DEVICE_NAME --weight DEVICE_WEIGHT
, L+ @# a" U e. L# e. r将 STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点管理网络的IP地址。将 DEVICE_NAME``替换为同一个存储节点存储设备名称。例如,使用 :ref:`swift-storage` 中的第一个存储节点的 ``/dev/sdb 存储设备,大小为100:1 [3 m) @' Y2 f, {. b0 b8 t" _+ c6 O
: s% f6 U7 N2 \' f( F7 ^, P# swift-ring-builder account.builder add \
* V$ \0 k4 P: X) o) s --region 1 --zone 1 --ip 10.0.0.51 --port 6002 --device sdb --weight 100
( v3 _$ F2 Z. [$ d. R在每个存储节点上面重复执行这个命令。在这个例子的架构中,使用该命令的四个变量:
( ?% S+ O. R% C5 H5 }. ]/ c0 L: s- A! N
# swift-ring-builder account.builder add \
: g! v$ A1 w. N {( H- D8 H --region 1 --zone 1 --ip 10.0.0.51 --port 6002 --device sdb --weight 100
1 l. ~9 P/ C# {Device d0r1z1-10.0.0.51:6002R10.0.0.51:6002/sdb_"" with 100.0 weight got id 0: r$ |+ a: q/ l1 ^
# swift-ring-builder account.builder add \0 V4 t" D7 B3 c( F% e/ B8 R
--region 1 --zone 1 --ip 10.0.0.51 --port 6002 --device sdc --weight 100
" U0 V! D5 d0 p% D7 M4 i/ C3 _Device d1r1z2-10.0.0.51:6002R10.0.0.51:6002/sdc_"" with 100.0 weight got id 1) E- J9 f; U. _$ O+ y u
# swift-ring-builder account.builder add \
4 Y* a) A( }# R --region 1 --zone 2 --ip 10.0.0.52 --port 6002 --device sdb --weight 100# R+ B8 L7 d$ G& a+ |" a
Device d2r1z3-10.0.0.52:6002R10.0.0.52:6002/sdb_"" with 100.0 weight got id 2
3 T. n+ \1 M' Q9 C; j9 C- X! ]# swift-ring-builder account.builder add \4 F' v- a7 T. v/ H
--region 1 --zone 2 --ip 10.0.0.52 --port 6002 --device sdc --weight 100
3 u w- c) G; f9 t. G5 CDevice d3r1z4-10.0.0.52:6002R10.0.0.52:6002/sdc_"" with 100.0 weight got id 3
. C8 S' M; @5 \1 G" @验证 ring 的内容:
1 v, `4 f0 u8 O# m0 U0 _; ?- y3 `1 s5 |- P+ r; q3 W0 {8 }, N
# swift-ring-builder account.builder& r' v0 f% `/ u' c' V) Z
account.builder, build version 4
0 Z8 A1 _/ v$ I2 I7 l# N+ x9 r( G1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion/ d: @! y! m( U
The minimum number of hours before a partition can be reassigned is 1: b+ z. k! n8 A: l( x9 _) v3 V
The overload factor is 0.00% (0.000000)
. q5 s0 N) u4 B& v* rDevices: id region zone ip address port replication ip replication port name weight partitions balance meta
2 Z8 O1 a# m9 O0 |) n+ t 0 1 1 10.0.0.51 6002 10.0.0.51 6002 sdb 100.00 0 -100.00
& L( v% m' ^9 b$ ?8 c0 }" W4 ^+ s 1 1 1 10.0.0.51 6002 10.0.0.51 6002 sdc 100.00 0 -100.00
; s+ ?( I3 \* t. V7 O' W 2 1 2 10.0.0.52 6002 10.0.0.52 6002 sdb 100.00 0 -100.00' V7 m8 G$ ^) w5 [% P
3 1 2 10.0.0.52 6002 10.0.0.52 6002 sdc 100.00 0 -100.00' X# D! h$ o* x, p1 |; {' r
平衡 ring:' |) t# O: q" |6 a" W
7 c+ k- ~9 w! `$ P# f, |$ S; e# swift-ring-builder account.builder rebalance
0 F9 p/ ~) x0 B7 j/ Q+ q$ ZReassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
( L, N4 G% g [! O创建容器ring¶1 M) G5 j, x- r. Q9 ^# A5 }
( _0 _: p0 q- u# m. T容器服务器使用容器环来维护对象的列表。但是,它不跟踪对象的位置。
% H6 U* o1 M- \6 b1 O) ^
6 u- @4 `1 ]* {+ [: \& C- g切换到 ``/etc/swift``目录。& A: D3 J; W* C0 Q( ]& S5 v
. k& Q; P9 u) \0 F, Z创建基本``container.builder``文件:9 u6 r: Q3 y# ^* v4 V
! \5 }, f9 Y. H8 |% i. Y
# swift-ring-builder container.builder create 10 3 1
( Y5 t" V# z# Q- l- G* O 注解
0 [& \6 w- V4 H3 m4 f# C% C- d
7 y2 S, b+ C; O这个命令执行后没有输出。8 B. Q( { |/ _) {6 d J; P
- o) V) l y& x8 Y! D2 R$ ~+ D添加每个节点到 ring 中:/ {7 d& h) @1 X4 }9 p) t
) e% k" X6 C* G0 a6 i+ z) t1 E
# swift-ring-builder container.builder \
# {4 ?' A: ~* n4 ? add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6001 \
, ^& v0 Z4 l' ]4 u, ^, @ --device DEVICE_NAME --weight DEVICE_WEIGHT7 H3 G& k- W" r. {7 ?( K f a" R
将 STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点管理网络的IP地址。将 DEVICE_NAME``替换为同一个存储节点存储设备名称。例如,使用 :ref:`swift-storage` 中的第一个存储节点的 ``/dev/sdb 存储设备,大小为100:
2 e) [+ |9 c2 r, \/ `
# m. D; Q6 b8 L4 Q1 m4 y9 x" C" {# swift-ring-builder container.builder add \6 F+ l7 I9 z6 |& u+ x
--region 1 --zone 1 --ip 10.0.0.51 --port 6001 --device sdb --weight 100& N% @ [' I* X9 ^ c6 R4 ~' `
在每个存储节点上面重复执行这个命令。在这个例子的架构中,使用该命令的四个变量:
* Y5 u8 C0 ~/ O. \% a8 ~% p" G: ], y6 m2 M
# swift-ring-builder container.builder add \
# T! m! L" G7 j( c- ?4 ?' M --region 1 --zone 1 --ip 10.0.0.51 --port 6001 --device sdb --weight 100
) N: m3 {9 c) n* i( LDevice d0r1z1-10.0.0.51:6001R10.0.0.51:6001/sdb_"" with 100.0 weight got id 0' I0 t* B' j' X% n
# swift-ring-builder container.builder add \; Z) Z7 h8 N6 V$ @+ \8 x( P
--region 1 --zone 1 --ip 10.0.0.51 --port 6001 --device sdc --weight 100
8 U$ [8 \# `% w& `- KDevice d1r1z2-10.0.0.51:6001R10.0.0.51:6001/sdc_"" with 100.0 weight got id 1, x- C b! n. k+ ~5 c
# swift-ring-builder container.builder add \
6 h$ \$ A9 N3 y! o ?0 l7 ~ --region 1 --zone 2 --ip 10.0.0.52 --port 6001 --device sdb --weight 1007 d0 m F8 z/ y% D
Device d2r1z3-10.0.0.52:6001R10.0.0.52:6001/sdb_"" with 100.0 weight got id 2: B$ G/ x1 A$ f' z# y
# swift-ring-builder container.builder add \
0 h# S4 V/ H* l% p0 _# { --region 1 --zone 2 --ip 10.0.0.52 --port 6001 --device sdc --weight 100) R4 s; e+ L1 N2 z: @# k
Device d3r1z4-10.0.0.52:6001R10.0.0.52:6001/sdc_"" with 100.0 weight got id 38 ^* n a6 k1 u" d C2 b
验证 ring 的内容:
/ p. F6 U. W5 a C% y
8 F" {5 k: v: j# i5 B# swift-ring-builder container.builder
. ?' ^; {& C. ^( n# jcontainer.builder, build version 4
& d: d, l1 I! n# ^1 @7 x1 X0 Q1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion
- v9 a( L8 N- t# k: T' aThe minimum number of hours before a partition can be reassigned is 1
& R$ j2 c' O( t5 g* C8 @The overload factor is 0.00% (0.000000)% r* Y+ l$ a2 F, T
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
9 \1 N* Z7 M8 M* o9 [% ~ 0 1 1 10.0.0.51 6001 10.0.0.51 6001 sdb 100.00 0 -100.00
7 @8 d2 M; U j, V3 c; w 1 1 1 10.0.0.51 6001 10.0.0.51 6001 sdc 100.00 0 -100.00
" y& J6 C9 D) r5 b+ o 2 1 2 10.0.0.52 6001 10.0.0.52 6001 sdb 100.00 0 -100.00
" T: H9 a, u) |: M5 b* n; |5 K 3 1 2 10.0.0.52 6001 10.0.0.52 6001 sdc 100.00 0 -100.00
+ ~3 F c5 d4 d# n平衡 ring:
: t% H& z8 B2 L0 `' p+ H9 ?: b) G: h$ k
# swift-ring-builder container.builder rebalance
& d9 t- |2 ], wReassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.000 F+ K& M4 W7 f9 i% P
创建对象ring¶
$ C, |) X1 S$ V8 l s4 C% m( k: B8 U" ~
对象服务器使用对象环来维护对象在本地设备上的位置列表。
: b( I; `; a/ D. R4 r0 m" i6 \' q9 t8 U
切换到 ``/etc/swift``目录。
% U' M% X' K* u3 M) c9 t/ x
/ v1 [# u. v! y( F创建基本``object.builder``文件:
& Y# |" J6 C/ [' ~8 V# u I2 H9 W2 |: h: c. V: a: q/ U
# swift-ring-builder object.builder create 10 3 1
, L& p" m/ x2 G8 t1 s 注解+ \, s5 C8 U' ~3 s& G
% c2 \" |" j- h6 t; A* x6 G- [ L
这个命令执行后没有输出。# a6 @9 W) K, I. `* }1 V
; G# `/ b, O6 I2 Y添加每个节点到 ring 中:" T3 o, o, P* P
4 w& ~; Z8 @0 l- s5 x# swift-ring-builder object.builder \
( H% F9 G2 l% z4 \ add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6000 \
! H% A; o W# N. R --device DEVICE_NAME --weight DEVICE_WEIGHT
: |# a& b* V$ L2 @/ v将 STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点管理网络的IP地址。将 DEVICE_NAME``替换为同一个存储节点存储设备名称。例如,使用 :ref:`swift-storage` 中的第一个存储节点的 ``/dev/sdb 存储设备,大小为100:9 d( g- G8 R" c( f
9 @# l0 e: }# @, }, \/ S
# swift-ring-builder object.builder add \ a9 u7 X$ Q8 a8 _ ~6 w3 r% V! Y& ]
--region 1 --zone 1 --ip 10.0.0.51 --port 6000 --device sdb --weight 100
. x: g+ ^6 Q( H ?& V- Z! L在每个存储节点上面重复执行这个命令。在这个例子的架构中,使用该命令的四个变量:
' X5 m" T3 s/ V& Z _9 i, b8 e! s+ z
- X. w- @" z4 H# swift-ring-builder object.builder add \
0 W( S$ A. m5 {" I --region 1 --zone 1 --ip 10.0.0.51 --port 6000 --device sdb --weight 100
/ a3 E: |9 C( j: I5 pDevice d0r1z1-10.0.0.51:6000R10.0.0.51:6000/sdb_"" with 100.0 weight got id 0* G& s! ^. o8 w+ g
# swift-ring-builder object.builder add \2 ?1 D- d c, E8 ]7 k3 p
--region 1 --zone 1 --ip 10.0.0.51 --port 6000 --device sdc --weight 100
' x5 C( r; S3 O& C' zDevice d1r1z2-10.0.0.51:6000R10.0.0.51:6000/sdc_"" with 100.0 weight got id 1 L8 b. ]1 {& y0 {3 b
# swift-ring-builder object.builder add \. ?, _6 J& J7 Z& g( c! I
--region 1 --zone 2 --ip 10.0.0.52 --port 6000 --device sdb --weight 100
& r/ F2 N" q1 B' Z: L$ o* e& O/ c, L% SDevice d2r1z3-10.0.0.52:6000R10.0.0.52:6000/sdb_"" with 100.0 weight got id 2/ Y/ C z2 N' T5 U" W; J+ E' r
# swift-ring-builder object.builder add \* m- j" Y" C) g A* D
--region 1 --zone 2 --ip 10.0.0.52 --port 6000 --device sdc --weight 100
$ [9 R* e; X m& TDevice d3r1z4-10.0.0.52:6000R10.0.0.52:6000/sdc_"" with 100.0 weight got id 3
5 c5 A: {: B7 s' |* U7 S" S% e) B- h验证 ring 的内容:
, j6 J% e; a5 v% x) t2 ?: E9 N! P- Z# L$ v9 n% `
# swift-ring-builder object.builder+ @' Y. X# G# |' N
object.builder, build version 4
) C8 g* ]7 `& u7 A' Q1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion$ d. S: e2 ?9 S# Y
The minimum number of hours before a partition can be reassigned is 1+ X$ w7 K* d2 O8 S
The overload factor is 0.00% (0.000000)
, T+ m- c, G8 y/ K9 bDevices: id region zone ip address port replication ip replication port name weight partitions balance meta6 f! R. i& U. P9 \" B0 b0 ^
0 1 1 10.0.0.51 6000 10.0.0.51 6000 sdb 100.00 0 -100.00
' m/ v7 t. N( o/ w7 G 1 1 1 10.0.0.51 6000 10.0.0.51 6000 sdc 100.00 0 -100.00: c2 _, q/ [# T; q$ \. f
2 1 2 10.0.0.52 6000 10.0.0.52 6000 sdb 100.00 0 -100.00, V; L5 ]' @ j! Q( V
3 1 2 10.0.0.52 6000 10.0.0.52 6000 sdc 100.00 0 -100.00
* [2 z! |, e3 e; A( M: X平衡 ring:
) o3 P$ }6 y. j: x) h. w- Q0 `3 g E$ L; G+ H# @
# swift-ring-builder object.builder rebalance4 g. x. v3 q/ e5 ?
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.009 t6 C7 z; x) ~3 O! H1 k
分发环配置文件¶
4 h; E6 K, {) c) n: w& ^/ u* X) T1 W, W# a; ?
复制``account.ring.gz``,container.ring.gz``和``object.ring.gz 文件到每个存储节点和其他运行了代理服务的额外节点的 /etc/swift 目录。 |
|