CEPH篇 CEPH部署(在線和離線 Centos 7)


引入

  這篇只記錄部署,如果需要概念理解,則前往其他篇章查看。暫時不包含MDS的部署,因為不准備使用文件系統,所以不需要元數據服務器

  在線部署和離線部署差別只在包的下載,如果在線部署過了,那么資源包可以放入U盤,下次就可以離線部署。

正文

部署准備

關閉防火牆和selinux

systemctl stop firewalld
systemctl disable firewalld

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

修改主機名

各個機器下分別執行如下命令

hostnamectl set-hostname  host145
hostnamectl set-hostname  host146
hostnamectl set-hostname  host147

修改后在每台機器上修改/etc/hosts文件

10.1.12.145  host145
10.1.12.146  host146
10.1.12.147  host147

配置SSH互信

選擇一台部署主機,這邊選擇host146,在root用戶下開啟SSH互信操作

在部署節點上, 使用這個命令ssh-keygen   一路回車 ,生成公鑰。
然后通過命令ssh-copy-id -i  ~/.ssh/id_rsa.pub {hostname} 把公鑰復制到部署需要設計的主機上。
Ssh  hostname測試是否成功。

配置yum(分為在線和離線)

在線
#鏈接阿里雲的配置
rm -rf /etc/yum.repo.d/ *.repo

#CentOS 7 源設置   
 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#epel 倉庫源
wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo

編輯 Ceph.repo源:

[ceph-nautilus] 
name=ceph-nautilus
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0

[ceph-nautilus-noarch]
name=ceph-nautilus-noarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0 
#生成緩存
 yum  clean all, yum makecache
#生成包
yum install ceph-14.2.2-0.el7   ceph-deploy
離線
#安裝 createrepo  rpm包
yum install httpd 
#開啟httpd服務:    
systemctl start httpd
#復制所有的ceph和第三方的rpm包到(包已經提前准備好,如果沒有包則使用在線部署)
10.1.12.146: /var/www/html/ceph/
#執行命令  
createrepo /var/www/html/ceph/  


#在需要安裝的客戶端配置 repo 文件 
/etc/yum.repos.d/ceph.repo 
[ceph_local]
name=ceph
baseurl=http://10.1.12.146/ceph/ 
gpgcheck=0


#將此ceph.repo  復制到每個主機  /etc/yum.repo.d/目錄中。
scp ceph.repo  root@host145:/etc/yum.repos.d/
scp ceph.repo  root@host147:/etc/yum.repos.d/

NTP安裝

#安裝
yum install ntp
#執行 最好在局域網內,建立自己的時間同步源。其中ntpdate 是客戶端命令, 連接時間同步服務器,修改自己的時間。 一定要同步時間,
ntpdate -s time-b.nist.gov  

修改配置文件

#修改 /etc/ntp.conf文件
#注釋下面4行
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

服務器節點修改如下

server 127.127.1.0
fudge  127.127.1.0 stratum 10

驗證下

ntpq –p –-查看ceph-admin的ntp服務器是否為自身
remote           refid      st t when poll reach   delay  offset  jitter
==========================================================================
*LOCAL(0)        .LOCL.          10 l  28   64  377   0.000    0.000   0.000
這樣的輸出證明已經配置成功了。

配置其他節點

#其他服務器都連接admin節點,其中段: server 210.72.145.44   iburst
Server 10.1.12.146 -----------–為ceph-admin的IP
fudge  127.127.1.0 stratum 11

重啟后檢查

systemctl restart ntpd 
systemctl enable ntpd 
#查看是否為ceph-admin
ntpq –p  
#結果如下
remote           refid      st t when poll reach   delay  offset  jitter
===========================================================================
*ceph-admin      LOCAL(0)        11 u  13   64    1   1.236   -0.700   0.000
Remote :*ceph-admin
Refid  :LOCAL(0)
如果是其他的,如:refid:init就為配置不成功,按此步驟在其他節點進行配置。

部署CEPH

部署ceph和ceph-deploy  

在所有上都安裝ceph,主節點上額外安裝ceph-deploy

#每個主機安裝 ceph
yum install ceph 
#Admin節點安裝
yum install ceph-deploy

部署監控節點(mon)

添加節點

#在管理節點上
cd /root/ceph
ceph-deploy new host146  host145  host147
  

