LoginSignup
4
4

More than 5 years have passed since last update.

LeoFSを起動して、初期設定をする。

Last updated at Posted at 2014-07-02

前回LeoFSをinstallするところまでやったので、今回は実際に動かしてみる。下記のドキュメントを参考にしながらやってみる。

Getting Started — LeoFS 1.0 documentation

起動

$ cd /usr/local/dev/leofs/package
$ leo_manager_0/bin/leo_manager start
$ leo_manager_1/bin/leo_manager start
$ leo_storage/bin/leo_storage start

起動の確認

$ leo_manager_0/bin/leo_manager ping
pong
$ leo_manager_1/bin/leo_manager ping
pong
$ leo_storage/bin/leo_storage ping
Node 'storage_0@127.0.0.1' not responding to pings.

むむむ。leo_storageがうまく起動できていないっぽい。一応telnetしてみようとしたら、telnet入れてなかったから、いれる。

$ sudo yum -y install telnet
$ telnet 127.0.0.1 10010
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
start
[ERROR] Storage cluster does not start, yet

やっぱり無理かー。仕方ないのでleo_storageの起動コマンドをデバッグモードにしてみる。

$ vi leo_storage/bin/leo_storage

shell scriptは最初の一行目の#!/bin/sh#!/bin/sh -xこうすればデバッグモードになる。もう一度起動。

$ leo_storage/bin/leo_storage start

<中略>

+ mkdir -p /tmp//usr/local/dev/leofs/package/leo_storage/
+ shift
+ /usr/local/dev/leofs/package/leo_storage/erts-5.9.3.1/bin/run_erl -daemon /tmp//usr/local/dev/leofs/package/leo_storage/ /usr/local/dev/leofs/package/leo_storage/log 'exec /usr/local/dev/leofs/package/leo_storage/bin/leo_storage console '
+ exit 0

なんか、この最後のあたりが怪しい?scriptにmkdirがあるとパーミッション関連な気がする。その辺に当たりをつけて、コードを読んでみる。

…いまいちどこが原因かわからない。構成とかパーミッションが原因だったら起動スクリプトを読めばわかるが、怪しいところがないので、内部的な挙動な気がする。内部的な挙動が原因の時は迷わず質問を投げたほうが早い。

質問をしたところleveldbを内部的に使っていて、sigle CPUだとうまく起動しないらしい。これはちょっとわからなかった。virtual boxの設定でcpu数を2にあげてOS再起動。そうしたら上手く起動できた。

$ leo_storage/bin/leo_storage ping
pong

telnetでstartできた。

$ telnet 127.0.0.1 10010
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
start
Generating RING...
Generated RING
OK 100% - storage_0@127.0.0.1
OK
status
[System config]
                System version : 1.0.2
                    Cluster Id : leofs_1
                         DC Id : dc_1
                Total replicas : 1
           # of successes of R : 1
           # of successes of W : 1
           # of successes of D : 1
 # of DC-awareness replicas    : 0
                     ring size : 2^128
             Current ring hash : dd054643
                Prev ring hash : dd054643
[Multi DC replication settings]
         max # of joinable DCs : 2
            # of replicas a DC : 1

[Node(s) state]
-------+--------------------------+--------------+----------------+----------------+----------------------------
 type  |           node           |    state     |  current ring  |   prev ring    |          updated at         
-------+--------------------------+--------------+----------------+----------------+----------------------------
  S    | storage_0@127.0.0.1      | running      | dd054643       | dd054643       | 2014-07-02 13:55:40 +0900

quit
BYE
Connection closed by foreign host.

gatewayとかいうのを起動する。イメージ的にはmanagerがapp、storageがDB、gatewayがwebserverなのかな?
Introduction — LeoFS 1.0 documentation

$ leo_gateway/bin/leo_gateway start
$ leo_gateway/bin/leo_gateway ping
pong

telnetでstatusがどう変わったか確認。

$ telnet 127.0.0.1 10010
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
status
[System config]
                System version : 1.0.2
                    Cluster Id : leofs_1
                         DC Id : dc_1
                Total replicas : 1
           # of successes of R : 1
           # of successes of W : 1
           # of successes of D : 1
 # of DC-awareness replicas    : 0
                     ring size : 2^128
             Current ring hash : dd054643
                Prev ring hash : dd054643
[Multi DC replication settings]
         max # of joinable DCs : 2
            # of replicas a DC : 1

[Node(s) state]
-------+--------------------------+--------------+----------------+----------------+----------------------------
 type  |           node           |    state     |  current ring  |   prev ring    |          updated at         
-------+--------------------------+--------------+----------------+----------------+----------------------------
  S    | storage_0@127.0.0.1      | running      | dd054643       | dd054643       | 2014-07-02 13:55:40 +0900
  G    | gateway_0@127.0.0.1      | running      | dd054643       | dd054643       | 2014-07-02 14:02:02 +0900

nodeにgatewayが増えていることが確認できる。たぶん、この辺を増やしたりできるのが分散ファイルシステムなんだろう。
そのままtelnetでマネージャーコンソールからuserをつくる。

create-user tarr
  access-key-id: b0b13a47973f28e70ee8
  secret-access-key: 7315fb1215c71273bdc721b57b7f2850437ce6ce

get-users
user_id     | role_id | access_key_id          | created_at                
------------+---------+------------------------+---------------------------
_test_leofs | 9       | 05236                  | 2014-07-01 16:46:09 +0900
tarr        | 1       | b0b13a47973f28e70ee8   | 2014-07-02 14:08:21 +0900

これらのkeyをつかってAPI叩いたりしてLeoFS上のファイルを管理するのかな?

ドキュメント上では「これでクライアントを使えるようになったよ」って書いてあるけど、S3とか触ったこと無いので、よくわからん。とりあえずスキップして進めてみる。

なんかbucketというのを追加しなければいけないらしい。ググったところ、S3ではレポジトリ的なものをbucketと呼ぶらしい。file systemなどで使われている汎用的な言葉なのか?よくわからないけど、とにかくファイルを突っ込む場所をbucketと呼ぶと理解。

add-bucket tarr-bucket b0b13a47973f28e70ee8
OK

get-buckets
cluster id   | bucket      | owner  | permissions      | created at                
-------------+-------------+--------+------------------+---------------------------
leofs_1      | tarr-bucket | tarr   | Me(full_control) | 2014-07-02 14:18:14 +0900

これで準備が整ったかな。次は実際にファイルを置いたり消したりしてみる。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4