cephを1ノードで構築する
最近作ったkubernetesのクラスタのPersistent Volumeを何にするか考えていて、NFSでもいいのだけど、せっかくだからdynamic provisioningを体験するべく、cephを導入してみることにした。
とはいえ、冗長構成にすると、VMだらけになってうっとうしいので、1ノード(All-in-one)で作ってみた。
参考にしたページ
- 公式ドキュメント (当然よね
- ceph-ansibleでall-in-oneで導入した記事
- debianでceph-deployで導入した記事
環境
いつもの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:
以上