LoginSignup
1
1

More than 3 years have passed since last update.

Ceph(Octopus)の構築(設定編 共通)

Last updated at Posted at 2021-01-19

はじめに

この記事では、タイトルのとおり現時点(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)

クラスタ構成

15台のノードを3グループに分け構成します。各グループ毎にL2SWを用意し、L3SWで集約しました。詳細は以下のとおりです。
以降、この構成を前提に話を進めていきます。

グループ ホスト名 役割
0 ceph-mon01 mon/mgr/osd
0 ceph-mds01 mds/osd
0 ceph-osd01 mds(※)/osd
0 ceph-osd02 osd
0 ceph-osd03 osd
1 ceph-mon11 mon/mgr/osd
1 ceph-mds11 mds/osd
1 ceph-osd11 mds(※)/osd
1 ceph-osd12 osd
1 ceph-osd13 osd
2 ceph-mon21 mon/mgr/osd
2 ceph-mds21 mds/osd
2 ceph-osd21 mds(※)/osd
2 ceph-osd22 osd
2 ceph-osd23 osd

※ mdsはceph-mdsXXをactiveとし、ceph-osdXXをstandbyとします。

OS準備

OSのインストールについては私が説明するよりも他サイトを参考にされた方がよいと思うのでここでは省略します。今回はCentOS7を利用しました。
cephを動かすためにデスクトップ環境は不要なのでMinimalを使いました。

公式のDownloadから適当なミラーを選んでダウンロードしましょう。
CentOS Project

OS標準機能の設定

時刻同期

chronyを使って時刻同期設定を行います。参照可能なサーバを指定します。
今回は各グループのceph-monXXが既設NTPサーバと同期し、それ以外のノードは各グループのmonノードと同期するようにしました。

vi /etc/chrony.conf

monノードの場合、以下を追加

server [NTPサーバのIP] iburst
allow [他ノードのネットワークセグメント]

monノード以外の場合、以下を追加

server [monノードのIP] iburst

SSH

DNSを使う設定(デフォルト)の場合、名前で接続すると遅いことがあるので無効にします。

vi /etc/ssh/sshd_config

UseDNS no

FW

万が一うまく動かなかったときの原因切り分けがめんどくさいのでFWは止めておきます。

systemctl stop firewalld
systemctl disable firewalld
SELinux

FWと同様の理由で無効化しておきます。

vi /etc/selinux/config

SELINUX=disabled

hostsの編集

ノードとなるホスト名をhostsへ追記します。

vi /etc/hosts

192.168.1.101 ceph-mon01
192.168.1.102 ceph-mds01
192.168.1.103 ceph-osd01
・・・
192.168.1.111 ceph-mon11
・・・
192.168.1.121 ceph-mon21
・・・
192.168.1.125 ceph-osd23

パッケージ更新

とりあえず最新版にアップデートしておきます。

yum -y update

追加機能の設定

dockerの追加

octopusではコンテナソフトが必須なのでdockerをインストールしました。イメージのpullはブートストラップを実行したときとクラスタにノードを追加したときに自動的に実行されます。そのため、ここではパッケージのみ入れておけば大丈夫です。

yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
python3の追加

cephadmに必要だったような気がします。入れておかないと何か大事なコマンドが使えなかったはずです。(ごめんなさい忘れてしまいました。)

yum -y install python36

おわりに

共通して全てのノードに必要な作業は以上です。
OSだけ先にインストールして、TeraTerm等で作業をすると効率的にできます。
hostsについては全ノードに同一のもの(15台記載)を設定する必要があるかどうかは不明です。
もしかしたら必要ないかもしれません。(monノードには恐らく必要だと思います。)

cephの個別設定については次の記事に投稿しようと思います。

1
1
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
1
1