タスク目標#
- cephadm を使用して ceph クラスターをデプロイする
タスクプラットフォーム#
- 物理デバイス --
- オペレーティングシステム:openEuler 22.03 LTS SP2
デプロイガイド#
タスク 1:設定準備#
- ホスト名の変更
# 10.10.3.117のホスト名をfuture-ceph-node0に変更
hostnamectl set-hostname future-ceph-node0 && bash
# 10.10.3.118のホスト名をfuture-ceph-node1に変更
hostnamectl set-hostname future-ceph-node1 && bash
# 10.10.3.119のホスト名をfuture-ceph-node2に変更
hostnamectl set-hostname future-ceph-node2 && bash
# 10.10.3.120のホスト名をfuture-ceph-node3に変更
hostnamectl set-hostname future-ceph-node3 && bash
- インストール前の設定変更
# ファイアウォールを停止
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state
# selinuxを永久に無効化
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
cat /etc/selinux/config
# hostsの追加
cat >> /etc/hosts << EOF
10.10.3.117 future-ceph-node0
10.10.3.118 future-ceph-node1
10.10.3.119 future-ceph-node2
10.10.3.120 future-ceph-node3
EOF
#確認
cat /etc/hosts
# 時間の同期
yum install ntp -y
systemctl start ntpd
systemctl enable ntpd
yum install chrony -y
systemctl start chronyd
systemctl enable chronyd
# 設定を変更し、内容を追加
echo "
server 10.10.3.70 iburst
allow 10.10.3.0/24
" >> /etc/chrony.conf
timedatectl set-ntp true
systemctl restart chronyd
timedatectl status
date
- SSH の無パスワード通信の追加
ssh-keygen -t rsa
ssh-copy-id 10.10.3.118
ssh-copy-id 10.10.3.119
ssh-copy-id 10.10.3.120
タスク 2:docker のインストール#
- Docker CE の yum リポジトリを設定します。
docker-ce.repo
ファイルを開き、以下の内容をファイルにコピーします:
echo '
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg ' > /etc/yum.repos.d/docker-ce.repo
保存してファイルを終了します。
- Docker CE をインストールします。以下のコマンドを実行して Docker CE をインストールします:
yum -y install docker-ce docker-ce-cli containerd.io
# dockerを起動し、起動時に自動起動するように設定
systemctl start docker
systemctl enable docker
# バージョンを確認
docker -v
docker compose version
- Docker の設定を変更し、ストレージパスを以下のように設定します。
# 設定をdaemon.jsonファイルに書き込む
echo '{
"data-root": "/data/docker"
} ' > /etc/docker/daemon.json
# 確認
cat /etc/docker/daemon.json
systemctl daemon-reload
systemctl restart docker
docker info
タスク 3:cephadm を使用してクラスターを構築#
-
ceph ソフトウェアのインストール#
すべてのホストに ceph ソフトウェアをインストールします。
yum install -y cephadm ceph-common
# バージョンを確認
ceph -v
-
admin ノードの有効化#
10.10.3.117 でクラスターを有効化します。
cephadm bootstrap --mon-ip 10.10.3.117
ダッシュボードにアクセスしてデフォルトのパスワードを変更します。
ダッシュボードのポート番号を取得中...
Ceph Dashboard は次の場所で利用可能です:
URL: https://future-ceph-node0:8443/
ユーザー: admin
パスワード: p4csdavtmr
"admin" ラベルのホストで client.admin キーリングと conf を有効化しています
Ceph CLI にアクセスするには:
sudo /usr/sbin/cephadm shell --fsid 5f344e64-85e4-11ee-9181-0050569a1378 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
-
ノードの追加#
# cephコマンドを有効化
cephadm shell
# cephの無パスワードアクセスを追加
ceph cephadm get-pub-key > ~/ceph.pub
ssh-copy-id -f -i ~/ceph.pub root@future-ceph-node1
ssh-copy-id -f -i ~/ceph.pub root@future-ceph-node2
ssh-copy-id -f -i ~/ceph.pub root@future-ceph-node3
# cephノードを追加
ceph orch host add future-ceph-node1 10.10.3.118
ceph orch host add future-ceph-node2 10.10.3.119
ceph orch host add future-ceph-node3 10.10.3.120
# ノードを確認
ceph orch host ls
# _adminラベルを追加してこのノードがceph関連コマンドを実行できるようにする
ceph orch host label add future-ceph-node1 _admin
ceph orch host label add future-ceph-node2 _admin
ceph orch host label add future-ceph-node3 _admin
# 設定ファイルを他のノードにコピー
scp /etc/ceph/ceph.conf future-ceph-node1:/etc/ceph/
scp /etc/ceph/ceph.conf future-ceph-node2:/etc/ceph/
scp /etc/ceph/ceph.conf future-ceph-node3:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring future-ceph-node1:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring future-ceph-node2:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring future-ceph-node3:/etc/ceph/
-
mon ノード(監視)の設定#
ceph orch apply mon --placement="4 future-ceph-node0 future-ceph-node1 future-ceph-node2 future-ceph-node3"
# monの詳細情報を確認
ceph mon dump
-
mgr ノード(管理)の設定#
ceph orch apply mgr --placement="2 future-ceph-node0 future-ceph-node1 "
# 詳細を確認
ceph orch ls
# ラベルを付ける
ceph orch host label add future-ceph-node0 master
ceph orch host label add future-ceph-node1 master
-
osd(ストレージデータ)の追加#
# マウントするディスクを確認
lsblk
# すべてのノード
ceph orch daemon add osd future-ceph-node0:/dev/sdb
ceph orch daemon add osd future-ceph-node1:/dev/sdb
ceph orch daemon add osd future-ceph-node2:/dev/sdb
ceph orch daemon add osd future-ceph-node3:/dev/sdb
-
mds(メタデータ)の作成#
# cephfsファイルシステムを作成
ceph osd pool create cephfs_data
ceph osd pool create cephfs_metadata
ceph fs new cephfs cephfs_metadata cephfs_data
# mdsコンポーネントを設定
ceph orch apply mds cephfs --placement="4 future-ceph-node0 future-ceph-node1 future-ceph-node2 future-ceph-node3"
# mdsの状態を確認
ceph orch ps --daemon-type mds
-
rgw(オブジェクトゲートウェイ)の設定#
# myorgという名前のrealmを作成
radosgw-admin realm create --rgw-realm=myorg
# defaultという名前のゾーングループを作成(主ゾーングループとして設定)
radosgw-admin zonegroup create --rgw-zonegroup=default --master
# cn-east-1という名前のゾーンを作成(主ゾーンとして設定)
radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=cn-east-1 --master
# realmとゾーンにradosgwを設定
ceph orch apply rgw myorg cn-east-1 --placement="4 future-ceph-node0 future-ceph-node1 future-ceph-node2 future-ceph-node3"
# 検証
ceph orch ps --daemon-type rgw
ceph -s
-
アクセステスト#
# ceph-Dashboard
https://10.10.3.117:8443
# Prometheus
http://10.10.3.117:9095/
# Grafana
https://10.10.3.117:3000/