##はじめに
この記事では、タイトルのとおり現時点(2021.01)で最新である__ceph(octopus)__の構築を目的としています。
また、自分で構築した手順の備忘録を兼ねているので、細かいところで間違いなどあるかもしれません。
基本的には公式のDOCUMENTATIONが必要なことを全て網羅しているので一読しておくことをお勧めします。
Linuxの知識もある程度必要になるので他サイトや書籍などで事前に基本は押さえておくとよいでしょう。
##関連記事
Ceph(Octopus)の構築(準備編 ハードウェア)
Ceph(Octopus)の構築(準備編 ソフトウェア) この記事
Ceph(Octopus)の構築(設定編 共通)
Ceph(Octopus)の構築(設定編 ブートストラップ)
Ceph(Octopus)の構築(設定編 mon/mgr/osd)
Ceph(Octopus)の構築(設定編 cephFS/mds)
Ceph(Octopus)の構築(設定編 Crush Map)
##ソフトウェア(ceph)
構築するcephのバージョンを確認します。
表題にもあるとおり、今回は__octopus__を使って構築しようと思います。
構築方法が説明されているブログ等はluminousやnautilusに関してのものが多く、octopusについてはあまりありませんでした。
参考までに、現時点(2021.01)での公式サイトの記述は以下のとおりなので、無理にoctopusを使う必要はないのですが、せっかくなので新しいバージョンを試してみることにしました。
##ソフトウェア(OS)
業務用途でよく使われているRHELとほぼ同じであるCentOSを採用しました。
当初Releaseバージョンは8を使うつもりでいたのですが、2020.12頃にOS8が廃止されてStreamへ移行するとの発表があり、まさかのOS7よりEnd-of-lifeが早くなってしまうことが判明したため今回は__CentOS7__を使うことにしました。
今後、cephが公式にCentos Streamへの対応を宣言すればそちらへ移行するのもありかもしれません。
##ソフトウェア(ミドルウェア)
cephクラスタを稼働させるために必要となるソフトウェアはいくつもあります。残念ながら、OSとcephのパッケージのみで動かすことはできません。
詳しくは構築編に記載するつもりなので、ここでは簡単に紹介だけしておきます。
・cephadm
octopusではceph-deployは使えません。その代わりにこのコマンドを使います。
・podmanまたはdocker (今回はdockerを利用)
octopusから必要になった?
cephの役割(機能)は各ノード上でdockerのプロセスとして動きます。
・NTP (今回はchronyを利用)
クラスタを維持するために厳密な同期処理が必要なようです。
時間がずれていると思わぬエラーとなるようです。
・samba
構築したcephのファイルシステムを公開するのに使います。
ブロック/オブジェクトストレージの場合は不要です。
・ceph-common
cephファイルシステムをマウントするのに使います。
mount -t cephでマウントできるようになります。
・ssh
クラスタを構成するノードが多くなると必須だと思います。
・sshpass
シェルスクリプトで作業を自動化する場合は必要です。
##おわりに
今回私が利用したソフトウェアについては以上です。
cephadmを使うあたり、あまり情報がなくて試行錯誤が多かったです。
一応公式のドキュメントに色々書いてあるのですが、日本語が欲しいですね。
cephの構築(共通)については次の記事に投稿しようと思います。