本家様 https://ceph.io/
オブジェクトストレージ, ブロックストレージ, ファイルシステムを提供するオープンソースなSoftware-Defined Storage Platform. クラスターファイルシステムです.

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

ここではこのうち Ceph を使ったPOSIX互換ファイルシステム CephFS を取り上げます. POSIXアクセス制御リスト(ACL)のサポートが嬉しい

Cephにはバージョン名があって下記の通りになってます ubuntuっぽい
https://docs.ceph.com/docs/master/releases/general/, https://docs.ceph.com/en/latest/releases/

Release nameInitial releaseLatestEnd of life(24.11.28時点)備考
Squid2024-09-2619.2.12026-09-19(estimated)
Reef2023-08-0718.2.42025-08-01(estimated)IBM Storage Ceph 7
Quincy2022-04-1917.2.82025-01-13IBM Storage Ceph 6
Pacific2021-03-3116.2.312024-03-04IBM Storage Ceph 5
Octopus2020-03-2315.2.172022-08-09
Nautilus2019-03-1914.2.222021-06-30Red Hat Ceph Storage 4
Mimic2018-06-0113.2.102020-07-22
Luminous2017-08-0112.2.132020-03-01Red Hat Ceph Storage 3

*毎年メジャーバージョンアップがある

ここでは「Squid」を導入します. 導入方法は docker/podmnanの上に構築する cephadm を使うのが推奨されてますが、ここではOSの上に直に作っていきます.
cephはmonitor, manager, osd, metadata らと機能を提供するために各種に特化した作りこみが必要です.
っで構成はこんな感じで.

ホスト名役目IPアドレス[public network]cluster networkOSストレージosd
ceph01Manager
Monitor
Metadata Server
192.168.0.47/24Rockylinux9.2os(16GB)
/var/lib/ceph(8GB)
ceph02Manager
Monitor
Metadata Server
192.168.0.48/24os(16GB)
/var/lib/ceph(8GB)
ceph-osd1Monitor
OSDs
192.168.0.49/2410.10.10.49/24os(16GB)
/var/lib/ceph(8GB)
OSD(50GB:SSD:meta)
OSD(50GB:HDD:data)
ceph-osd2OSDs192.168.0.50/2410.10.10.50/24os(16GB)OSD(50GB:SSD:meta)
OSD(50GB:HDD:data)+OSD(50GB:HDD:data)+OSD(40GB:SSD:block.db)+SSD(20GB:SSD:block.wal)
ceph-osd3OSDs192.168.0.51/2410.10.10.51/24os(16GB)osd(50GB:SSD:meta)
OSD(50GB:HDD:data)+OSD(50GB:HDD:data)+OSD(50GB:HDD:data)+OSD(60GB:SSD:block.db)

ceph向けリポジトリの登録

cephはyum/dnfでインストール可能で関係するすべてのノードに下記リポジトリを加えておきます
参照 https://docs.ceph.com/en/latest/install/get-packages/#rhel

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_

cephリポジトリの中身詳細 Ceph/repository

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

ceph構築

nfs

cephfsをマウントしたceph clientをexportすれば、それでnfsサーバが用意できるが、ceph側で用意しているnfs moduleでnfsサーバを作ってみる.
cephでは NFS-Ganesha を経由して提供している.

[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サービスを停止します

[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」なので上書きとかで差し替えます

[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

nfs同様、他のノードでcephfsをmountしてsmbを稼働させることが出来るが、ここではceph側でsmbを動かしてみる.

[root@ceph01 ~]# ceph mgr module enable smb --force
[root@ceph01 ~]# ceph mgr module ls
 :
smb                on
 :
[root@ceph01 ~]#

どうもorchestratorが必要なようで直置きスタイルでは ceph から smb 制御は無理みたい

メモ

「ceph -s」の実行で「Module 'restful' has failed dependency: No module named 'pecan'」と表示されたらCeph Monitorノードに追加で下記パッケージをインストールする.

[root@ms ~]# pip3 install pecan cherrypy werkzeug

CentOS8 stream

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
[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」

[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

参照先

https://www.cnblogs.com/netant-cg/p/10696205.html

最新の60件
2025-04-27 2025-04-26 2025-04-25 2025-04-24 2025-04-17 2025-04-15 2025-04-13 2025-04-02 2025-04-01 2025-03-31 2025-03-29 2025-03-28 2025-03-27 2025-03-26 2025-03-23 2025-03-22 2025-03-20 2025-03-17 2025-03-16 2025-03-15 2025-03-06 2025-03-03 2025-03-01 2025-02-18 2025-02-17 2025-02-14 2025-02-12 2025-02-03 2025-02-02 2025-01-27 2025-01-26 2025-01-25 2025-01-24 2025-01-23

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-04-26 (土) 07:10:15