クラウド型ストレージサービス「LucidLink」を色々触ってみた【Linuxクライアント編】

はじめに

こんにちは、サイオステクノロジー 小林です。

今回は Linuxクライアントを使用したLucidLinkのストレージサービスのお話しです。
前回の記事(Windowsクライアント編)でLucidLinkサービスのアカウント登録方法とファイル共有領域(Filespace)の作成方法をご紹介しておりますので、こちらの内容は割愛させて頂きます。
もし、作成されていない場合は併せてお読み頂ければと思います。

前提

※今回LucidLinkを使う上で事前に準備したものは以下になります。

  • オブジェクトストレージは前回のWindowsクライアントと同様でAWS S3を準備。バケットは「s3.siostechnology.net」という名称で作成
  • Linuxクライアント端末は、Azure上にCPU:2core/RAM:4GBの仮想マシンを準備し、OSに「CentOS7 update6」を導入
  • ファイル共有領域(Filespace)は、前回のWindowsクライアント編で作成したFilespace(test-space)を使用

Linuxクライアントのインストール

LucidLinkのダウンロードページより、Linux版のクライアントをダウンロードし、対象のクライアント端末にインストールします。

# rpm -ihv lucid-1.17.1901-1.el7.x86_64.rpm

ファイル共有領域にマウント

以下のコマンドより、作成したFliespaceにマウントします。LucidLinkデーモンをバックグラウンドで起動するようにします。

# lucid daemon & sleep 5; lucid link --fs test-space.sios --password <rootpassword> --mount-point /share

起動時に以下のようなログが表示されるので、エラーなく最後に「Activated filespace ‘‘ with username ‘‘」と表示されれば起動完了となります。

[1] 55985
YYYY-MM-DDT05:17:45.853Z | I |  |  Screen log initialized.
YYYY-MM-DDT05:17:45.853Z | I | Application |  Press ctrl-c to exit...
YYYY-MM-DDT05:17:45.854Z | I | Daemon |  Config directory set to /root/.lucid/
YYYY-MM-DDT05:17:45.855Z | I | Config |  Configuration loaded from /root/.lucid/Lucid.json
YYYY-MM-DDT05:17:45.856Z | N | Daemon |  'root' log level set to: info (6)
YYYY-MM-DDT05:17:45.856Z | I |  |  ================================================================================
YYYY-MM-DDT05:17:45.856Z | I |  |  ===                                                                          ===
YYYY-MM-DDT05:17:45.856Z | I |  |  ===                             Process started                              ===
YYYY-MM-DDT05:17:45.856Z | I |  |  ===                                                                          ===
YYYY-MM-DDT05:17:45.856Z | I |  |  ================================================================================
YYYY-MM-DDT05:17:45.856Z | I |  |  PID: 55985, version: 1.17, Build 1901
YYYY-MM-DDT05:17:45.856Z | I |  |  File log initialized to /root/.lucid/Lucid.log
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Operating system: Linux 3.10.0-957.el7.x86_64
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Architecture: x86_64
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Node name: dev-misc9901-b
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Process ID: 55985
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Current directory: /root/
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Config directory: /root/.lucid/
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Log level: info
YYYY-MM-DDT05:17:45.856Z | I | Daemon |  Version: 1.17, Build 1901
YYYY-MM-DDT05:17:45.857Z | I | RestfulService |  RESTful service started. URLs:
YYYY-MM-DDT05:17:45.857Z | I | RestfulService |      https://127.0.0.1:7778
YYYY-MM-DDT05:17:50.873Z | N | Daemon |  Deactivated filespace test-space.sios
YYYY-MM-DDT05:17:50.873Z | I | Daemon |  Root directory set to /root/.lucid/
YYYY-MM-DDT05:17:50.873Z | I | Daemon |  Activating filespace test-space.sios
YYYY-MM-DDT05:17:50.873Z | I | Daemon |  Root path: /root/.lucid/
YYYY-MM-DDT05:17:50.874Z | I | Daemon |  Rendezvous address set to: actor.tcp://discovery.lucidlink.com:443/RendezvousService
YYYY-MM-DDT05:17:52.487Z | I | ServerInfoDiscoverer |  Server name: 0e3401f8e0bc
YYYY-MM-DDT05:17:52.487Z | I | ServerInfoDiscoverer |  Server UUID: f573c73c-042e-4aba-9ac3-fb3fd31d4068
YYYY-MM-DDT05:17:52.487Z | I | ServerInfoDiscoverer |  Server index: 0
YYYY-MM-DDT05:17:52.488Z | I | ServerInfoDiscoverer |  Server version: 1.17.1891
YYYY-MM-DDT05:17:52.488Z | I | ServerInfoDiscoverer |  Server data endpoints:
YYYY-MM-DDT05:17:52.488Z | I | ServerInfoDiscoverer |      172.19.0.5:443
YYYY-MM-DDT05:17:52.488Z | I | ServerInfoDiscoverer |      52.196.68.123:443
YYYY-MM-DDT05:17:52.488Z | I | ServerInfoDiscoverer |  Server REST endpoints:
YYYY-MM-DDT05:17:52.488Z | I | ServerInfoDiscoverer |      0.0.0.0:7777
YYYY-MM-DDT05:17:52.491Z | I | FileSystemClient |  Starting file metadata service...
YYYY-MM-DDT05:17:52.491Z | I | ClientNode |  Node name: dev-misc9901-b
YYYY-MM-DDT05:17:52.491Z | I | ClientNode |  Node UUID: e5cd230c-ec4f-4235-8433-4a88cbea0ec6
YYYY-MM-DDT05:17:52.491Z | I | ClientNode |  Node index: 3
YYYY-MM-DDT05:17:52.491Z | I | ClientNode |  Node version: 1.17.1901
YYYY-MM-DDT05:17:52.492Z | I | ClientNode |  Node data endpoints:
YYYY-MM-DDT05:17:52.492Z | I |  |  Stored sync time is: {0:6189, 1:73865, 3:8}
YYYY-MM-DDT05:17:52.492Z | I |  |  New sync time is: {0:6189, 1:73865, 3:8}
YYYY-MM-DDT05:17:52.492Z | I |  |  Starting up with sync time: {0:6189, 1:73865, 3:8} (initial ingestion: false)
YYYY-MM-DDT05:17:52.598Z | I | FileSystemClient |  Filespace version: 3
YYYY-MM-DDT05:17:52.598Z | I | FileSystemClient |  File metadata service started...
YYYY-MM-DDT05:17:52.598Z | I | FileSystemClient |  Starting filespace...
YYYY-MM-DDT05:17:52.600Z | I | FileSystemClient |  Running with FileSizeLimit=512TiB
YYYY-MM-DDT05:17:52.607Z | N | UserSessionActor |  User root logged in, filespace mode: full encryption).
YYYY-MM-DDT05:17:52.608Z | I | ObjectStoreBuilder |  Building S3 object store actor with parameters: protocol == https; region == ap-northeast-1...
YYYY-MM-DDT05:17:52.610Z | I | FileSystemClient |  Using bucket with name: s3.siostechnology.net
YYYY-MM-DDT05:17:52.613Z | I | CacheStore |  Cache store instance initialized with:
YYYY-MM-DDT05:17:52.613Z | I | CacheStore |  File path:  "/root/.lucid/f573c73c-042e-4aba-9ac3-fb3fd31d4068/cache/store"
YYYY-MM-DDT05:17:52.613Z | I | CacheStore |  Page size:  257KiB
YYYY-MM-DDT05:17:52.613Z | I | CacheStore |  Page count: 20400
YYYY-MM-DDT05:17:52.613Z | I | CacheStore |  Capacity:   5242800KiB
YYYY-MM-DDT05:17:52.615Z | I | Cache |  Cache size set to 5GiB
YYYY-MM-DDT05:17:52.616Z | I | CacheStore |  Cache file opened.
YYYY-MM-DDT05:17:52.617Z | I | Cache |  Enabling cache backend writes. updateDelay=2000ms, rescheduleDelay = 500ms
YYYY-MM-DDT05:17:52.617Z | N | Block Cache |  Cache enabled.
YYYY-MM-DDT05:17:52.617Z | N | PrefetcherManager |  Prefetcher disabled.
YYYY-MM-DDT05:17:52.617Z | N | PrefetcherManager |  Prefetcher enabled.
YYYY-MM-DDT05:17:52.620Z | I | File System |  Filespace running in full encryption mode
YYYY-MM-DDT05:17:52.620Z | I | FileSystemClient |  filespace started.
YYYY-MM-DDT05:17:52.636Z | W | FuseShim |  Installed Fuse version is different than expected! Expected: 2.9.3, installed: 2.9.2
fusermount: failed to unmount /share: No such file or directory
YYYY-MM-DDT05:17:52.644Z | I | fuse |  Mounting the filespace to /share
Linked to filespace test-space.sios.
YYYY-MM-DDT05:17:53.646Z | N | fuse |  Filespace mounted on /share
YYYY-MM-DDT05:17:53.647Z | N | Daemon |  Activated filespace 'test-space.sios' with username 'root'

マウント確認

問題なくデーモンが起動できれば、以下のようにマウントされ、Lucidプロセスが起動していることが確認できます。

# df -h
ファイルシス              サイズ  使用  残り 使用% マウント位置
/dev/mapper/vg00-LogVol01    50G  4.1G   46G    9% /
 ~ 中略 ~
Lucid.bin                   1.0P     0  1.0P    0% /share
# ps -ef | grep Lucid | grep -v grep
root      55985   2684  0 14:17 pts/0    00:00:20 /opt/lucidapp/resources/Lucid.bin daemon

【補足】アンマウントを実施すると、起動したLucidプロセスも同時に停止されます。

