*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]]