搭建最簡單ceph環境(入門)

虛擬機系統準備環境爲:node

root@test3:~# cat /proc/version
Linux version 3.13.0-32-generic (buildd@kissel) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014
python

1、  環境準備

設備共4臺:git

192.168.0.100:做爲部署節點和monitor節點。ubuntu

192.168.0.101:做爲osd設備 0 ,掛載一個20G的硬盤vim

192.168.0.102:做爲osd設備 1 ,掛載一個20G的硬盤ssh

192.168.0.103:做爲客戶端,在客戶端能夠訪問虛擬rbd設備oop

 

2、  修改這幾臺設備的源

apt的源文件替換成以下地址,由於國外的源會比較慢。學習

root@ test100:~# cat /etc/apt/sources.listui

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversespa

deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

root@ test100:~#  apt_get update

……………………………….

Reading package lists... Done

root@ test100:~#

 

3、  開始部署

  1. 登陸到100設備,做爲部署設備,意思爲用這臺機器部署整個集羣。

 登陸設備後,建立ceph用戶

useradd -d /home/ceph -m ceph

  • ceph用戶修改密碼

passwd ceph

  • 爲用戶添加root權限

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

  • 在兩個osd 設備上創建相同的ceph用戶 和密碼

  • 檢查是否存在ssh服務

  • 若是不存在,則須要安裝一個

        sudo apt-get install openssh-server

2. 修改hosts文件 ,修改後能夠經過名字訪問各個設備,不須要輸入ip

n  修改hosts文件

$Vim /etc/hosts

root@test100:~/ceph-cluster# cat /etc/hosts

127.0.0.1  localhost

127.0.1.1  ubuntu14

 

192.168.0.100 cephmon

192.168.0.101 osd1

192.168.0.102 osd0

192.168.0.103 client

 

# The following lines are desirable for IPv6 capable hosts

::1     localhost ip6-localhost ip6-loopback

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

root@cci-test3:~/ceph-cluster#

  • 將這個hosts文件中添加的項 添加到osd的設備上

  • 100 上修改hostname

  • 修改hostname cephmon

hostname cephmon

vim    /etc/hostname

$cat /etc/hostname

Cephmon

  • 該方法一樣修改osd設備,osd設備的名字改爲osd0osd1

3. 安裝ceph-deploy

  • 輸入命令獲取而且安裝,共四條命令

    A.  wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
          B.  echo deb http://ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

         C.  sudo apt-get update
         D.  sudo apt-get install ceph-deploy

安裝發生意外?提示如下信息:

python-setuptools but it is not going to be installed

表示當前 ceph-deploy依賴於 Python-setuptools,嘗試安裝Python-setuptools ,使用命令:agt-get install python-setuptools

再次發生意外提示:

python-pkg-resources (= 3.3-1ubuntu1) but 3.3-1ubuntu2 is to be installed

此次說明已經安裝的Python 版本出現了不支持現象,先卸載已經安裝的Python,使用命令:agt-get remove python

卸載後再次嘗試安裝 python-setuptools

再次使用命令:agt-get install python-setuptools

最後再次嘗試安裝 ceph-deploy

使用命令:sudo apt-get install ceph-deploy

發現此次能夠成功安裝ceph-deploy

3. 用無密碼的SSH鏈接到每一個Ceph節點來配置你的 ceph-deploy 管理節點. 保留密碼爲空。

    建立密鑰,提示輸入的時候所有enter建。

        ssh-keygen

  • 將密鑰拷貝到其餘osd設備上去。

        ssh-copy-id ceph@cephmon

        ssh-copy-id ceph@osd0

        ssh-copy-id ceph@osd1

4. 修改你的ceph-deploy 管理節點的 ~/.ssh/config 文件使它能像你建立的用戶(好比, ceph)同樣記錄至Ceph節點 .可能不存在 這個配置文件,可是你能夠建立一個這樣的配置文件。配置文件中的內容以下:

root@ test100:~/ceph-cluster# cat ~/.ssh/config

 

Host cephmon

User ceph

Port 22

 

Host osd0

User ceph

Port 22

 

Host osd1

User ceph

Port 22

 

root@ test100:~/ceph-cluster#  

 

5. 建立一個本身的集羣目錄

mkdir ceph-cluster

cd ceph-cluster

6. 建立一個新的集羣(最後一個參數爲100 hostname

ceph-deploy  new  cephmon

7.修改配置文件 ceph.conf

增長

osd pool default size = 3   -----》設置副本個數,不建議超過osd數量

osd pool default min size = 1 --->設置可寫最小副本個數

osd pool default pg num = 333   ---》設置poolpg個數

osd pool default pgp num = 333  --》設置poolpgp_num 個數

 

 

8.分別在全部的設備上安裝ceph

ceph-deploy install cephmon osd0 osd1

      注意安裝時可能會提示:

404  Not Found [IP: 91.189.91.14 80]

根據錯誤信息,定位是那一臺設備除了問題,在該設備上輸入命令確認:sudo apt-get install ceph,確認問題仍然是這個,須要更新apt-get,執行命令apt-get update。執行完成後 再次使用命令sudo apt-get install ceph。完成經過,說明問題解決。

9.在100 上建立監視線程,而且初始化:

ceph-deploy mon create-initial

10.修改密鑰文件權限:

A  chmod 777 ceph.client.admin.keyring

B   sudo chmod 777  /etc/ceph/ceph.client.admin.keyring

11.列出osd0 ,osd1上面能夠用的磁盤:

ceph-deploy disk list osd0 osd1

12.格式化osd0osd1上的vdb盤爲xfs

ceph-deploy disk  zap    osd0:vdb

ceph-deploy disk  zap    osd1:vdb

13.在osd設備上建立osd 線程:

ceph-deploy osd create osd0:vdb

ceph-deploy osd create osd1:vdb

14.拷貝配置文件到每一臺機器上

ceph-deploy admin cephmon osd0 osd1

 

      修改osd的重量和拓撲位置信息:

ceph osd crush set osd.0 1.0 root=default room=room0 host=host0

ceph osd crush set osd.1 1.0 root=default room=room0 host=host1

 

15. 查看ceph的安裝狀態:

Ceph  –s

16.先建立一個pool,再 建立一個鏡像,該鏡像能夠提供給用戶使用

Rados create pool data

Rados lspools

rbd create foo --size 1024

 

 

客戶端掛載 ceph

1.在管理節點在hosts中添加 192.168.0.103  client

2. 在管理節點爲client 安裝ceph,最後一個參數爲主機名代替ip地址。

ceph-deploy install client      //安裝客戶端的ceph

ceph-deploy admin cephclient //將客戶端添加到當前的集羣中

rbd create testdevice --size 40960  //建立塊設備

sudo rbd map testdevice --pool rbd --name client.admin  //map rbd設備爲塊設備

sudo mkfs.ext4 -m0 /dev/rbd/rbd/testdevice  //格式化map以後的塊設備

A   sudo mkdir /mnt/ceph-block-devicesudo  //建立掛載目錄

B   sudo mount -t ext4 /dev/rbd/rbd/testdevice /mnt/ceph-block-devicesudo //掛載目錄

C   cd /mnt/ceph-block-devicesudo  //進入到文件夾中,能夠存取文件操做

 

總結:

這個是我第一次完成搭建ceph環境以後寫的,在搭建ceph環境以前,對ceph不是很瞭解,因此搭建過程當中反反覆覆,並且會遇到不少問題,好比搭建環境後ceph -s 命令查詢到大部分的pg都是非正常的狀況,花了一些時間去看了pg的東西,而後再反反覆覆的搭建,直到可以學習怎麼搭建一個健康的ceph環境,因此最初使用虛擬機來玩比較方便,清除環境完全。

我也是正在學習ceph的過程當中,若是有什麼問題 很歡迎和你們一塊兒討論。你們要是發現了問題歡迎及時糾正,留言

相關文章
相關標籤/搜索