Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADR: 自家用オブジェクトストレージ Tansei プロジェクトを複数フェーズで実施する #4

Open
hfu opened this issue Nov 21, 2022 · 1 comment

Comments

@hfu
Copy link
Member

hfu commented Nov 21, 2022

自家用オブジェクトストレージ Tansei プロジェクトを複数フェーズで実施する

date: 2022-11-21
status: accepted

Context

  • 点群は従来の地理空間情報と比較して1000倍程度大きい。
  • 遅くても非常に安価なストレージを取り扱えるようにすることが必要。
  • 通常、そのようなストレージとしてオブジェクトストレージがある。
  • しかし、行政のカルチャーではクラウドのオブジェクトストレージを使用することにためらいがあることも多い。
  • このため、インハウスオブジェクトストレージを実装することを考える。
  • 具体的には、オープンソース・ソフトウェアである MinIO と Raspberry Pi 4B と USB HDD で経験値を貯める。
  • しかし、MinIO のトポロジーは複数あり、いきなり高度な構成を実現することは現実的ではない。
  • よって、MinIO を用いるプロジェクトを複数フェーズで実施する。

Decision

  • MinIO で自家用オブジェクトストレージを実現し、静岡点群の COPC ファイルをホストさせるプロジェクトを Tansei プロジェクトと名づける。そのためのリポジトリを https://github.com/optgeo/tansei に設ける。
  • 次のフェーズで実施する。
    • Tansei 1号: Single-Node Single-Drive. s3fs を経由して https://optgeo.github.io/tansei で静岡点群の COPC 点群データ 897GB, 12847オブジェクトをホストしている。
    • Tansei 2号: Single-Node Multi-Drive. USB HDDを4つのパーティションに分割して、これを4つのドライブとして認識させる運用をした。Erasure Coding が有効になり、heal 機能を試すことができるようになった。
    • Tansei 3号: Multi-Node Multi-Drive. Tansei 2号と類似構成のセット3台を Multi-Node 運用させた。Erasure Coding を用いた冗長性は入れつつも、シングルドライブではやや得にくい容量についてシングルバケットで取り扱う実験を行うことができた。
  • Tansei 3号あたりからPrometheusを用いたモニタリングも導入することができた。(環境変数をしっかり設定して minio を再起動したら、見事に認識された。)

Consequences

  • MinIO 運用のためのノウハウを少しずつ貯めることができた。
  • MinIO を運用するためには Raspberry Pi よりもかなり強力な計算機が必要であるように思える。実際、https://min.io/product/reference-hardware によれば、8コア、8ドライブ、25GbE、128GB RAMが最小、と言われている。
@hfu hfu changed the title ADR: Tansei プロジェクトを複数フェーズで実施する ADR: 自家用オブジェクトストレージ Tansei プロジェクトを複数フェーズで実施する Nov 21, 2022
@hfu
Copy link
Member Author

hfu commented Nov 22, 2022

経緯のメモ

  • Single-Node Single-Drive (Tansei 1号) ならば 897GiB, 12847 objects に容易にたどり着けた。Tansei 1号をここで止めたのは、単に Tansei 1号に使った USB HDD が 1TB だったためである。
  • Single-Node Multi-Drive (Tansei 2号) を作って改めて静岡点群から COPC ファイルを作り 652GiB, 9378 objects までは到達することができた。この後、Multi-Node Multi-Drive 構成の Tansei 3号にかかったのは、Tansei 2号に使った USB HDD が 2TB であり、冗長構成のために正味のストレージ上限がやはり 1TB であったためである。Tansei 2号の場合、heal もコントロール可能な程度の計算負荷で済ますことができている印象があった。
  • Multi-Node Multi-Drive (Tansei 3号) を試してみて、オブジェクトストレージには豊富な計算資源が必要であることを実感し始めたところである。例えば、heal も6時間以上かかりそうであることが見えてきたところである。データも、1MiB/s 程度のスピードでしか入っていかない。現時点で、400GiB、4917 objects が入っているところであり、Tansei 2号、続いて Tansei 1号の達成容量を超えるためにはもうしばらく時間がかかりそうだ。ただ、現在のようにベンチマーク的にデータをつっこんでいくというフェーズではなくて実運用フェーズであれば、使えなくはないソリューションであるように思える。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant