*Swift/Rings [#l11fa9c0]

Ringは、Swiftで使用するデバイスのリストで、他のサーバのアドレスなどを参照するのに使用します。~
例えばプロクシサーバが、オブジェクトサーバのアドレスを調べるの使用します。

*ファイルの置き場所 [#ya3dedda]

バージョン1.0.2の時点では、サーバの設定上でringファイルの名前や場所などを指定しません。~
swift_dirで設定しているディレクトリ(/etc/swift)に、決められた名前で置かれている前提のようです。~
それぞれ以下の名前のファイルで作成します。

-object.builder
-container.builder
-account.builder

また、それぞれrebalanceコマンドを実行した後、以下のファイルに圧縮されます。

-object.ring.gz
-container.ring.gz
-account.ring.gz

*swift-ring-builderの使い方 [#fd55f5e0]

Ringはファイルとして置かれ、swift-ring-builderコマンドを介して作成・変更が行なえます。

**Ringの作成 [#y9e8d0ea]

作成は以下のように実行します。~

 # swift-ring-builder <builder_file> create <part_power> <replicas> <min_part_hours>

builder_fileは、これから作成するファイルの名前が入ります。~
part_powerはパーティションの数を決めるのに使用され、2のpart_power乗の数のパーティション数になります。~
※パーティションについては調査中です。パーティションの数を超えるデバイスは追加できないようです。

replicasは、ここで指定した数だけデータが冗長化されます。~
例えば3が指定されていた場合は、オブジェクトを保存する際に、3つのデバイスに保存されるようになります。~

min_part_hoursは特定のパーティションを連続して移動させられる時間らしいです。(調査中)
min_part_hoursは特定のパーティションを連続して移動させられる時間らしいです。(調査中)~
少なくともその時間が経過しないと、rebalanceを実行できないようです。

**Ringへのデバイスの追加 [#v8ca2bd6]

作成したbuilder_fileにデバイスを追加します。~
ここでいうデバイスは、objectサーバやcontainerサーバ、accountサーバになります。

 # swift-ring-builder <builder_file> add z<zone>-<ip>:<port>/<device_name>_<meta> <weight>

zoneはゾーンを設定し、数字を入力します。~
ゾーンが同じデバイスでは、冗長化されないようです。~
device_nameは、サーバ上のパスを指定します。~
metaはメタデータですが、省略可能なようです。

**Ringのrebalance [#v49b3aca]

 # swift-ring-builder <builder_file> rebalance

パーティションの再割当てを行ないます。~
主にデバイスの追加や削除を反映させるのに使用します。~
実行後、ringファイルが.gz形式に圧縮されます。~
名前の規則としては file.builder であれば file.ring.gz のようになります。
.builder以外の名前だと、そのまま末尾に.ring.gzがつくようです。

**Ringの内容の表示 [#jdd4d022]

builder_fileだけを指定して実行すると、そのbuilder_fileの情報が表示されます。

 # swift-ring-builder <builder_file>
  test.ring, build version 3
 2 partitions, 1 replicas, 2 zones, 2 devices, 100.00 balance
 The minimum number of hours before a partition can be reassigned is 1
 Devices:    id  zone      ip address  port      name weight partitions   balance meta
              0     1       127.0.0.1  6010      sdb1   1.00          1   50.00
              1     2       127.0.0.1  6020      sdb2   1.00          1   50.00


**ヘルプの表示 [#pdc5aa2a]

引数なしで実行すると、ヘルプが表示されます。

 # swift-ring-builder

*リンク [#y1eb52ea]
-[[The Rings>http://swift.openstack.org/overview_ring.html]]
-[[Deployment Guide>http://swift.openstack.org/deployment_guide.html]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS