引入
這篇只記錄部署,若是須要概念理解,則前往其餘篇章查看。暫時不包含MDS的部署,由於不許備使用文件系統,因此不須要元數據服務器html
在線部署和離線部署差異只在包的下載,若是在線部署過了,那麼資源包能夠放入U盤,下次就能夠離線部署。linux
正文
部署準備
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
各個機器下分別執行以下命令vim
hostnamectl set-hostname host145 hostnamectl set-hostname host146 hostnamectl set-hostname host147
修改後在每臺機器上修改/etc/hosts文件centos
10.1.12.145 host145 10.1.12.146 host146 10.1.12.147 host147
選擇一臺部署主機,這邊選擇host146,在root用戶下開啓SSH互信操做api
在部署節點上, 使用這個命令ssh-keygen 一路回車 ,生成公鑰。 而後經過命令ssh-copy-id -i ~/.ssh/id_rsa.pub {hostname} 把公鑰複製到部署須要設計的主機上。 Ssh hostname測試是否成功。
#連接阿里雲的配置 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/
#安裝 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 這樣的輸出證實已經配置成功了。
配置其餘節點ssh
#其餘服務器都鏈接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 yum install ceph #Admin節點安裝 yum install ceph-deploy
添加節點
#在管理節點上 cd /root/ceph ceph-deploy new host146 host145 host147 #修改這個文件,添加: overwrite_conf = true vim / root/.cephdeploy.conf
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
ceph-deploy mgr create host146 ps -ef | grep ceph 查找host #重啓 systemctl restart/start/stop ceph-mgr@host
先要有掛載磁盤,用系統盤也能夠,可是並不安全,這裏有兩個方案
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,
#單機的只須要在一臺服務器上安裝, 若是負載均衡,能夠安裝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)
# 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 *
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>
這樣就能夠啦,完