[root@dev-misc9901-b QAS ~]# umount /share
YYYY-MM-DDT06:09:32.109Z | I | fuse |  Fuse exited successfully.
YYYY-MM-DDT06:09:32.109Z | I | Application |  Termination request received.
YYYY-MM-DDT06:09:32.109Z | I | Daemon |  Stopping daemon...
YYYY-MM-DDT06:09:32.110Z | I | FileSystemClient |  Stopping filespace.
YYYY-MM-DDT06:09:32.110Z | N | Heartbeat |  Heartbeat stopped explicitly.
YYYY-MM-DDT06:09:32.110Z | W | Heartbeat |  Heartbeat lost.
YYYY-MM-DDT06:09:32.144Z | I | Cache |  Disabling cache backend writes. Waiting for 0 active writes...
YYYY-MM-DDT06:09:32.186Z | I | BlockStore Prefetcher |  Awaiting the completion of 0 fetch IOs
YYYY-MM-DDT06:09:32.198Z | I | CacheStore |  Cache file closed.
YYYY-MM-DDT06:09:32.198Z | W | Block Cache |  Cache disabled.
YYYY-MM-DDT06:09:32.209Z | I |  |  Incoming IOs stopped.
YYYY-MM-DDT06:09:32.209Z | I |  |  Waiting ongoing operations to complete...
YYYY-MM-DDT06:09:32.209Z | I |  |  Ongoing operations completed.
YYYY-MM-DDT06:09:32.335Z | I | FileSystemClient |  Filespace stopped.
YYYY-MM-DDT06:09:32.335Z | I | FileSystemClient |  Stopping file metadata service.
YYYY-MM-DDT06:09:32.389Z | I | FileSystemClient |  File metadata service stopped.
YYYY-MM-DDT06:09:32.507Z | N | Daemon |  Deactivated filespace test-space.sios
YYYY-MM-DDT06:09:32.697Z | I | RestfulService |  RESTful service stopped.
YYYY-MM-DDT06:09:32.698Z | I | Daemon |  Daemon stopped.
YYYY-MM-DDT06:09:32.699Z | I |  |  ================================================================================
YYYY-MM-DDT06:09:32.699Z | I |  |  ===                                                                          ===
YYYY-MM-DDT06:09:32.700Z | I |  |  ===                             Process stopped                              ===
YYYY-MM-DDT06:09:32.700Z | I |  |  ===                                                                          ===
YYYY-MM-DDT06:09:32.700Z | I |  |  ================================================================================

[1]+  終了                  lucid daemon

検証:ファイルコピー時のS3側の挙動

Windowsクライアントと同様にテストファイルをストレージ上に配置して、S3側の挙動を確認したいと思います。
今回は100Mのテストファイルを作成します。

# cd /share
# dd if=/dev/zero of=testfile bs=10M count=10
# ls -lh
-rw-r--r-- 1 root root 100M  7月  8 15:27 testfile

次にS3側の状態を確認します。チャンクファイルが分割して生成されいるのが確認できます。
※クライアントにAWS CLIをインストールして確認しておりますので、AWSのインストールページを参考にインストールしてください。

# aws s3 ls s3://s3.siostechnology.net --recursive --human-readable --summarize
2019-07-08 14:59:21    3.7 KiB f70e1af3-049f-4867-ab2b-9566c0806e0c
 ~ 中略 ~
2019-07-08 14:59:21    3.6 KiB fa970fdd-25b1-48b0-a128-b2d92049a3e0
2019-07-08 14:59:21    5.6 KiB fafe73b8-6507-4be4-a67c-3a513ecbb788
2019-07-08 14:59:21    3.2 KiB fcd336bf-3a72-4432-b31f-40371caa483f
2019-07-08 14:59:21    4.0 KiB fd3d07b2-de27-4412-8077-1f3b6c5a61be
2019-07-08 14:59:21    3.4 KiB fdcb0cfd-5270-40e9-90d9-9d4f2e69ed54
2019-07-08 14:59:21    5.2 KiB fdd6ac5e-c06b-47ec-a566-5338e34fd687
2019-07-08 14:59:21    5.3 KiB fdf867a1-a067-4a85-baba-e335ce560f9d
2019-07-08 14:59:21    6.0 KiB ffc0b834-348b-4636-8b37-e4750a1d737f

Total Objects: 400
   Total Size: 1.6 MiB

最後にテストファイルを削除します。

♯ rm -rf /share/testfile

チャンクファイルが削除されることが確認できます。

# aws s3 ls s3://s3.siostechnology.net --recursive --human-readable --summarize
Total Objects: 0
   Total Size: 0 Bytes

最後に

今回は、Linuxクライアントを使用したLucidLinkのマウントやファイル操作をご紹介させて頂きました。

Linuxクライアントでも外部ストレージとほぼ同じ感覚で使うことができ、さらにLucidLinkはマウントした領域をNFS共有させることも可能なので、NFSストレージとして使用することも可能です。
次回の記事で最終回になりますが、もう少し実践的な使い方を紹介するべく、ユーザアクセス制御等の機能について検証したいと思います。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です