ぐるっとぐりっど

日曜プログラマがいろいろ試してみたことを、後の自分のためにまとめておく場所

cephを1ノードで構築する

最近作ったkubernetesクラスタのPersistent Volumeを何にするか考えていて、NFSでもいいのだけど、せっかくだからdynamic provisioningを体験するべく、cephを導入してみることにした。

とはいえ、冗長構成にすると、VMだらけになってうっとうしいので、1ノード(All-in-one)で作ってみた。

参考にしたページ

環境

いつものHyper-V上のfedora30のVM。 なんか1ノード構成でもディスク複数用意するっぽいのでそのようにした。ドキュメントみても複数ノード前提で書かれてて、1ノードの場合にディスクが本当に複数必要なのかは調べてない。

導入手順

はじめ、qiitaでRed Hatの中の人の手順でそのままやろうとしたのだけど、 ansible-playbook コマンドがうまく動かなかったので、そうそうにあきらめ。たぶん設定もれなのだろうけど。

で、ceph-deployを使うことにした。

dnfで入らなかった(pythonまわりの依存関係がおかしかった)ので、pipでインストール

# pip install ceph-deploy

あとはドキュメントどおりなのだけど

# mkdir my-cluster
# cd my-cluseter
# ceph-deploy new storage01.mshome.net

これで、 ceph.confが作成されるので、ちょっと編集。以下の行を追加した。

[osd]
osd_pool_default_size = 1
osd_crush_chooseleaf_type = 0

あとは、ceph-deploy installのときに、fedoraの場合、うまく存在するrepositoryをみにいってくれなかったので、直接指定

# ceph-deploy install --repo-url https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm  storage01
# ceph-deploy mon create-initial
# ceph-deploy admin storage01
# ceph-deploy mgr create storage01
# ceph-deploy osd create --data /dev/sdb storage01
# ceph-deploy osd create --data /dev/sdc storage01
# ceph-deploy osd create --data /dev/sdd storage01

確認コマンド実行してみると、ちゃんとできたっぽい。

# ceph health
HEALTH_OK
# ceph -s
  cluster:
    id:     c067a00a-46f7-474f-90f3-5f244b5d695f
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum storage01 (age 7m)
    mgr: storage01(active, since 3m)
    osd: 3 osds: 3 up (since 11s), 3 in (since 11s)
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 375 GiB / 378 GiB avail
    pgs:     

以上