centos 7.3に基づいてインストールしてjewelバージョンのcephクラスタを展開して実戦訓練を行います。
一、環境準備セットアップcentos 7.3仮想マシンの3台は、公式サイトのソースとディスクのダウンロード速度が非常に遅いので、国内の捜狐鏡像ソースを提供しました。http://mirrors.sohu.com/centos/7.3.1611/isos/x86_64/CentOS-7-x 86_64-DVD-1611.iso は3台の装着された仮想マシンにそれぞれ100 Gのハードディスクを3つずつ追加する。図に示すように、 3.ipの設定
ceph-1
ceph-2
ceph-3
192.168.4.2.2
192.168.4.22.201
192.168.4.22.203
修正は下記の設定ファイルを参照すればいいです。
二、クラスタ構築
1.クラスタ構成は以下の通りである。
ホスト
IP
機能
ceph-1
192.168.4.2.2
deploy、mon*1、osd*3
ceph-2
192.168.4.22.201
mon*1、osd*3
ceph-3
192.168.42.22
mon*1、osd*3
2.環境整理
前の配置が失敗したら、cephクライアントを削除する必要はなく、または仮想マシンを再構築し、
配置ノード(ceph-1)にceph-deployをインストールし、以下の展開ノードはceph-1を指す。
..
[cephudeploy.new][DEBUG]Resoloving host ceph-3
[cephudeploy.new][DEBUG]Monitor ceph-3 at 192.168.57.224
[cephudeploy.new][DEBUG]Monitor initial members are['ceph-1','ceph-2','ceph-3']
[cephudeploy.new][DEBUG]Monitor addrs are['192.168.57.222],'192.168.57.223','192.168.57.224']
[cephudeploy.new][DEBUG]Creating a random mon key…
[cephudeploy.new][DEBUG]Writing monight keyring to ceph.mon.keyring…
[cephudeploy.new][DEBUG]Writing initial config to ceph.com nf…
ディレクトリの内容は以下の通りです。
ceph-1
ceph-2
ceph-3
192.168.4.2.2
192.168.4.22.201
192.168.4.22.203
修正は下記の設定ファイルを参照すればいいです。
[root@localhost ~ ]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.42.200
GATEWAY=192.168.42.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=8.8.4.4
[root@localhost ~ ]# systemctl restart network
4.yumソースを修正すると、公式サイトのyumソースが遅くなるかもしれませんので、aliを追加することができます。[root@localhost ~ ]# yum clean all
[root@localhost ~ ]# curl http://mirrors.aliyun.com/repo/Centos-7.repo >/etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~ ]# curl http://mirrors.aliyun.com/repo/epel-7.repo >/etc/yum.repos.d/epel.repo
[root@localhost ~ ]# sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~ ]# sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
[root@localhost ~ ]# yum makecache
5.ホスト名の変更とソフトウェアのインストール[root@localhost ~ ]#
6.最後の作業は、各ホストのIPをそれぞれの/etc/hostsに追加する。[root@localhost ~ ]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.42.200 ceph-1
192.168.42.201 ceph-2
192.168.42.202 ceph-3
7.サーバ環境を再起動して発効する。二、クラスタ構築
1.クラスタ構成は以下の通りである。
ホスト
IP
機能
ceph-1
192.168.4.2.2
deploy、mon*1、osd*3
ceph-2
192.168.4.22.201
mon*1、osd*3
ceph-3
192.168.42.22
mon*1、osd*3
2.環境整理
前の配置が失敗したら、cephクライアントを削除する必要はなく、または仮想マシンを再構築し、
上で以下の命令を実行するだけで、cephクライアントがインストールされた直後の状態に環境を整理することができます。古いクラスタに構築する前に環境をきれいにすることを強く推奨します。そうでないと各種の異常が発生します。[root@ceph-1 cluster]# ps aux|grep ceph |awk '{print $2}'|xargs kill -9
[root@ceph-1 cluster]# ps aux|grep ceph #
ps -ef|grep ceph
# ceph !!! , 。
umount /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/mon/*
rm -rf /var/lib/ceph/mds/*
rm -rf /var/lib/ceph/bootstrap-mds/*
rm -rf /var/lib/ceph/bootstrap-osd/*
rm -rf /var/lib/ceph/bootstrap-rgw/*
rm -rf /var/lib/ceph/tmp/*
rm -rf /etc/ceph/*
rm -rf /var/run/ceph/*
3.yumソース及びcephのインストール
yum clean all
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
4.cephのソースを追加するvim /etc/yum.repos.d/ceph.repo
:
[ceph]
name=ceph
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
5.cephクライアントをインストールする:yum makecache
yum install ceph ceph-radosgw rdate -y
selinux&firewalld
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
:
yum -y install rdate
rdate -s time-a.nist.gov
echo rdate -s time-a.nist.gov >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
6.展開開始配置ノード(ceph-1)にceph-deployをインストールし、以下の展開ノードはceph-1を指す。
[root@ceph-1 ~]# yum -y install ceph-deploy
[root@ceph-1 ~]# ceph-deploy --version
1.5.34
[root@ceph-1 ~]# ceph -v
ceph version 10.2.2 (45107e21c568dd033c2f0a3107dec8f0b0e58374)
7.部署ノードで部署ディレクトリを作成し、展開を開始する:[root@ceph-1 ~]# cd
[root@ceph-1 ~]# mkdir cluster
[root@ceph-1 ~]# cd cluster/
[root@ceph-1 cluster]# ceph-deploy new ceph-1 ceph-2 ceph-3
これまでssh-copy-indが各ノードにない場合は、パスワードを入力する必要があります。[ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
[ceph_deploy.cli][INFO ] Invoked (1.5.34): /usr/bin/ceph-deploy new ceph-1 ceph-2 ceph-3
[ceph_deploy.cli][INFO ] ceph-deploy options:
[ceph_deploy.cli][INFO ] username : None
[ceph_deploy.cli][INFO ] func :
[ceph_deploy.cli][INFO ] verbose : False
[ceph_deploy.cli][INFO ] overwrite_conf : False
[ceph_deploy.cli][INFO ] quiet : False
[ceph_deploy.cli][INFO ] cd_conf :
[ceph_deploy.cli][INFO ] cluster : ceph
[ceph_deploy.cli][INFO ] ssh_copykey : True
[ceph_deploy.cli][INFO ] mon : ['ceph-1', 'ceph-2', 'ceph-3']
..
..
ceph_deploy.new][WARNIN] could not connect via SSH
[ceph_deploy.new][INFO ] will connect again with password prompt
The authenticity of host 'ceph-2 (192.168.57.223)' can't be established.
ECDSA key fingerprint is ef:e2:3e:38:fa:47:f4:61:b7:4d:d3:24:de:d4:7a:54.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ceph-2,192.168.57.223' (ECDSA) to the list of known hosts.
root
root@ceph-2's password:
[ceph-2][DEBUG ] connected to host: ceph-2
....
[cephudeploy.new][DEBUG]Resoloving host ceph-3
[cephudeploy.new][DEBUG]Monitor ceph-3 at 192.168.57.224
[cephudeploy.new][DEBUG]Monitor initial members are['ceph-1','ceph-2','ceph-3']
[cephudeploy.new][DEBUG]Monitor addrs are['192.168.57.222],'192.168.57.223','192.168.57.224']
[cephudeploy.new][DEBUG]Creating a random mon key…
[cephudeploy.new][DEBUG]Writing monight keyring to ceph.mon.keyring…
[cephudeploy.new][DEBUG]Writing initial config to ceph.com nf…
ディレクトリの内容は以下の通りです。
[root@ceph-1 cluster]# ls
ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
8.自分のIP構成によって、ceph.com nfにpublic_を追加する。networkは、モン間の時差許容範囲を少し拡大しています(デフォルトは0.05 sです。現在は2 sに変更します)。[root@ceph-1 cluster]# echo public_network=192.168.57.0/24 >> ceph.conf
[root@ceph-1 cluster]# echo mon_clock_drift_allowed = 2 >> ceph.conf
[root@ceph-1 cluster]# cat ceph.conf
[global]
fsid = 0248817a-b758-4d6b-a217-11248b098e10
mon_initial_members = ceph-1, ceph-2, ceph-3
mon_host = 192.168.57.222,192.168.57.223,192.168.57.224
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public_network=192.168.57.0/24
mon_clock_drift_allowed = 2
9.モノノイドの展開を開始する:[root@ceph-1 cluster]# ceph-deploy mon create-initial
..
.. log
[root@ceph-1 cluster]# ls
ceph.bootstrap-mds.keyring ceph.bootstrap-rgw.keyring ceph.conf ceph.mon.keyring
ceph.bootstrap-osd.keyring ceph.client.admin.keyring ceph-deploy-ceph.log
10.クラスタ状態を確認する:[root@ceph-1 cluster]# ceph -s
cluster 0248817a-b758-4d6b-a217-11248b098e10
health HEALTH_ERR
no osds
Monitor clock skew detected
monmap e1: 3 mons at {ceph-1=192.168.57.222:6789/0,ceph-2=192.168.57.223:6789/0,ceph-3=192.168.57.224:6789/0}
election epoch 6, quorum 0,1,2 ceph-1,ceph-2,ceph-3
osdmap e1: 0 osds: 0 up, 0 in
flags sortbitwise
pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
0 kB used, 0 kB / 0 kB avail
64 creating
11.OSDの展開開始:ceph-deploy --overwrite-conf osd prepare ceph-1:/dev/sdb ceph-1:/dev/sdc ceph-1:/dev/sdd ceph-2:/dev/sdb ceph-2:/dev/sdc ceph-2:/dev/sdd ceph-3:/dev/sdb ceph-3:/dev/sdc ceph-3:/dev/sdd --zap-disk
ceph-deploy --overwrite-conf osd activate ceph-1:/dev/sdb1 ceph-1:/dev/sdc1 ceph-1:/dev/sdd1 ceph-2:/dev/sdb1 ceph-2:/dev/sdc1 ceph-2:/dev/sdd1 ceph-3:/dev/sdb1 ceph-3:/dev/sdc1 ceph-3:/dev/sdd1
私は配置時に小さい問題を出しました。OSDが成功しなかった(すべてのOSDの配備が終わったら、問題OSDを再配置すれば解決できます)があります。もし予期しないなら、クラスタ状態は以下のようになるべきです。[root@ceph-1 cluster]# ceph -s
cluster 0248817a-b758-4d6b-a217-11248b098e10
health HEALTH_WARN
too few PGs per OSD (21
12. WARN, rbd PG :
[root@ceph-1 cluster]# ceph osd pool set rbd pg_num 128
set pool 0 pg_num to 128
[root@ceph-1 cluster]# ceph osd pool set rbd pgp_num 128
set pool 0 pgp_num to 128
[root@ceph-1 cluster]# ceph -s
cluster 0248817a-b758-4d6b-a217-11248b098e10
health HEALTH_ERR
19 pgs are stuck inactive for more than 300 seconds
12 pgs peering
19 pgs stuck inactive
monmap e1: 3 mons at {ceph-1=192.168.57.222:6789/0,ceph-2=192.168.57.223:6789/0,ceph-3=192.168.57.224:6789/0}
election epoch 22, quorum 0,1,2 ceph-1,ceph-2,ceph-3
osdmap e49: 9 osds: 9 up, 9 in
flags sortbitwise
pgmap v96: 128 pgs, 1 pools, 0 bytes data, 0 objects
308 MB used, 18377 GB / 18378 GB avail
103 active+clean
12 peering
9 creating
4 activating
[root@ceph-1 cluster]# ceph -s
cluster 0248817a-b758-4d6b-a217-11248b098e10
health HEALTH_OK
monmap e1: 3 mons at {ceph-1=192.168.57.222:6789/0,ceph-2=192.168.57.223:6789/0,ceph-3=192.168.57.224:6789/0}
election epoch 22, quorum 0,1,2 ceph-1,ceph-2,ceph-3
osdmap e49: 9 osds: 9 up, 9 in
flags sortbitwise
pgmap v99: 128 pgs, 1 pools, 0 bytes data, 0 objects
310 MB used, 18377 GB / 18378 GB avail
128 active+clean
これでクラスタ が しました。
13.config
あるノードの/etc/ceph/ceph.com nfファイルを する ではなく、ノードを する(ここではceph-1:/root/cluster/ceph.com f)ディレクトリの で してください。ノードが になる 、 つ つ することができないので、 り が くて です。
が したら、 のコマンドを して、confファイルを ノードに します。[root@ceph-1 cluster]# ceph-deploy --overwrite-conf config push ceph-1 ceph-2 ceph-3
この 、 ノードのMonitorサービスを し、 のセクションを してください。
14.mon&osd #monitor start/stop/restart
#ceph-1 monitor 。
systemctl start [email protected]
systemctl restart [email protected]
systemctl stop [email protected]
#OSD start/stop/restart
#0 OSD id, `ceph osd tree`
systemctl start/stop/restart [email protected]
[root@ceph-1 cluster]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 17.94685 root default
-2 5.98228 host ceph-1
0 1.99409 osd.0 up 1.00000 1.00000
1 1.99409 osd.1 up 1.00000 1.00000
8 1.99409 osd.2 up 1.00000 1.00000
-3 5.98228 host ceph-2
2 1.99409 osd.3 up 1.00000 1.00000
3 1.99409 osd.4 up 1.00000 1.00000
4 1.99409 osd.5 up 1.00000 1.00000
-4 5.98228 host ceph-3
5 1.99409 osd.6 up 1.00000 1.00000
6 1.99409 osd.7 up 1.00000 1.00000
7 1.99409 osd.8 up 1.00000 1.00000