#修改這個文件,添加:  overwrite_conf = true
 vim  / root/.cephdeploy.conf 

部署mon

mkdir  -p /etc/ceph/  
mkdir /var/lib/ceph 
#ceph用戶是ceph的默認用戶,不要去新建哦
chown  ceph:ceph -R /var/lib/ceph

#(必須當前目錄有ceph.mon.keyring)
ceph-deploy  --overwrite-conf  mon create-initial

重啟命令

#host是主機
systemctl   restart/start/stop  ceph-mon@host

部署mgr

ceph-deploy mgr create  host146

ps -ef | grep ceph    查找host
#重啟   
systemctl   restart/start/stop  ceph-mgr@host

部署OSD

先要有掛載磁盤,用系統盤也可以,但是並不安全,這里有兩個方案

  1.找幾台新機器,OSD掛載的目錄反正隨便定,新機器上的數據都無所謂

  2.額外掛載磁盤,可以對掛載磁盤做虛擬化,LVM,可以部署更多OSD

可以執行lsblk命令查看,如果磁盤已經被掛載,則會報錯哦

#新版本ceph默認是 bluetore .使用如下命令
ceph-deploy --overwrite-conf   osd create  --data /dev/vdb   $HOSTNAME

#查看 集群硬盤樹編號。(部署節點) 需要拷貝配置文件(ceph.conf)到/etc/ceph/!!!否則會連接不到集群
ceph osd tree 
#重啟  
systemctl   restart/start/stop  ceph-osd@0, 1, 2,3, 

部署RGW

#單機的只需要在一台服務器上安裝, 如果負載均衡,可以安裝3台服務器。S
現在安裝在146
 yum  install  ceph-radosgw  
#或者  
ceph-deploy install  --rgw   wn

啟動

ceph-deploy   --overwrite  rgw create  host173(主機名) 
#查看啟動端口為7480

#檢查服務是否啟動    
ps aux|grep radosgw

#重啟   這個id可以通過查看rados進程,查看名稱得到,例如rgw.host146
systemctl   restart/start/stop  ceph-radosgw@id 

桶分片

# 如果每個桶中對象數量較少,比如小於10000, 可以不操作此步驟,  大於10萬對象,一定要設置下面的參數。
#如果設計方案中,一個桶中存儲對象數量大於幾千萬,需要關閉動態分片, 同時設置最大分片數量。
#在  radosgw 進程所在的服務器。
vi  /etc/ceph.conf  
#桶動態分片默認開啟
rgw_dynamic_resharding = false  
#桶中最大分片的數量           ,
rgw_override_bucket_index_max_shards=16   
#重啟服務。(rgw)

建立賬號(S3)

# system參數是為了使用dashboard,該賬號可以再頁面上看到數據
radosgw-admin user create --uid testid --display-name 'M. Tester'  --system 
#記住這兩個東西
"access_key": 
 "secret_key":
#部署失敗返回錯誤的處理方法:
#只有建立 bucket ,  上傳一個對象后, 才能出現  default.rgw.buckets.data池, 然后調整pg num .
#這個時候,解決pg/osd 太少的警報。

#部署時候如果遇到 rgw 失敗,現實的日志為:
# 0 ext_mime_map_init failed to open file=/etc/mime.types : (2) No such file or ##directory
#7f709e8c48c0 -1 ERROR: unable to initialize rgw tools
#這是因為沒有  /etc/mime.types 
#需要安裝
yum install mailcap

#如果啟動失敗, 有時候需要將 /var/lib/ceph/radosgw   的用於  root 改成   ceph .
chown ceph:ceph –R  *

部署dashboard

yum install ceph-mgr-dashboard
ceph dashboard create-self-signed-cert  
#寫上賬號和密碼
ceph dashboard set-login-credentials  admin admin

打開頁面后長這樣:

這時候你有可能(就是如此)在object gateway里面看不到bucket內容,需要再添加一個命令:

$ ceph dashboard set-rgw-api-access-key <access_key>
$ ceph dashboard set-rgw-api-secret-key <secret_key>

如果你忘記了你的賬戶,或者需要新建一個賬戶:

$ radosgw-admin user create --uid=<user_id> --display-name=<display_name> \
    --system

如果是忘了兩個key

$ radosgw-admin user info --uid=<user_id>

這樣就可以啦,完

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM