環境準備
3台のノード(各50GB追加ディスク搭載)を用意します。
| ホスト名 | IPアドレス |
|---|---|
| ceph1 | 192.168.80.11 |
| ceph2 | 192.168.80.22 |
| ceph3 | 192.168.80.33 |
全ノード共通設定
# リポジトリを阿里雲に切り替え
sed -i.bak \
-e 's|^mirrorlist=|#mirrorlist=|' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|' \
/etc/yum.repos.d/rocky*.repo
# 必要なツールをインストール
yum install -y bash-completion vim tree psmisc wget tar net-tools lrzsz
# ホスト名設定と再起動
hostnamectl set-hostname ceph1 # ceph2, ceph3も同様
reboot
# hostsファイルにエントリ追加
echo "192.168.80.11 ceph1" >> /etc/hosts
echo "192.168.80.22 ceph2" >> /etc/hosts
echo "192.168.80.33 ceph3" >> /etc/hosts
# セキュリティ設定無効化
systemctl disable --now firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
時刻同期設定
yum install -y chrony
# chrony.conf を編集: pool ntp.aliyun.com iburst に変更
systemctl enable --now chronyd
chronyc sources
Cephリポジトリ追加
cat > /etc/yum.repos.d/ceph.repo << 'EOF'
[ceph]
name=Ceph Packages for x86_64
baseurl=https://mirrors.aliyun.com/ceph/rpm-squid/el9/x86_64
enabled=1
gpgcheck=0
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-squid/el9/noarch
enabled=1
gpgcheck=0
EOF
yum clean all && yum makecache
PythonとDocker環境構築
yum install -y python3
python3 -V
# Docker依存パッケージ
yum install -y yum-utils device-mapper-persistent-data lvm2
# Docker CEリポジトリ追加
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo
# Dockerインストールと設定
yum install -y docker-ce
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://p3kgr6db.mirror.aliyuncs.com",
"https://docker.m.daocloud.io"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl enable --now docker
クラスタ初期化(ceph1でのみ実行)
yum install -y cephadm
cephadm --docker bootstrap \
--mon-ip 192.168.80.11 \
--initial-dashboard-user admin \
--initial-dashboard-password redhat \
--dashboard-password-noupdate \
--allow-fqdn-hostname
ノード追加と拡張
# SSH鍵配布
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3
# ノード登録
cephadm shell -- ceph orch host add ceph2
cephadm shell -- ceph orch host add ceph3
# EPELリポジトリ設定(全ノード)
dnf config-manager --set-enable crb
dnf install -y epel-release
# EPELミラー変更
sed -i \
-e 's|^metalink=|#metalink=|' \
-e 's|^#baseurl=|baseurl=|' \
-e 's|download\.fedoraproject\.org/pub/epel|mirrors.aliyun.com/epel|g' \
/etc/yum.repos.d/epel*.repo
# ceph-commonインストール
yum install -y ceph-common
# OSD自動配置
cephadm shell -- ceph orch apply osd --all-available-devices
# 管理ラベル付与
cephadm shell -- ceph orch host label add ceph1 _admin
# MON・MGRサービス配置
cephadm shell -- ceph orch apply mon "ceph1 ceph2 ceph3"
cephadm shell -- ceph orch apply mgr --placement "ceph1 ceph2 ceph3"
トラブルシューティング
MONやMGRがunknown状態になる場合の対処法:
# MON再デプロイ
cephadm shell -- ceph orch daemon rm mon.ceph1 --force
cephadm shell -- ceph orch apply mon --placement="ceph1"
# MGR再デプロイ
cephadm shell -- ceph orch daemon rm mgr.ceph1.yshvau --force
cephadm shell -- ceph orch apply mgr --placement="ceph1"
# 時刻ずれエラー対応
systemctl restart chronyd
ceph health detail