準備オーケー
4つの仮想マシン、デュアルネットワークカードとデュアルハードディスク、1つのネットワークカードはNATモード、もう1つはホストモードです(クラスターネットワークに従って、クラスター相互通信のみが必要です)
ネットワーク計画
公式Webサイトの最小ハードウェア要件
システム環境の展開(クラスターはすべて同じ方法で展開され、4台のマシンでも同じです)
1.ファイアウォールとselinuxをオフにします(本番環境をオンにする必要があります)
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/=enforcing/=disabled/' /etc/selinux/config
2.ホスト名とホストを構成します
echo 'ceph1' > /etc/hostname
#ceph1-4
vi /etc/hosts
192.168.26.131 ceph1
192.168.26.146 ceph2
192.168.26.147 ceph3
192.168.26.148 ceph4
3.NTP構成
すでにサーバーがある場合は、直接使用できます。サーバーがない場合は、サーバーとして1つを選択し、後の3つで内部ネットワークを同期できます。
クラスターは時間に非常に感銘を受けているため、NTPは複雑な問題を回避するように構成する。
4.パスワードなしのSSH
手動展開は必要ありません、ドキュメントビュー
5.Yumソースとコマンド補完のインストール
vi /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for $basearch
baseurl=https://download.ceph.com/rpm-nautilus/el7/$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-nautilus/el7/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://download.ceph.com/rpm-nautilus/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
#添加官方ceph的nautilus版本源(V14),也可以添加阿里云的修改地址mirrors.aliyun.com,关闭认证即可
yum install epel-release -y && yum -y install bash-completion yum-plugin-priorities
yum makecache
#安装扩展源和命令补全
priority =
2yumがepel拡張ソースを取得しないようにするyum-plugin-prioritiespriorityプラグイン、centos8はインストールできません
6.cephをインストールします
yum install snappy leveldb gdisk python-argparse gperftools-libs
#必要的安装包
yum install ceph -y
[root@ceph1 ~]# ceph -v
ceph version 14.2.12 (2f3caa3b8b3d5c5f2719a1e9d8e7deea5ae1a5c6) nautilus (stable)
#14的最后一个版本,稳定都是选择当前版本的前一个版本
#重启系统(主机名和命令补全都是需要重启才能生效)
7.構成ファイル
vi /etc/ceph/ceph.conf
[global]
fsid = c6c3aaaf-ec5b-4e16-826c-2b3fb41d8de8
#uuidgen生成本地uuid
mon initial members = ceph1,ceph2,ceph3
#法定成员,进行仲裁,都是采取奇数,防止脑裂
mon host = 192.168.26.131,192.168.26.146,192.168.26.147
#mon主机
public network = 192.168.26.0/24
cluster network = 192.168.32.0/24
#ceph网络
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
#ceph认证协议cephx,也就是需要进行认证
osd journal size = 1024
#新建的osd日志大小,为保证操作的事务性,先将操作记录在journal中再应用到文件系统
osd pool default size = 3
osd pool default min size = 2
#副本策略,副本3个,最小2个(满足的情况下)
osd pool default pg num = 256
osd pool default pgp num = 256
#PG的数量需要合理计算得出,[参考](https://blog.csdn.net/yangshihuz/article/details/107827379)
osd crush chooseleaf type = 1
#单台OSD应用副本数,针对crush算法修改,0是单台设置OSD
[mon]
mon clock drift allowed = 0.50
#把时钟偏移设置成0.5s,默认是0.05s,由于ceph集群中存在异构PC,导致时钟偏移总是大于0.05s,设置成0.5s
PG計算
公式計算ツール:https://ceph.com/pgcalc/
クロックオフセットエラー
8.秘密鍵の作成
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
#创建mon守护进程秘钥
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin \
--cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
#创建admin管理员用户及授权访问权限秘钥
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring \
--gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd'
#生成一个引导osd密钥环,生成一个client.bootstrap-osd用户并将用户添加到密钥环中
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
#把生成的秘钥添加到ceph.mon.keyring
9、月の操作
monmaptool --create --add ceph1 192.168.26.131 --fsid 02f5dc88-fe43-44ed-a496-2f2b6cecf0f6 /tmp/monmap
#基于主机名、主机地址、uuid生成monmap,也就是mon的映射信息
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-ceph1
#创建mon的数据目录
chown ceph.ceph /tmp/ceph.mon.keyring
sudo -u ceph ceph-mon --mkfs -i ceph1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
#初始化mon
ll /var/lib/ceph/mon/ceph-ceph1/
total 8
-rw------- 1 ceph ceph 77 Oct 29 16:33 keyring
-rw------- 1 ceph ceph 8 Oct 29 16:33 kv_backend
drwxr-xr-x 2 ceph ceph 112 Oct 29 16:33 store.db
10.月を開始
systemctl start ceph-mon@ceph1
systemctl enable ceph-mon@ceph1
monノードを1つだけ追加するには、構成情報を1つに変更する必要があります。そうしないと、クラスター情報を照会できず、ceph -sコマンドがマスターになるか、OSDノードの実行もマスターになります。
11.新しいmonノードを追加します
#复制ceph1的配置信息到ceph2、ceph3
scp /etc/ceph/ceph.* 192.168.26.146:/etc/ceph/
scp /var/lib/ceph/bootstrap-osd/ceph.keyring 192.168.26.146:/var/lib/ceph/bootstrap-osd/
scp /tmp/ceph.mon.keyring 192.168.26.146:/tmp/ceph.mon.keyring
scp /tmp/monmap 192.168.26.146:/tmp/
chown ceph.ceph /tmp/ceph.mon.keyring
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-ceph2
sudo -u ceph ceph-mon --mkfs -i ceph2 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
#初始化mon,中间如果报错的话,需要先把/var/lib/ceph/mon/ceph-ceph2下文件全部删除
systemctl start ceph-mon@ceph2
systemctl enable ceph-mon@ceph2
#添加ceph3节点只需要把ceph2修改ceph3
12.OSDストレージを追加します
インストール方法
- 補助ツールに基づくインストール:ceph-volume
- 手動インストール
ストレージ形式
- ファイルストア:非推奨
- ブルーストア:推奨
ブルーストアストレージフォーマットに基づく手動インストール(同じ操作osdの複数のノード)
scp /var/lib/ceph/bootstrap-osd/ceph.keyring 192.168.26.146:/var/lib/ceph/bootstrap-osd/
#把ceph1上的osd启动秘钥复制到需要安装osd的节点上
UUID=$(uuidgen)
OSD_SECRET=$(ceph-authtool --gen-print-key)
#取2个变量值,uuid的值和osd的秘钥的值
cp /var/lib/ceph/bootstrap-osd/ceph.keyring /etc/ceph/
#这个不拷贝,下面创建会报错,坑
ID=$(echo "{\"cephx_secret\": \"$OSD_SECRET\"}" | \
ceph osd new $UUID -i - \
-n client.bootstrap-osd -k /var/lib/ceph/bootstrap-osd/ceph.keyring)
#创建osd
mkdir /var/lib/ceph/osd/ceph-$ID
#创建osd的目录
mkfs.xfs /dev/{
DEV}
mount /dev/{
DEV} /var/lib/ceph/osd/ceph-$ID
#准备osd的驱动设备格式化和挂载,永久挂载(/dev/sdb /var/lib/ceph/osd/ceph-0 xfs defaults 0 0)
ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-$ID/keyring \
--name osd.$ID --add-key $OSD_SECRET
#生成osd的密钥文件
ceph-osd -i $ID --mkfs --osd-uuid $UUID
#初始化osd,会遇到报错,再执行一次就行了(或者检查/var/lib/ceph/osd/ceph-0/下文件是否生成)
chown -R ceph:ceph /var/lib/ceph/osd/ceph-$ID
systemctl enable ceph-osd@0
systemctl start ceph-osd@0
#这边启动要执行真实的osdID,不然会导致重启后osd服务起不来(查看id号:echo $ID)
インストール後の問題
1.1台のモニターでmsgr2
が有効になっていないV2バージョンのmonをオンにする必要がある
ceph mon enable-msgr2
#ceph1上执行
2、アクティブなマネージャーなし
Ceph-MGRの現在の主な機能は、クラスターのいくつかのインジケーターを外部に公開することです。つまり、監視することです(cephダッシュボードで使用できます)。
sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-ceph1
#创建mgr的数据目录
ceph auth get-or-create mgr.ceph1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-ceph1/keyring
#创建秘钥和导出keyring文件
systemctl enable mgr@ceph1
systemctl start ceph-mgr@ceph1
#启动
予備的なインストールが完了しました。
月のステータス情報とのリーダーを見る
月CEPH月のstat
CEPH月ダンプ
のステータス情報を表示する
OSDのCEPH OSDツリーを
参照:https://docs.ceph.com/en/latest/install/index_manual/