(1)虛擬網(wǎng)絡(luò)配置
在虛擬機(jī)中配置VM net1為僅主機(jī)模式袖牙,子網(wǎng)IP配置成192.168.200.0網(wǎng)段智政;配置VMnet8為NAT模式允瞧,子網(wǎng)IP配置成192.168.100.0網(wǎng)段经磅。如圖7-3所示名惩。
[if !vml]
[endif]
? 圖7-3 虛擬機(jī)網(wǎng)絡(luò)配置圖
(2)虛擬機(jī)設(shè)置
分別創(chuàng)建3臺相同的虛擬機(jī)澎胡,并將虛擬機(jī)設(shè)備配置成如圖7.4所示。
[if !vml]
[endif]
??? ???????? 圖7-4 虛擬機(jī)設(shè)備配置圖
(3)系統(tǒng)設(shè)置
將CentOS-7-x86_64-DVD-1908操作系統(tǒng)安裝到第1塊大小為20GB的硬盤上娩鹉,為三臺虛擬機(jī)分別配置主機(jī)名:ceph-1攻谁、ceph-2、ceph-3弯予。為三臺虛擬機(jī)分別配置IP地址:192.168.100.101戚宦、192.168.100.102、192.168.100.103锈嫩,子網(wǎng)掩碼為255.255.255.0受楼,默認(rèn)網(wǎng)關(guān)為192.168.100.2垦搬,DNS服務(wù)器為192.168.100.2,使三臺虛擬機(jī)可以訪問Internet艳汽。
2. 基礎(chǔ)環(huán)境配置
(1)主機(jī)文件配置
分別在三臺虛擬機(jī)上配置hosts文件猴贰,此處以ceph-1為例。
[root@ceph-1 ~]# vi /etc/hosts
127.0.0.1?? localhost localhost.localdomain localhost4localhost4.localdomain4
::1???????? localhost localhost.localdomainlocalhost6 localhost6.localdomain6
192.168.100.101 ceph-1
192.168.100.102 ceph-2
192.168.100.103 ceph-3
(2)創(chuàng)建RSA密鑰對
?選定一個節(jié)點作為主控節(jié)點(這里選的ceph-1主機(jī))河狐,建立從主控節(jié)點到其他節(jié)點的免密登錄米绕,將公鑰上傳到ceph-2和ceph-3節(jié)點,主控節(jié)點也可以安裝ceph馋艺。
生成秘鑰:ssh-keygen
[root@ceph-1 ~]# ssh-keygen
Generating public/private rsa keypair.
Enter file in which to save the key
(/root/.ssh/id_rsa): 直接回車
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):直接回車
Enter same passphrase again: 直接回車
Your identification has been savedin /root/.ssh/id_rsa.
Your public key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:b3AY2P2Atl2XecuhfR3GrGVfjD7B/yt5FQyNlJYomvQroot@ceph-1
The key's randomart image is:
+---[RSA 2048]----+
|??????????? o.=?|
|?????? + + . Bo* |
|????? o O + o XO+|
|?????? + E + oO*B|
|??????? S o .oo+*|
|???????? +????.+|
|????????? o??. o|
|???????? .??o ..|
|????????????? o. |
+----[SHA256]-----+
[root@ceph-1 ~]# ssh-copy-idroot@ceph-2
/usr/bin/ssh-copy-id: INFO: Sourceof key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'ceph-2(192.168.100.102)' can't be established.
ECDSA key fingerprint isSHA256:gmUzmidHWka66lieEFZZA50Ty0bX3mgcT0AtJUec0jE.
ECDSA key fingerprint isMD5:f6:d3:6d:5e:6e:8a:c8:53:4b:30:da:e9:2d:b2:62:6f.
Are you sure you want to continueconnecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO:attempting to log in with the new key(s), to filter out any that are alreadyinstalled
/usr/bin/ssh-copy-id: INFO: 1key(s) remain to be installed -- if you are prompted now it is to install thenew keys
root@ceph-2's password: 輸入ceph-2節(jié)點root用戶的密碼
Number of key(s) added: 1
Now try logging into the machine,with:?? "ssh 'root@ceph-2'"
and check to make sure that onlythe key(s) you wanted were added.
[root@ceph-1 ~]# ssh-copy-idroot@ceph-3
/usr/bin/ssh-copy-id: INFO: Sourceof key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'ceph-3(192.168.100.103)' can't be established.
ECDSA key fingerprint isSHA256:kiRGSRYgxBjtduDcZ6kBOSSoO3X/5Ji25jrMjpFEc5M.
ECDSA key fingerprint isMD5:0d:75:f4:22:54:0d:ba:f0:a1:ec:6f:be:c7:23:0b:c4.
Are you sure you want to continueconnecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO:attempting to log in with the new key(s), to filter out any that are alreadyinstalled
/usr/bin/ssh-copy-id: INFO: 1key(s) remain to be installed -- if you are prompted now it is to install thenew keys
root@ceph-3's password: 輸入ceph-3節(jié)點root用戶的密碼
Number of key(s) added: 1
Now try logging into the machine,with:?? "ssh 'root@ceph-3'"
and check to make sure that onlythe key(s) you wanted were added.
(3)禁用防火墻
在三臺虛擬機(jī)上停止并禁用防火墻义郑,此處以ceph-1為例:
[root@ceph-1 ~]# systemctl stopfirewalld
[root@ceph-1 ~]# systemctl disablefirewalld
Removed symlink/etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
(4)配置SElinux服務(wù)
分別在三臺虛擬機(jī)上將SELinux模式設(shè)置為permissive,此處以ceph-1為例丈钙。
臨時禁用:
[root@ceph-1 ~]# setenforce 0
?如果希望永久生效,則修改/etc/selinux/config
This file controls the state ofSELinux on the system.
SELINUX= can take one of thesethree values:
???enforcing - SELinux security policy is enforced.
???permissive - SELinux prints warnings instead of enforcing.
???disabled - No SELinux policy is loaded.
SELINUX=disabled
SELINUXTYPE= can take one of thesetwo values:
???targeted - Targeted processes are protected,
???minimum - Modification of targeted policy. Only selected
processes are protected.
???mls - Multi Level Security protection.
SELINUXTYPE=targeted
(5)配置YUM源文件
分別在三臺虛擬機(jī)上刪除原有軟件源配置文件交汤,以ceph-1為例:
[root@ceph-1 ~]# mkdir /opt/bak
[root@ceph-1 ~]# cd/etc/yum.repos.d/
[root@ceph-1 yum.repos.d]# mv */opt/bak/
將CentOS7-Base-163.repo通過SFTP復(fù)制到/etc/yum.repos.d中:
[root@ceph-1 yum.repos.d]# ls
CentOS7-Base-163.repo
[root@ceph-1 yum.repos.d]# yumclean all
[root@ceph-1 yum.repos.d]# yummakecache
(6)安裝NTP服務(wù)
在ceph-1節(jié)點上安裝NTP服務(wù)器雏赦,編輯配置文件,允許192.168.100.0/24訪問芙扎,啟用并啟動服務(wù)星岗。
[root@ceph-1 yum.repos.d]# yum -yinstall chrony
[root@ceph-1 yum.repos.d]# vi/etc/chrony.conf
添加配置:
allow 192.168.100.0/24
[root@ceph-1 yum.repos.d]#systemctl enable chronyd.service
[root@ceph-1 yum.repos.d]#systemctl restart chronyd.service
(7)同步時間
查看時間同步源
[root@ceph-1 yum.repos.d]# chronycsources -v
210 Number of sources = 4
?.-- Source mode? '^' = server, '='= peer, '#' = local clock.
?/ .- Source state '*' = current synced, '+' =combined , '-' = not combined,
| /?? '?' = unreachable, 'x' = time may be inerror, '~' = time too variable.
||????????????????????????????????????????????????.- xxxx [ yyyy ] +/- zzzz
||????? Reachability register (octal) -.?????????? |?xxxx = adjusted offset,
||????? Log2(Polling interval) --.????? |?????????|? yyyy = measured offset,
||??????????????????????????????? \???? |?????????|? zzzz = estimated error.
||???? ????????????????????????????|??? |??????????\
MS Name/IP address???????? Stratum Poll Reach LastRx Lastsample??????????????
===============================================================================
^- 185.216.231.25??????????????? 2?? 6???63??? 56? -8607us[-8607us] +/-?? 95ms
^- 203.107.6.88????????????????? 2?? 6???17??? 61? ??-17ms[?-17ms] +/-?? 35ms
^- ntp1.flashdance.cx??????????? 2??6??? 17??? 61???-24ms[? -24ms] +/-? 180ms
^* 119.28.206.193??????????????? 2?? 6???17??? 62? -2422us[ +124ms] +/-?? 36ms
S欄標(biāo)記為*的為NTP服務(wù)當(dāng)前使用的NTP服務(wù)器。
(8)配置NTP服務(wù)
主要是用于ceph之間的時間同步戒洼。在所有 Ceph 節(jié)點上安裝 NTP 服務(wù)俏橘,以免因時鐘漂移導(dǎo)致故障。確保在各 Ceph 節(jié)點上啟動了 NTP 服務(wù)圈浇,并且要使用同一個 NTP 服務(wù)器寥掐。此處以ceph-2為例。
在ceph-2和ceph-3節(jié)點上安裝NTP服務(wù)器磷蜀,編輯配置文件召耘,添加NTP服務(wù)器192.168.100.101,啟用并啟動服務(wù)褐隆。
[root@ceph-2 yum.repos.d]# yum -yinstall chrony
[root@ceph-2 yum.repos.d]# vi/etc/chrony.conf
修改配置:
#server 0.centos.pool.ntp.orgiburst
#server 1.centos.pool.ntp.orgiburst
#server 2.centos.pool.ntp.orgiburst
#server 3.centos.pool.ntp.orgiburst
server ceph-1 iburst
[root@ceph-2 yum.repos.d]#systemctl enable chronyd.service
[root@ceph-2 yum.repos.d]# systemctlrestart chronyd.service
(9)檢查其他設(shè)備時間
分別在ceph-2和ceph-3節(jié)點上查看時間同步源污它,此處以ceph-2為例。
[root@ceph-2 yum.repos.d]# chronycsources -v
210 Number of sources = 1
?.-- Source mode? '^' = server, '='= peer, '#' = local clock.
?/ .- Source state '*' = current synced, '+' =combined , '-' = not combined,
| /?? '?' = unreachable, 'x' = time may be inerror, '~' = time too variable.
||?????????????????????????????????????? ??????????.- xxxx [ yyyy ] +/- zzzz
||????? Reachability register (octal) -.?????????? |?xxxx = adjusted offset,
||????? Log2(Polling interval) --.????? |?????????|? yyyy = measured offset,
||??????????????????????????????? \???? |?????????|? zzzz = estimated error.
||????? ???????????????????????????|??? |??????????\
MS Name/IP address???????? Stratum Poll Reach LastRx Lastsample??????????????
===============================================================================
^* ceph-1?????????????????? ?????3??6??? 77??? 62??-238us[-1562us] +/-?? 39ms
已經(jīng)與ceph-1節(jié)點同步
(10)同步Y(jié)UM源文件
分別在三臺虛擬機(jī)上添加ceph軟件源配置文件庶弃,以ceph-1節(jié)點為例衫贬。
[root@ceph-1 yum.repos.d]# viceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
3. 部署ceph集群
(1)安裝ceph-deploy
在ceph-1節(jié)點上安裝ceph-deploy部署工具。
[root@ceph-1 ~]# yum -y install ceph-deploy
(2)安裝python-setuptools
在ceph-1節(jié)點上安裝服務(wù)所需要的依賴包歇攻。
[root@ceph-1 ~]# yum -y installpython-setuptools
(3)配置新節(jié)點
創(chuàng)建集群和monitor固惯,此時會在my-cluster目錄下生成幾個文件,如ceph.conf;ceph.mon.keyring等掉伏。
[root@ceph-1 ~]# mkdir /opt/osd
[root@ceph-1 ~]# cd /opt/osd
[root@ceph-1 osd]# ceph-deploy newceph-1
ceph-deploy的new子命令能夠部署名稱為ceph-1的新集群缝呕,并且它能生成集群配置文件和密鑰文件澳窑。列出當(dāng)前的工作目錄,可以查看到ceph.conf和ceph.mon.keying文件供常。
[root@ceph-1 osd]# ll
total 12
-rw-r--r-- 1 root root? 229 Sep 20 16:20 ceph.conf
-rw-r--r-- 1 root root 2960 Sep 2016:20 ceph.log
-rw------- 1 root root?? 73 Sep 20 16:20 ceph.mon.keyring
(4)在三個節(jié)點上安裝deltarpm
[root@ceph-1 osd]# yum install -ydeltarpm
[root@ceph-2 ~]# yum install -ydeltarpm
[root@ceph-3 ~]# yum install -ydeltarpm
(5)安裝ceph軟件包
在ceph-1上執(zhí)行以下命令摊聋,使用ceph-deploy工具在所有節(jié)點上安裝nautilus二進(jìn)制軟件包。
[root@ceph-1 osd]# ceph-deployinstall --release=nautilus ceph-1 ceph-2 ceph-3
(6)部署初始化
在ceph-1上創(chuàng)建第一個ceph monitor栈暇。
[root@ceph-1 osd]# ceph-deploy mon create-initial
monitor創(chuàng)建成功后麻裁,檢查集群的狀態(tài),運(yùn)行 ceph -s可以看到當(dāng)前集群的狀態(tài)源祈,3個mon煎源,暫時沒有osd,有個pool香缺,pool的pg數(shù)目是64個手销,這個時候ceph集群并不處于健康狀態(tài)。
[root@ceph-1 osd]# ceph -s
???cluster 4d7e1b04-2a4c-45aa-b6fe-a98241db0c2f
????health HEALTH_ERR
??????????? no osds
????monmap e1: 3 mons at {ceph-1=192.168.100.101:6789/0,ceph-2=192.168.100.102:6789/0,ceph-3=192.168.100.103:6789/0}
??????????? election epoch 4, quorum 0,1,2ceph0,ceph1,ceph2
????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
(7)配置admin key
把配置文件和 admin 密鑰拷貝到管理節(jié)點和ceph 節(jié)點图张,配置admin key到每個節(jié)點锋拖。
[root@ceph-1 osd]# ceph-deployadmin ceph-1 ceph-2 ceph-3
(8)創(chuàng)建mgr
創(chuàng)建一個管理器。
[root@ceph-1 osd]# ceph-deploy mgrcreate ceph-1
(9)添加OSD
登陸到Ceph-1節(jié)點祸轮,分別創(chuàng)建osd節(jié)點兽埃。
[root@ceph-1 osd]# ceph-deploy osdcreate --data /dev/sdb ceph-1
[root@ceph-1 osd]# ceph-deploy osdcreate --data /dev/sdb ceph-2
[root@ceph-1 osd]# ceph-deploy osdcreate --data /dev/sdb ceph-3
(10)查看ceph集群狀態(tài)
此時可以看見集群的狀態(tài)是HEALTH_OK狀態(tài)。
[root@ceph-1 osd]# ceph -s
?cluster:
???id:???? 68ecba50-862d-482e-afe2-f95961ec3323
???health: HEALTH_OK
?services:
???mon: 3 daemons, quorum ceph-1,ceph-2,ceph-3 (age 4m)
???mgr: ceph-1(active, since 3m)
???osd: 3 osds: 3 up (since 19s), 3 in (since 19s)
?data:
???pools:?? 0 pools, 0 pgs
???objects: 0 objects, 0 B
???usage:?? 3.0 GiB used, 294 GiB /297 GiB avail
???pgs: