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

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。SBOMを全く知らない人から、開発との統合までを紹介するので様々なレベルの方に学びがあるライブとなる予定です!
https://tech-lab.connpass.com/event/321422/

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!
https://tech-lab.connpass.com/event/319077/

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!
https://tech-lab.connpass.com/event/319532/

はじめに

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

今回は 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ストレージとして使用することも可能です。
次回の記事で最終回になりますが、もう少し実践的な使い方を紹介するべく、ユーザアクセス制御等の機能について検証したいと思います。

アバター画像
About サイオステクノロジーの中の人 4 Articles
サイオステクノロジーで働く中の人です。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる