#author("2025-05-04T17:49:17+00:00","default:sysosa","sysosa")
#author("2025-08-11T05:29:49+00:00","default:sysosa","sysosa")
本家様 [[https://ceph.io/>+https://ceph.io/]]
オブジェクトストレージ, ブロックストレージ, ファイルシステムを提供するオープンソースなSoftware-Defined Storage Platform. クラスターファイルシステムです.

&size(10){オブジェクトストレージ:Hadoopやamazon S3なすとレージ, ブロックストレージ: /dev/vda, /dev/vdbとか提供します. ファイルシステム: posix準拠なファイルシステム};
&size(10){開発者たちは今現在IBMにいるそうです};

ここではこのうち Ceph を使ったPOSIX互換ファイルシステム CephFS を取り上げます.  &size(10){POSIXアクセス制御リスト(ACL)のサポートが嬉しい. ネットワーク経由でACLが使えるのはNFSとこれと GlusterFS のみみたい};

Cephにはバージョン名があって下記の通りになってます   &size(10){ubuntuっぽい};
&size(10){[[https://docs.ceph.com/docs/master/releases/general/>+https://docs.ceph.com/docs/master/releases/general/]], [[https://docs.ceph.com/en/latest/releases/>+https://docs.ceph.com/en/latest/releases/]]};
|BGCOLOR(YELLOW):Release name|BGCOLOR(YELLOW):Initial release|BGCOLOR(YELLOW):Latest|BGCOLOR(YELLOW):End of life(24.11.28時点)|BGCOLOR(YELLOW):備考|
|Squid|2024-09-26|19.2.2|2026-09-19(estimated)||
|Reef|2023-08-07|18.2.4|2025-08-01(estimated)|IBM Storage Ceph 7|
|Quincy|2022-04-19|17.2.8|2025-01-13|IBM Storage Ceph 6|
|Pacific|2021-03-31|16.2.31|2024-03-04|IBM Storage Ceph 5&br;SUSE  Enterprise Storage 7.1(Pacific v16.2)|
|BGCOLOR(YELLOW):Release name|BGCOLOR(YELLOW):Initial release|BGCOLOR(YELLOW):Latest|BGCOLOR(YELLOW):End of life(25.8.11時点)|BGCOLOR(YELLOW):備考|
|Squid|2024-09-26|19.2.3|2026-09-19(estimated)||
|Reef|2023-08-07|18.2.7|2025-08-01(estimated)|IBM Storage Ceph 7|
|Quincy|2022-04-19|17.2.9|2025-01-13|IBM Storage Ceph 6|
|Pacific|2021-03-31|16.2.15|2024-03-04|IBM Storage Ceph 5&br;SUSE  Enterprise Storage 7.1(Pacific v16.2)|
|Octopus|2020-03-23|15.2.17|2022-08-09|SUSE  Enterprise Storage 7(Octopus v15.2)|
|Nautilus|2019-03-19|14.2.22|2021-06-30| Red Hat Ceph Storage 4|
|Mimic|2018-06-01|13.2.10|2020-07-22||
|Luminous|2017-08-01|12.2.13|2020-03-01|Red Hat Ceph Storage 3|
&color(red){*};&size(10){毎年メジャーバージョンアップがある};

ここでは「Squid」を導入します. 導入方法は docker/podmnanの上に構築する [[cephadm>Ceph/cephadm]] を使うのが推奨されてますが、ここではOSの上に直に作っていきます.
cephはmonitor, manager, osd, metadata らと機能を提供するために各種に特化した作りこみが必要です.
っで構成はこんな感じで. 
|BGCOLOR(YELLOW):ホスト名|BGCOLOR(YELLOW):役目|BGCOLOR(YELLOW):IPアドレス[public network]|BGCOLOR(YELLOW):cluster network|BGCOLOR(YELLOW):OS|BGCOLOR(YELLOW):ストレージ|BGCOLOR(YELLOW):osd|
|ceph01  |Manager &br;&color(magenta){Monitor}; &br;Metadata Server |192.168.0.47/24|      |Rockylinux9.2|os(16GB) &br; /var/lib/ceph(8GB)             ||
|ceph02  |Manager &br;&color(magenta){Monitor}; &br;Metadata Server |192.168.0.48/24|                  |~|os(16GB) &br; /var/lib/ceph(8GB)              ||
|ceph-osd1 |&color(magenta){Monitor}; &br;  &color(orangered){OSDs};|192.168.0.49/24|  10.10.10.49/24  |~|os(16GB) &br; /var/lib/ceph(8GB)| OSD(50GB:SSD:&color(magenta){meta};)&br;OSD(50GB:HDD:&color(crimson){data};)|
|ceph-osd2 |                                &color(orangered){OSDs};|192.168.0.50/24|  10.10.10.50/24  |~|os(16GB) | OSD(50GB:SSD:&color(magenta){meta};)&br;OSD(50GB:HDD:&color(crimson){data};)+OSD(50GB:HDD:&color(crimson){data};)+OSD(40GB:SSD:&color(orangered){block.db};)+SSD(20GB:SSD:&color(orange){block.wal};)|
|ceph-osd3 |                                &color(orangered){OSDs};|192.168.0.51/24|  10.10.10.51/24  |~|os(16GB) | osd(50GB:SSD:&color(magenta){meta};)&br;OSD(50GB:HDD:&color(crimson){data};)+OSD(50GB:HDD:&color(crimson){data};)+OSD(50GB:HDD:&color(crimson){data};)+OSD(60GB:SSD:&color(orangered){block.db};)|

***構築に必要なリソースとか [#b419cf5c]
[[Ceph/memo]]


***ceph向けリポジトリの登録 [#v02b10b1]
cephはyum/dnfでインストール可能で関係するすべてのノードに下記リポジトリを加えておきます
&size(10){参照 [[https://docs.ceph.com/en/latest/install/get-packages/#rhel>+https://docs.ceph.com/en/latest/install/get-packages/#rhel]]};
#code(nonumber){{
cat << _EOF_  > /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for \$basearch
baseurl=https://download.ceph.com/rpm-squid/el9/\$basearch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-squid/el9/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
_EOF_
}}
&size(10){cephリポジトリの中身詳細 [[Ceph/repository]]};

その後に各役目毎に設定作業を行います

***ceph構築 [#n1c8b8b8]

-Ceph Monitor
まず初めにmonitorノードを作り上げます.
ceph01、ceph02 および ceph-osd1 にmonitor機能を載せます.
[[Ceph Monitor>Ceph/Monitor]]

-Ceph Manager
次にManagerノードを作ります. ここではceph01とceph02にその役目を持たせます
[[Ceph Manager>Ceph/Manager]]

-Ceph OSDs
MonitorとManagerが完成したので次にOSDを用意します
ここではceph-osd1、ceph-osd2、ceph-osd3でOSDを用意してます
[[Ceph OSDs>Ceph/OSD]]

-CephFS Metadata Server
ファイルシステムの作成にはこのmetadata serverが必要です.
[[CephFS Metadata Server>Ceph/MDS]]

-CephFS Client
クライアントからcephにアクセスします
[[CephFS Client>Ceph/Client]]

***nfs [#p274aa78]
cephfsをマウントしたceph clientをexportすれば、それでnfsサーバが用意できるが、ceph側で用意しているnfs moduleでnfsサーバを作ってみる.
cephでは NFS-Ganesha を経由して提供している.
#code(nonumber){{
[root@ceph01 ~]# dnf install centos-release-nfs-ganesha5.noarch
[root@ceph01 ~]# dnf list available --disablerepo=* --enablerepo=centos-nfs-ganesha-5
 :
nfs-ganesha-ceph.x86_64                                            5.9-1.el9s                                        centos-nfs-ganesha-5
 :
[root@ceph01 ~]# dnf install libcephfs2   nfs-ganesha   nfs-ganesha-ceph 
}}
既設のnfsサービスを停止します
#code(nonumber){{
[root@ceph01 ~]# systemctl stop nfs-server.service
[root@ceph01 ~]# systemctl disable nfs-server.service

(nfsなのでrpcbindは動かします)
[root@ceph01 ~]# systemctl enable rpcbind --now
}}

設定ファイルは「/etc/ganesha/ganesha.conf」でceph向けのsampleが「/etc/ganesha/ceph.conf」なので上書きとかで差し替えます
#code(nonumber){{
[root@ceph01 ~]# mv /etc/ganesha/ganesha.conf /etc/ganesha/ganesha.conf.orig
[root@ceph01 ~]# cp /etc/ganesha/ceph.conf /etc/ganesha/ganesha.conf
[root@ceph01 ~]# vi /etc/ganesha/ganesha.conf
NFS_CORE_PARAM
{
        Enable_NLM = false;
        Enable_RQUOTA = false;
        Protocols = 4;
}
NFSv4
{
        #RecoveryBackend = rados_ng;
        Minor_Versions =  1,2;
}
MDCACHE {
        Dir_Chunk = 0;
}
EXPORT
{
        Export_ID=100;
        Protocols = 4;
        Transports = TCP;
        Path = /;
        Pseudo = /emfs;
        Access_Type = RW;
        Attr_Expiration_Time = 0;
        Squash = root_squash;
        SecType = sys;
        FSAL {
                Name = CEPH;
                User_Id = "admin";
                Secret_Access_Key = "「ceph auth get-key client.admin」の値";
                Ceph_Cluster = "ceph";
        }
}
CEPH
{
        Ceph_Conf = /etc/ceph/ceph.conf;
}
[root@ceph01 ~]# mkdir /var/run/ganesha/  /var/run/ganesha
}}
ここで「systemctl restart nfs-ganesha.service」で動く予定なのだが、、動かない。
代わりに「/usr/bin/ganesha.nfsd -F」では動いた. どこの問題は見えないが...
「/var/log/ganesha/ganesha.log」を見るとプログラムがクラッシュしている..

素直にネイティブ接続で繋いだ方がよさげ。しかもネイティブ接続の方がパフォがいいみたい

***smb [#kda87601]
nfs同様、他のノードでcephfsをmountしてsmbを稼働させることが出来るが、ここではceph側でsmbを動かしてみる.
#code(nonumber){{
[root@ceph01 ~]# ceph mgr module enable smb --force
[root@ceph01 ~]# ceph mgr module ls
 :
smb                on
 :
[root@ceph01 ~]# 
}}
どうもorchestratorが必要なようで直置きスタイルでは ceph から smb 制御は無理みたい


***メモ [#u6c38a8c]
「ceph -s」の実行で「&color(red){Module 'restful' has failed dependency: No module named 'pecan'};」と表示されたらCeph Monitorノードに追加で下記パッケージをインストールする.
#code(nonumber){{
[root@ms ~]# pip3 install pecan cherrypy werkzeug
}}


CentOS8 stream
#code(nonumber){{
rpm -Uvh https://download.ceph.com/rpm-octopus/el8/noarch/ceph-release-1-1.el8.noarch.rpm

yum install centos-release-openstack-train -y
yum install epel-release snappy gdisk gperftools-libs -y
yum install leveldb -y
yum install ceph -y
}}


#code(nonumber){{
[root@ceph-mgr ~]# ceph -s
  cluster:
    id:     c2d06c20-9197-40b4-a8c4-1a0604936ce8
    health: HEALTH_WARN
            2 mgr modules have recently crashed
}}
とHEALTH_WARNメッセージがあるなら「ceph crash ls」
#code(nonumber){{
[root@ceph-mgr ~]# ceph crash ls
ID                                                                ENTITY        NEW
2024-01-04T05:51:12.262993Z_71368c30-4c13-4eaf-bdae-c0d66307d784  mgr.ceph-mgr   *
2024-01-04T05:51:14.240766Z_52dbb01e-f34f-46b7-956a-71b2f83a7e7f  mgr.ceph-mgr   *


[root@ceph-mgr ~]# ceph crash rm 2024-01-04T05:51:12.262993Z_71368c30-4c13-4eaf-bdae-c0d66307d784
}}



***参照先 [#n3b86970]
[[https://www.cnblogs.com/netant-cg/p/10696205.html>+https://www.cnblogs.com/netant-cg/p/10696205.html]]
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS