引入
這篇只記錄部署,如果需要概念理解,則前往其他篇章查看。暫時不包含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>
這樣就可以啦,完