如何快速安裝Ceph的物件式儲存服務?



前言

這篇文章主要依據文件[1],來介紹如何安裝Ceph的物件式儲存服務。如果原官方文件有修改,請以官方文件為準。實際安裝的Linus版本為Ubuntu 14.04。

進一步了解Ceph可以參考另一篇文章,了解Ceph的儲存服務

安裝步驟

使用ceph-deploy這個工具來快速架設。這邊的範例,一共有四個節點分別為,管理節點adm、監控節點mon, 還有兩個OSD節點,osd0, osd1。

安裝程序由管理節點(adm node)開始進行。

1. 建立ceph-deploy在管理節點上

系統安裝的第一步,先建置管理節點(adm node),這個節點主要負責管理與建置其他節點使用。ceph-depoly這個工具就是安裝在此節點上。

a. 加入ceph的金鑰

 wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -  

加入ceph下載的金鑰,使系統可以取得目前的套件。

b. 將ceph packages下載到系統的repository上

 echo deb http://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list  

將{ceph-stable-release}改成你要安裝的版本代號,例如,你要安裝0.9版本,就改成inferanalis

c. 更新你系統的repository並且安裝ceph-deploy:

 sudo apt-get update && sudo apt-get install ceph-deploy  

2. 安裝NTP服務

完成ceph-deply的安裝後,接著就是安裝NTP Server來提供各節點時間校正。

安裝NTP在admin node上
 sudo apt-get install ntp  

3. 建立一個user用來安裝ceph,給ceph-deploy使用


a. 在每個ceph節點上建立一個user

 ssh user@ceph-server  
 sudo useradd -d /home/{username} -m {username}  
 sudo passwd {username}  

這個user主要是讓ceph-deploy連線與執行安裝與更新使用。

b. 設定新建立的user具有sudo的權限

 echo "{username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{username}  
 sudo chmod 0440 /etc/sudoers.d/{username}  

執行ceph-deploy的user需要sudo權限。

c. 啟用免密碼SSH連線

這個步驟請參閱,如何在Ubuntu啟用不用密碼的SSH連線?

 ssh-copy-id {username}@node1  
 ssh-copy-id {username}@node2  
 ssh-copy-id {username}@node3  

d. 設定SSH預設連線帳號


 Host node1  
   Hostname node1  
   User {username}  
 Host node2  
   Hostname node2  
   User {username}  
 Host node3  
   Hostname node3  
   User {username}  

4. 快速建立Storage Cluster


a. 建立一個資料夾來儲存ceph-deploy的輸出檔案

 mkdir my-cluster  
 cd my-cluster  

b.建立cluster

 ceph-deploy new {initial-monitor-node(s)}  

初始化監控節點

例如:
 ceph-deploy new mon

c. 編輯ceph設定檔(ceph.conf)

修改預設的replica的數目,由3改成2,這個例子只有兩個OSD節點。

在設定檔中找到[global]段落,並且修改osd pool default size
 osd pool default size = 2  

d. 安裝ceph

完成相關的設定後就可以開始透過ceph-deploy來進行安裝美個節點。
 ceph-deploy install {ceph-node}[{ceph-node} ...]  

例如:
 ceph-deploy install adm mon node1 node2  

e. 初始化monitor節點

 ceph-deploy mon create-initial  

f. 建立OSD節點

這邊主要是建立一個測試用的OSD節點,所以直接使用OSD節點上的local磁碟空間,進一步的使用可以參考[2]
 ssh node2  
 sudo mkdir /var/local/osd0  
 exit  
   
 ssh node3  
 sudo mkdir /var/local/osd1  
 exit  

從你的admin node來執行ceph-deploy,進行osd的初始化,
 ceph-deploy osd prepare {ceph-node}:/path/to/directory  

例如:
 ceph-deploy osd prepare osd0:/var/local/osd0 osd1:/var/local/osd1  

啟用OSD節點
 ceph-deploy osd activate {ceph-node}:/path/to/directory  

例如:
 ceph-deploy osd activate osd0:/var/local/osd0 osd1:/var/local/osd1  

g. 複製設定檔與key到你的節點上

 ceph-deploy admin {admin-node} {ceph-node}  

例如:
 ceph-deploy admin admin adm mon osd0 osd1 

h. 確認key的檔案權限

 sudo chmod +r /etc/ceph/ceph.client.admin.keyring  

i. 確認cluster健康狀態

 ceph health  

如果可以成功看到ceph的狀態回報為HEALTH_OK就表示成功。

 參考

  1. Ceph document, Installation (Quick), http://docs.ceph.com/docs/master/start/quick-ceph-deploy/
  2. http://docs.ceph.com/docs/master/rados/deployment/ceph-deploy-osd/




留言

這個網誌中的熱門文章

如何關閉nouveau-kernel-driver,解決無法安裝Nvidia driver問題

如何在Nginx所設置的Proxy中可以取得真實客戶的IP位址

如何客製VMware ESXi安裝光碟(加入Realtek驅動程式)